前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python基础训练100题-15

Python基础训练100题-15

作者头像
用户9925864
发布2022-07-27 09:08:15
2050
发布2022-07-27 09:08:15
举报
文章被收录于专栏:算法工程师的学习日志

分享一些Python学习题目

实例071:输入和输出

实例072:创建链表

实例073:反向输出链表

实例074:列表排序、连接

实例075:不知所云

实例071:输入和输出

题目: 编写input()和output()函数输入,输出5个学生的数据记录。

程序分析: 无。

代码语言:javascript
复制
N = 3
#stu
# num : string
# name : string
# score[4]: list
student = []
for i in range(5):
    student.append(['','',[]])
 
def input_stu(stu):
    for i in range(N):
        stu[i][0] = input('input student num:\n')
        stu[i][1] = input('input student name:\n')
        for j in range(3):
            stu[i][2].append(int(input('score:\n')))
 
def output_stu(stu):
    for i in range(N):
        print ('%-6s%-10s' % ( stu[i][0],stu[i][1] ))
        for j in range(3):
            print ('%-8d' % stu[i][2][j])
 
if __name__ == '__main__':
    input_stu(student)
    print (student)
    output_stu(student)

实例072:创建链表

题目: 创建一个链表。

程序分析: 无。

代码语言:javascript
复制
class Node:
 
    def __init__(self, data):
        self.data = data
        self.next = None
 
    def get_data(self):
        return self.data
 
class List:
 
    def __init__(self, head):
        self.head = head
 
    def is_empty(self):
        return self.get_len() == 0
 
    def get_len(self):  
        length = 0
        temp = self.head
        while temp is not None:
            length += 1
            temp = temp.next
        return length
 
    def append(self, node):
        temp = self.head
        while temp.next is not None:
            temp = temp.next
        temp.next = node
 
    def delete(self, index):
        if index < 1 or index > self.get_len():
            print("给定位置不合理")
            return
        if index == 1:
            self.head = self.head.next
            return
        temp = self.head
        cur_pos = 0
        while temp is not None:
            cur_pos += 1
            if cur_pos == index-1:
                temp.next = temp.next.next
            temp = temp.next
 
    def insert(self, pos, node):
        if pos < 1 or pos > self.get_len():
            print("插入结点位置不合理")
            return
        temp = self.head
        cur_pos = 0
        while temp is not Node:
            cur_pos += 1
            if cur_pos == pos-1:
                node.next = temp.next
                temp.next =node
                break
            temp = temp.next
 
    def reverse(self, head):
        if head is None and head.next is None:
            return head
        pre = head
        cur = head.next
        while cur is not None:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        head.next = None
        return pre
 
    def print_list(self, head):
        init_data = []
        while head is not None:
            init_data.append(head.get_data())
            head = head.next
        return init_data
 
if __name__=='__main__':
    head=Node('head')
    link=List(head)
    for i in range(10):
        node=Node(i)
        link.append(node)
    print(link.print_list(head))

实例073:反向输出链表

题目: 反向输出一个链表。

程序分析: 无。

代码语言:javascript
复制
class Node:
 
    def __init__(self, data):
        self.data = data
        self.next = None
 
    def get_data(self):
        return self.data
 
class List:
 
    def __init__(self, head):
        self.head = head
 
    def is_empty(self):
        return self.get_len() == 0
 
    def get_len(self):  
        length = 0
        temp = self.head
        while temp is not None:
            length += 1
            temp = temp.next
        return length
 
    def append(self, node):
        temp = self.head
        while temp.next is not None:
            temp = temp.next
        temp.next = node
 
    def delete(self, index):
        if index < 1 or index > self.get_len():
            print("给定位置不合理")
            return
        if index == 1:
            self.head = self.head.next
            return
        temp = self.head
        cur_pos = 0
        while temp is not None:
            cur_pos += 1
            if cur_pos == index-1:
                temp.next = temp.next.next
            temp = temp.next
 
    def insert(self, pos, node):
        if pos < 1 or pos > self.get_len():
            print("插入结点位置不合理")
            return
        temp = self.head
        cur_pos = 0
        while temp is not Node:
            cur_pos += 1
            if cur_pos == pos-1:
                node.next = temp.next
                temp.next =node
                break
            temp = temp.next
 
    def reverse(self, head):
        if head is None and head.next is None:
            return head
        pre = head
        cur = head.next
        while cur is not None:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        head.next = None
        return pre
 
    def print_list(self, head):
        init_data = []
        while head is not None:
            init_data.append(head.get_data())
            head = head.next
        return init_data
 
if __name__=='__main__':
    head=Node('head')
    link=List(head)
    for i in range(10):
        node=Node(i)
        link.append(node)
    print(link.print_list(head))
    print(link.print_list(link.reverse(head)))

实例074:列表排序、连接

题目:列表排序及连接。

程序分析:排序可使用 sort() 方法,连接可以使用 + 号或 extend() 方法。

代码语言:javascript
复制
a=[2,6,8]
b=[7,0,4]
a.extend(b)
a.sort()
print(a)

实例075:不知所云

题目:放松一下,算一道简单的题目。

程序分析:鬼知道是什么。

代码语言:javascript
复制
if __name__ == '__main__':
    for i in range(5):
        n = 0
        if i != 1: n += 1
        if i == 3: n += 1
        if i == 4: n += 1
        if i != 4: n += 1
        if n == 3: print (64 + i)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档