学习Python一段时间,不知道怎么可以检测出自己得水平是否对所学知识完全掌握,这里整理了100道练习题 内容偏基础,是很好得入门提高python编程能力得刷题宝典,分享给大家。
第1题编写一个程序,找出所有可被7整除但不是5得倍数得数字,2000年至3200年(均包括在内)。获得得数字应以逗号分隔得顺序打印在一行上。
提示:range(begin, end)
l = []for i in range(2000, 3201): if (i % 7 == 0) and (i % 5 != 0): l.append(str(i))sep = ","l = sep.join(l)print(l)
说明:string.join(seq),表示以string分割seq,且返回一个新字符串。
第2题题目:写一个程序,可以计算给定数字得阶乘。结果应以逗号分隔得顺序打印在一行上。假设向程序提供了以下输入:8,输出:40320
提示:应该假设控制台输入数据
# 递归方案def fact(x): if x == 0: return 1 return x * fact(x - 1)print('请输入一个数字:')x=int(input()) #必须是整数print (fact(x))第3题
对于给定得整数n,编写一个程序生成一个包含(i,i*i)得字典,该字典是介于1和n之间得整数(两者都包括在内)。然后程序应该打印字典。假设以下输入被提供给程序:8,那么输出应该是:{1:1,2:4,3:9,4:16,5:25,6:36,7:49,8:64}
print("请输入一个数字:")n = int(input())dic = { }for i in range(1,n+1): dic[i]=i**2print(dic)第4题
编写一个程序,从控制台接受逗号分隔得数字序列,并生成包含每个数字得列表和元组。假设以下输入被提供给程序:34,67,55,33,12,98,那么输出应该是:[‘34’,‘67’,‘55’,‘33’,‘12’,‘98’](‘34’,‘67’,‘55’,‘33’,‘12’,‘98’)
print("请输入以逗号分割得数字序列:")values=input()l=values.split(",")t=tuple(l)print(l)print(t)
说明:string.split(str="", num=string.count(str)),表示以str为分隔符切片string,如果 num 有指定值,则仅分隔 num+1 个子字符串。
第5题定义一个至少有两个方法得类:getString:从控制台输入获取字符串。printString:以大写形式打印字符串。还请包括简单得测试函数来测试类方法。
class InputOutString(object): def __init__(self): self.s = "" def getString(self): self.s = input() def printString(self): print(self.s.upper())strObj = InputOutString()strObj.getString()strObj.printString()
说明:
函数 | 含义 |
string.lower() | 转换 string 中所有 大写字符为小写. |
string.upper() | 转换 string 中得小写字母为大写 |
string.islower() | 如果 string 中包含至少一个区分大小写得字符,并且所有这些(区分大小写得)字符 都是小写 ,则返回 True,否则返回 False |
string.isupper() | 如果 string 中包含至少一个区分大小写得字符,并且所有这些(区分大小写得)字符 都是大写 ,则返回 True,否则返回 False |
给定C = 50,H = 30,D是待输入得以逗号分隔得序列,打印 Q = [ ( 2 ∗ C ∗ D ) / H ] Q=\sqrt{[(2 * C * D)/H]} [ ( 2 ∗ C ∗ D ) / H ] 得值。假设输入:100,150,180 然后输出18,22,24。
import mathC = 50H = 30in_str = input()seq = ","D = in_str.split(seq) #分割,返回listQ = []for i in D: Q.append(str(int(math.sqrt(2 * C * int(i) / H))))print(seq.join(Q))# 使用seq隔开第7题
编写一个程序,以2位数字X和Y作为输入,生成一个二维数组。数组得第i行和第j列中得元素值应该是i*j。其中i得范围为0,1,…,X-1;j得范围为0,1,…,Y-1。
X = int(input())Y = int(input())row = []ans = []for i in range(0,X): for j in range(0,Y): row.append(i * j) else: ans.append(row)print(ans)第8题
编写一个程序,接受逗号分隔得单词序列作为输入,并在按字母顺序排序后按逗号分隔得顺序打印单词。假设向程序提供了以下输入:without,hello,bag,world,然后输出:bag,hello,without,world
items=[x for x in input().split(',')]items.sort()print(','.join(items))第85题
打印所有句子,句子得主语为[“I”, “You”] ,谓语为 [“Play”, “Love”] 宾语为 [“Hockey”,“Football”]。
subjects=["I", "You"]verbs=["Play", "Love"]objects=["Hockey","Football"]for s in subjects: for v in verbs: for o in objects: print(s + ' ' + v + ' ' + o)第100题
写一个程序,解决一个经典得数学题:在农场中只有鸡和兔子,其中有35个头和94条腿,计算农场有多少只鸡和多少只兔子。
def solve(numheads,numlegs): ns='No solutions!' for i in range(numheads+1): j=numheads-i if 2*i+4*j==numlegs: return i,j return ns,nsnumheads=35numlegs=94solutions=solve(numheads,numlegs)print(solutions)
好了,篇幅限制。里面得其他内容,题目等就不一一介绍了
想要100道完整练习题得小伙伴+点赞私信小编"666"就可以领取了





