前言:

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. android开发系列之数据存储
  2. 奥维导入的内容都不显示了_不懂内容运营?看看别人都是怎么打造爆款卖货文案的...
  3. java hashmap object_Java中的大量Object(使用HashMap)
  4. GraalVM上的Picocli:极快的命令行应用程序
  5. 使用 Flomesh 强化 Spring Cloud 服务治理
  6. zabbix-3.0.4安装部署
  7. 面试题10.3-变态跳台阶
  8. StringUtil字符串小工具-功能扩展
  9. Q140:PBRT-V3,各种渲染算法(Integrator,积分器)汇总
  10. 国民体质测定标准计算机应用软件,体测标准计算器
  11. 惠普电脑怎么用access_惠普笔记本电脑怎么分区
  12. 对计算机的认识和未来规划,计算机导论论文-论对软件专业的认识和对未来四年的规划...
  13. 转:什么都没有反而可以做得更好
  14. 【涨粉10万】CSDN年度总结——再见2021
  15. ML之ME:Best-KS分箱/KS值(分类预测问题中评价指标、数据分箱方法)的简介(KS与ROC的关系)、使用方法、案例应用之详细攻略
  16. HDU-1814-TwoSAT
  17. 讲的真详细!如何成为一个更好的Android开发者?成功入职腾讯
  18. 今年看过的最好的动画片 无敌破坏王
  19. 鸿蒙系统明年上市巧,华为:智能手表及笔记本电脑将搭载鸿蒙系统 手机明年上市...
  20. 异常处理——template中的image组件图片未显示

热门文章

  1. 电大计算机阅读英语作文,电大 英语网考翻译题库(绝对有命中题)
  2. 自动(智能)驾驶 | 全网第一本激光雷达手册阅读指南(下)
  3. MySQL数据库底层实现原理
  4. Python计算机视觉之全景图像拼接
  5. 阴历五月一个下着雨夹雪的黄昏
  6. python画小猪_利用python画小猪佩奇
  7. UE4 命令工具打包
  8. AI人工智能 容智RPA银行机器人的优势
  9. 毕业设计 单片机森林远程智能火灾监控系统
  10. centos7.6 服务器搭建Java环境(若依--srs)