前言:

Python 100个小测试,用于熟悉和巩固Python基础
例题地址:https://www.runoob.com/python/python-100-examples.html


"""
题目51:学习使用按位与&。
"""
按位与: &  双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位都为1时,结果位才为1.参与运算的两个数均以补码出现.
按位或: |  双目运算符.只有对应的两个二进位都为1时,结果位才为1
按位异或:  如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
取反 : ~  在补码表示中,最高位为符号位,正数的符号位为0,负数为1
右移 : >>
左移 : << 分析: 0&0=0; 0&1=0; 1&0=0; 1&1=1。"""
题目52:学习使用按位或 | 。
"""
分析: 0|0=0; 0|1=1; 1|0=1; 1|1=1"""
题目53:学习使用按位异或 ^ 。
"""
分析: 0^0=0; 0^1=1; 1^0=1; 1^1=0"""
题目54:取一个整数a从右端开始的4〜7位。
"""
分析:
首先这个整数得满足>=7位,然后取右端开始的4-7位, 考核截取字符串; num = input("输入整数: ")
num = list(num)[-7:-3]举一反三:
str = '0123456789'
print(str[:])        # 截取字符串的全部字符
print(str[0:3])      # 截取第1位到第3位的字符
print(str[6:])       # 截取第7个字符到结尾
print(str[:-3])      # 截取从头开始到倒数第3个字符之前
print(str[2])        # 截取第3个字符
print(str[-1])       # 截取倒数第1个字符
print(str[::-1])     # 创造1个与原字符串顺序相反的字符串
print(str[-3:-1])    # 截取倒数第3位到倒数第1位之前的字符
print(str[-3:])      # 截取倒数第3位到结尾
print(str[:-5:-2])   # 逆序截取==> 先截取,再进行逆序.
value:
012
0123456789
6789
0123456
2
9
9876543210
78
789
96 逆袭截取解释:
str = 'abcdefghijklmn'
位置编号: 012345678910111213
对应编号: -14-13-12-11-10-9-8-7-6-5-4-3-2-1# 官方方法
分析:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。
a = int(input('输入一个数字: '))
b = 0        #     0
b = ~b       #     1
b = b<<4     # 10000
b = ~b       #  1111
c = a>>4
d = c&b
print('a:',bin(a))
print('b:',bin(b))
print('c:',bin(c))
print('d:',bin(d))"""
题目55:学习使用按位取反~。
"""
二进制数在内存中以补码的形式存储。
按位取反:二进制每一位取反,0 变 1,1 变 0。
最高位为符号位,正数的符号位为 0,负数为 1。
对正数来说,最高位为 0,其余各位代表数值本身(以二进制表示),如 +42 的补码为 00101010。
对负数而言,把该数绝对值的补码按位取反,然后对整个数加 1,即得该数的补码。如 -42 的补码为 11010110(00101010 按位取反
11010101+1 即 11010110)。
~9 的计算步骤:
转二进制:0 1001
计算补码:0 1001
按位取反:1 0110
转为源码:
按位取反:1 1001
末位加 1:1 1010
符号位为 1 是负数,即 -10a = 7
b = ~a   # -8
c = -7
d = ~c   # 6
print ('变量 a 取反结果为: %d' % b)
print ('变量 c 取反结果为: %d' % d)"""
题目56:画图,学用circle画圆形。  
"""
分析: 主要为turtle包的使用
import turtle
turtle.title("画圆")
turtle.setup(800,600,0,0)
pen=turtle.Turtle()
pen.color("yellow")
pen.width(5)
pen.shape("turtle")
pen.speed(1)
pen.circle(100)"""
题目57:画图,学用line画直线。
"""
分析: 主要为turtle包的使用
import turtle
def drawline(n):t=turtle.Pen()t.color(0.3,0.8,0.6)  #设置颜色,在0--1之间t.begin_fill()   #开始填充颜色for i in range(n): #任意边形t.forward(50)t.left(360/n)t.end_fill()    #结束填充颜色
drawline(4)"""
题目58:画图,学用rectangle画方形。   
"""
分析: 考察tkinter包的使用
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 -= 5y0 -= 5x1 += 5y1 += 5
canvas.pack()
root.mainloop()"""
题目59:画图,综合例子。  
"""
分析: 考察tkinter包的使用
if __name__  == '__main__':from Tkinter import *canvas = Canvas(width = 300,height = 300,bg = 'green')canvas.pack(expand = YES,fill = BOTH)x0 = 150y0 = 100canvas.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 mathB = 0.809for i in range(16):a = 2 * math.pi / 16 * ix = 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) * kx = 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 - 1x = 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()"""
题目60:计算字符串长度。  
"""
str = 'abc'
print(len(str))"""
题目61:打印出杨辉三角形(要求打印出10行如下图)。  
"""
分析: 首先要理解什么是杨辉三角,这是非常经典的一个题目;
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
杨辉三角的特性:
1.第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
2.每个数字等于上一行的左右两个数字之和。可用此性质写出整个杨辉三角。即第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的性质之一。即 C(n+1,i)=C(n,i)+C(n,i-1)。def triangles():L = [1]while True:yield LL = [sum(i) for i in zip([0]+L, L+[0])]def triangles(num = 10):LL = [[1]]for i in range(1,num):LL.append([(0 if j== 0 else LL[i-1][j-1])+ (0 if j ==len(LL[i-1]) else LL[i-1][j]) for j in range(i+1)])return LL"""
题目62:查找字符串。   
"""
分析: 基础运用
str_1 = 'abcdefg'
str_2 = 'cde'
print(str_1.find(str_2))"""
题目63:画椭圆。 
"""
分析: 考察tkinter包的使用
if __name__ == '__main__':from Tkinter import *x = 360y = 160top = y - 30bottom = y - 30canvas = Canvas(width = 400,height = 600,bg = 'white')for i in range(20):canvas.create_oval(250 - top,250 - bottom,250 + top,250 + bottom)top -= 5bottom += 5canvas.pack()mainloop()"""
题目64:利用ellipse 和 rectangle 画图。。 
"""
if __name__ == '__main__':from Tkinter import *canvas = Canvas(width = 400,height = 600,bg = 'white')left = 20right = 50top = 50num = 15for 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 += 5left += 5top += 10canvas.pack()mainloop()"""
题目65:一个最优美的图案。   
"""
import math
class PTS:def __init__(self):self.x = 0self.y = 0
points = []def LineToDemo():from Tkinter import *screenx = 400screeny = 400canvas = Canvas(width = screenx,height = screeny,bg = 'white')AspectRatio = 0.85MAXPTS = 15h = screenyw = screenxxcenter = w / 2ycenter = h / 2radius = (h - 30) / (AspectRatio * 2) - 20step = 360 / MAXPTSangle = 0.0for i in range(MAXPTS):rads = angle * math.pi / 180.0p = PTS()p.x = xcenter + int(math.cos(rads) * radius)p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)angle += steppoints.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()"""
题目66:输入3个数a,b,c,按大小顺序输出。  
"""
分析: 也没懂这个题顺序是怎么来的,感觉一堆乱...
前面太多一样的,这里就不写了.. """
题目67:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
"""
分析: 利用下标和max,min即可; a = [1,3,4,5,6]
for i in range(len(a)):if a[i] == max(a):a[0],a[i]=a[i],a[0]  # 不可分开写,否则会变成[6, 3, 4, 5, 6] 先后赋值;if a[i] == min(a):a[len(a)-1],a[i]=a[i],a[len(a)-1]
print(a) # 法2
a = [1,3,4,5,6]
print a
# 最小的放到最后
min = min(a)
a.remove(min)
a.append(min)
# 最大的放到最前面
max = max(a)
a.remove(max)
a.insert(0,max)
print(a)"""
题目68:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数
"""
分析: 因为总长度不变,即最后一项变为第一个,最后第二个变为整数第二个即a[i] = a[i+m] , a[len(a)-1] = a[i]
逻辑和方法对了,其实就很简单了
a = [1,2,3,4,5,6,7]    # 测试列表
m = 5                  # 设置向后移动 3 位
for i in range(m):a.insert(0, a.pop())  # pop 剔除默认最后一位,insert加入指定位置指定数;
print(a)"""
题目69:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
"""
n = [i+1 for i in range(20)]
i = 1
while len(n) > 1:if i % 3 == 0:n.pop(0)else:n.insert(len(n),n.pop(0))   # 同68 考验逻辑i += 1
print(n) """
题目70:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
"""
分析: 略 """
题目71:编写input()和output()函数输入,输出5个学生的数据记录。
"""
分析: 略 """
题目72:创建一个链表。
"""
l=[ input("please input a number:\n") for i in range(5)]
print(l)"""
题目73:反向输出一个链表。
"""
l=[ input("please input a number:\n") for i in range(5)]
l.reverse()
print(l)"""
题目74:列表排序及连接。
"""
分析: 略 """
题目75:放松一下,算一道简单的题目。
"""
分析: 略 

51-75题如上,大家有什么疑问可以留言讨论。

题外话

希望本文有大家有帮助, 如有错误,欢迎指正。
转载请注明原文链接:
https://blog.csdn.net/weixin_41613094/article/details/122268882

【Python】基础习题100例(51-75例)_努力做最通俗易懂版本相关推荐

  1. python基础练习(100)--练习题

    一.python基础练习(100) 1.1 基础(格式或语法) """只记录复杂化的题目和思路""" 003.比较和赋值 --执行如下代码会 ...

  2. 【python】python基础测试100题

    python基础面试测试100题 Q1.什么是Python? Q2.Python的主要功能是什么? Q3.Python中支持的数据类型有哪些? Q4.列表和元组有什么区别? Q5.什么是Python模 ...

  3. Python基础练习题100例(Python 3.x)

    1:题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源 ...

  4. Python基础---习题

    1.从1到100的和 #!/usr/bin/python #-*- coding:UTF-8 -*- sum = 0 for i in range(1, 101):sum = sum + i prin ...

  5. Python基础教程100天:Day03-分支结构

    分支结构的应用场景 迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种结构的代码我们称之为顺序结构.然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家 ...

  6. python 10个100以内随机整数编辑_你要偷偷的学Python,然后惊呆所有人(第五天) - python阿喵

    标题无意冒犯,就是觉得这个广告挺好玩的 前言 前期回顾:你要偷偷学Python,然后惊呆所有人(第四天) 在第四天的时候,我们接触了Python的模块调用,这也是Python能够火起来的一大优势.我们 ...

  7. python基础语言与应用第五章_《Python基础教程》 读书笔记 第五章(下)循环语句...

    5.5.1while循环 x=1 while x<=100: print x x+=1 确保用户输入了名字: name="" while not name: name=raw ...

  8. python基础语言与应用第五章_《Python基础教程》 读书笔记 第五章(下)条件语句...

    5.5.1while循环 1234x=1while x<=100: print x x+=1 确保用户输入了名字: 1234name=""while not name: na ...

  9. 【Python基础知识-pycharm版】第九节_面向对象的三大特征

    第九节 方法 方法没有重载 私有属性和私有方法(实现封装) @property装饰器_get和set方法 面向对象的三大特征说明(封装.继承.多态) 继承 方法的重写(类成员的继承和重写) 查看类的继 ...

最新文章

  1. dns tunnel工具地址
  2. 写给想当程序员的朋友
  3. Java笔记05-Collection、泛型、迭代器
  4. 嵌入生活的嵌入式,超市里的电子价签
  5. 20分钟充满!华为P50系列或最高支持100W超级快充
  6. 自实现进程管理器linux,【Linux工具篇】supervisor进程管理器
  7. Kafka如何做到全局有序
  8. 不是生活所迫,谁特么想努力!
  9. VMware Fusion Pro v10.1.6 苹果虚拟机免费版及解锁许可证
  10. 《攻守道》笔记(3)
  11. 应用pagehelper实现大屏展示自动换页
  12. Centos8安装常用软件及家用操作命令
  13. 豆瓣技术团队的指环王文化
  14. [洛谷]P2108 学英语 (#模拟 -2.3)(#枚举 1.3)
  15. C++day01 const和define之间的区别
  16. 菜鸟 学注册机编写之 “查表”
  17. python Cookbook 学习笔记(一)
  18. Oracle ADDM自动数据库诊断监视器
  19. Anaconda prompt常用语句以及常见错误集合啦!
  20. 终于收到OCP证书了

热门文章

  1. 《出师表》中英文完整版
  2. 【翻译】Adventuring to Spur Creativity at Work【通过探险激发工作中的创造力】
  3. 32位版本的轻量级linux,CRUX 3.4 发布,轻量级 Linux 发行版
  4. 计算机中有符号数为什么规定0为正,1为负?而且为了方便数值比较大小,甚至引入移码【就是在补码的基础上,符号位取反而已】。那么问题来了,为什么不一开始就规定1为正,0为负呢?
  5. 武汉“追风筝的人”:50年手工制作风筝3万余架
  6. 山东财经大学python实验六答案_金融学(山东财经大学)智慧树知道2020章节测验答案...
  7. Office 365系列(5)------IMAP Migrate 搬迁方式至O365上来方法及步骤总结
  8. Linux【实操篇】—— 日志管理
  9. tomcat关闭8009和8005端口
  10. 【数据挖掘】之 数据挖掘 绪论