文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python有哪些练习题

2023-06-28 23:41

关注

这篇文章主要介绍了Python有哪些练习题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python有哪些练习题文章都会有所收获,下面我们一起来看看吧。

实例051:按位与

题目:学习使用按位与 & 。

程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1

a=0o77print(a)b=a&3print(b)b=b&7print(b)

实例052:按位或

题目:学习使用按位或 | 。

程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1

a=0o77print(a|3)print(a|3|7)

实例053:按位异或

题目:学习使用按位异或 ^

程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0

a=0o77print(a^3)print(a^3^7)

实例054:位取反、位移动

题目:取一个整数a从右端开始的4〜7位。

程序分析:可以这样考虑: (1)先使a右移4位。 (2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) (3)将上面二者进行&运算。

a=int(input('输入一个数字: '))b=0                 #     0b=~b                #     1b=b<<4              # 10000b=~b                #  1111c=a>>4d=c&bprint('a:',bin(a))print('b:',bin(b))print('c:',bin(c))print('d:',bin(d))

实例055:按位取反

题目:学习使用按位取反~。

程序分析:~0=1; ~1=0;

print(~234)print(~~234)

实例056:画圈

题目:画图,学用circle画圆形。   

from tkinter import *canvas=Canvas(width=800,height=600,bg='yellow')canvas.pack(expand=YES,fill=BOTH)k=1j=1for i in range(26):    canvas.create_oval(310-k,250-k,310+k,250+k,width=1)    k+=j    j+=0.3mainloop()

实例057:画线

题目:画图,学用line画直线。

if __name__ == '__main__':    from tkinter import *    canvas = Canvas(width=300, height=300, bg='green')       canvas.pack(expand=YES, fill=BOTH)                      x0 = 263    y0 = 263    y1 = 275    x1 = 275    for i in range(19):        canvas.create_line(x0,y0,x0,y1, width=1, fill='red')        x0 = x0 - 5        y0 = y0 - 5        x1 = x1 + 5        y1 = y1 + 5    x0 = 263    y1 = 275    y0 = 263    for i in range(21):        canvas.create_line(x0,y0,x0,y1,fill = 'red')        x0 += 5        y0 += 5        y1 += 5    mainloop()

实例058:画矩形

题目:画图,学用rectangle画方形。   

if __name__ == '__main__':    from tkinter import *    root = Tk()    root.title('Canvas')    canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')    x0 = 263    y0 = 263    y1 = 275    x1 = 275    for i in range(19):        canvas.create_rectangle(x0,y0,x1,y1)        x0 -= 5        y0 -= 5        x1 += 5        y1 += 5    canvas.pack()    root.mainloop()

实例059:画图(丑)

题目:画图,综合例子。  

if __name__  == '__main__':    from tkinter import *    canvas = Canvas(width = 300,height = 300,bg = 'green')    canvas.pack(expand = YES,fill = BOTH)    x0 = 150    y0 = 100    canvas.create_oval(x0 - 10,y0 - 10,x0 + 10,y0 + 10)    canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20)    canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50)    import math    B = 0.809    for i in range(16):        a = 2 * math.pi / 16 * i        x = math.ceil(x0 + 48 * math.cos(a))        y = math.ceil(y0 + 48 * math.sin(a) * B)        canvas.create_line(x0,y0,x,y,fill = 'red')    canvas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)    for k in range(501):        for i in range(17):            a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k            x = math.ceil(x0 + 48 * math.cos(a))            y = math.ceil(y0 + 48 + math.sin(a) * B)            canvas.create_line(x0,y0,x,y,fill = 'red')        for j in range(51):            a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1            x = math.ceil(x0 + 48 * math.cos(a))            y = math.ceil(y0 + 48 * math.sin(a) * B)            canvas.create_line(x0,y0,x,y,fill = 'red')    mainloop()

实例060:字符串长度

题目:计算字符串长度。  

s='zhangguang101'print(len(s))

例061:杨辉三角

题目:打印出杨辉三角形前十行。  

def generate(numRows):    r = [[1]]    for i in range(1,numRows):        r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0])))    return r[:numRows]a=generate(10)for i in a:    print(i)

实例062:查找字符串

题目:查找字符串。  

s1='aabbxuebixuebi's2='ab's3='xue'print(s1.find(s2))print(s1.find(s3))

实例063:画椭圆

题目:画椭圆。 

程序分析:使用 tkinter

if __name__ == '__main__':    from tkinter import *    x = 360    y = 160    top = y - 30    bottom = y - 30    canvas = Canvas(width = 400,height = 600,bg = 'white')    for i in range(20):        canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom)        top -= 5        bottom += 5    canvas.pack()    mainloop()

实例64:画椭圆、矩形

题目:利用ellipse rectangle 画图。。 

if __name__ == '__main__':    from tkinter import *    canvas = Canvas(width = 400,height = 600,bg = 'white')    left = 20    right = 50    top = 50    num = 15    for i in range(num):        canvas.create_oval(250 - right,250 - left,250 + right,250 + left)        canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)        canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))        right += 5        left += 5        top += 10    canvas.pack()    mainloop()

实例065:画组合图形

题目:一个最优美的图案。  

import mathfrom tkinter import *class PTS:    def __init__(self):        self.x = 0        self.y = 0points = []def LineToDemo():    screenx = 400    screeny = 400    canvas = Canvas(width = screenx,height = screeny,bg = 'white')    AspectRatio = 0.85    MAXPTS = 15    h = screeny    w = screenx    xcenter = w / 2    ycenter = h / 2    radius = (h - 30) / (AspectRatio * 2) - 20    step = 360 / MAXPTS    angle = 0.0    for i in range(MAXPTS):        rads = angle * math.pi / 180.0        p = PTS()        p.x = xcenter + int(math.cos(rads) * radius)        p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)        angle += step        points.append(p)    canvas.create_oval(xcenter - radius,ycenter - radius,                       xcenter + radius,ycenter + radius)    for i in range(MAXPTS):        for j in range(i,MAXPTS):            canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)    canvas.pack()    mainloop()if __name__ == '__main__':    LineToDemo()

实例066:三数排序

题目:输入3个数a,b,c,按大小顺序输出。   

程序分析:同实例005。

raw=[]for i in range(3):    x=int(input('int%d: '%(i)))    raw.append(x)for i in range(len(raw)):    for j in range(i,len(raw)):        if raw[i]>raw[j]:            raw[i],raw[j]=raw[j],raw[i]print(raw)raw2=[]for i in range(3):    x=int(input('int%d: '%(i)))    raw2.append(x)print(sorted(raw2))

实例067:交换位置

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

li=[3,2,5,7,8,1,5]li[-1],li[li.index(min(li))]=li[li.index(min(li))],li[-1]m=li[0]ind=li.index(max(li))li[0]=li[ind]li[ind]=mprint(li)

实例068:旋转数列

题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

from collections import *li=[1,2,3,4,5,6,7,8,9]deq=deque(li,maxlen=len(li))print(li)deq.rotate(int(input('rotate:')))print(list(deq))

实例069:报数

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

if __name__ == '__main__':    nmax = 50    n = int(input('请输入总人数:'))    num = []    for i in range(n):        num.append(i + 1)    i = 0    k = 0    m = 0    while m < n - 1:        if num[i] != 0 : k += 1        if k == 3:            num[i] = 0            k = 0            m += 1        i += 1        if i == n : i = 0    i = 0    while num[i] == 0: i += 1    print(num[i])

实例070:字符串长度II

题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

def lenofstr(s):    return len(s)print(lenofstr('tanxiaofengsheng'))

实例071:输入和输出

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

N = 3#stu# num : string# name : string# score[4]: liststudent = []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:创建链表

题目:创建一个链表。

class Node:    def __init__(self, data):        self.data = data        self.next = None    def get_data(self):        return self.dataclass 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_dataif __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:反向输出链表

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

class Node:    def __init__(self, data):        self.data = data        self.next = None    def get_data(self):        return self.dataclass 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_dataif __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() 方法。

a=[2,6,8]b=[7,0,4]a.extend(b)a.sort()print(a)

例075:不知所云

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

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)

关于“Python有哪些练习题”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python有哪些练习题”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯