Python3的100多个Python挑战性编程练习题【收藏就对了】1.等级说明
1级初学者
初学者是指刚刚完成Python⼊门课程的⼈。他可以使⽤1或2个Python类或函数解决⼀些问题。通常,答案可以直接在教科书中到。
2级中级
中级是指刚刚学习过Python,但已经具有相对较强的编程背景的⼈。他应该能够解决可能涉及3或3个Python类或函数的问题。答案不能直接在教科书中到。
3级⾼级。
他应该使⽤Python通过更丰富的库函数,数据结构和算法来解决更复杂的问题。他应该使⽤⼏种Python标准软件包和⾼级技术来解决该问题。
2.问题模板
问题提⽰解决⽅案
3.问题
问题1
1级
问题:编写⼀个程序,查所有此类数字,它们可以被7整除,但不能是5的倍数,介于2000和3200之间(均包括在内)。获得的数字应以逗号分隔的顺序打印在⼀⾏上。
提⽰:考虑使⽤范围(#begin,#end)⽅法
解决⽅案:
python在线编辑器python3升= []
为 我 在 范围(2000,3201):
如果(我%7 == 0)和(我%5 =!0):
升。追加(str(i))
打印(','。join(l))
问题2
1级
数据库sql语句总结问题:编写⼀个程序,可以计算给定数字的阶乘。结果应以逗号分隔的顺序打印在⼀⾏上。假设将以下输⼊提供给程序:8然后,输出应为:40320
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。
解决⽅案:
def fact(x):
如果 x == 0:
返回 1
返回 x * fact(x - 1)
x = int(输⼊())
打印(事实(x))
问题3
1级
问题:使⽤给定的整数n,编写程序以⽣成包含(i,i * i)的字典,该字典的值应为1到n之间的整数(都包括在内)。然后程序应打印字典。假设将以下输⼊提供给程序:8然后,输出应为:{1:1、2:4、3:9、4:16、5:25、6:36、7:49、8:64 }
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。考虑使⽤dict()
解决⽅案:
n = int(输⼊())
d =字典()
对于 i 在 范围(1,n + 1)中:
d [ i ] = i * i
打印(d)
问题4
1级
问题:编写⼀个程序,该程序从控制台接受⼀系列逗号分隔的数字,并⽣成包含每个数字的列表和元组。假设将以下输⼊提供给程序:
34,67,55,33,12,98然后,输出应为:['34','67','55','33','12',' 98'](“ 34”,“ 67”,“ 55”,“ 33”,“ 12”,“ 98”)
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。tuple()⽅法可以将列表转换为元组
解决⽅案:
值=输⼊()
l =值。split(“,”)
t =元组(l)
打印(l)
易语言破解版可静态编译下载打印(t)
问题5
1级
问题:定义⼀个⾄少具有两个⽅法的类:getString:从控制台输⼊中获取字符串printString:以⼤写形式打印该字符串。还请包括简单的测试功
能来测试类⽅法。
提⽰:使⽤init⽅法构造⼀些参数
解决⽅案:
类 InputOutString(object):
def __init__(self):
self。s = “”
def getString(self):
self。s = 输⼊()
⾼清 PRINTSTRING(个体经营):
打印(⾃我。⼩号。上())
strObj = InputOutString()
strObj。getString()
strObj。printString()
问题6
2级
问题:编写⼀个程序,根据给定的公式计算并打印该值:Q = [(2 * C * D)/ H]的平⽅根以下是C和H的固定值:C为50。H为30 。D是变量,其值应以逗号分隔的顺序输⼊到程序中。⽰例假定给程序提供了以下逗号分隔的输⼊序列:100,150,180程序的输出应为:18,22,24
提⽰:如果接收到的输出为⼗进制形式,则应四舍五⼊⾄最接近的值(例如,如果接收到的输出为26.
0,则应将其打印为26)。应假定为控制台输⼊。
解决⽅案:
进⼝ 数学
Ç = 50
ħ = 30
值 = []
项= [ X 为 X 在 输⼊()。分裂('')]
为 d 中 的项⽬:
ppt文本框快捷键值。追加(STR(INT(圆形(数学。SQRT(2 * ç *浮⼦(d)/ ħ)))))
print(','。join(value))
问题7
2级
问题:编写⼀个程序,该程序将X,Y两位数字作为输⼊,并⽣成⼀个⼆维数组。数组的第i⾏和第j列中的元素值应为i * j。注意:i = 0,1 ..,X-1; j = 0,1,¡Y-1。⽰例假设给程序提供了以下输⼊:3,5然后,程序的输出应为:[[0,0,0,0,0],[0,1,2,3,4],[ 0,2,4,6,8]]
提⽰:注意:如果将输⼊数据提供给问题,则应假定它是以逗号分隔形式的控制台输⼊。
解决⽅案:
input_str = 输⼊()
尺⼨= [ INT(X)为 X 的 input_str。分裂('')]
的rowNum =尺⼨[ 0 ]
colNum =尺⼨[ 1 ]
多重表 = [[ 0 为 ⼭⼝ 在 范围(colNum)]为 ⾏ 中 的范围(的rowNum)]
对于 ⾏ 中 的范围(的rowNum):
⽤于 ⼭⼝ 在 范围(colNum):
多重表[⾏] [⼭⼝] = ⾏*⼭⼝
打印(多列表)
问题8
2级
问题:编写⼀个程序,该程序接受以逗号分隔的单词序列作为输⼊,并在按字母顺序对单词进⾏排序后以逗号分隔的顺序打印这些单词。假设向程序提供了以下输⼊:Without,hello,bag,world然后,输出应为:bag,hello,without,world
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。
解决⽅案:
项= [ X 为 X 在 输⼊()。split(','))
项⽬。sort()
print(','。join(项⽬))
问题9
2级
问题:编写⼀个程序,接受⾏的顺序作为输⼊,并在将句⼦中的所有字符都⼤写之后打印⾏。假定向程序提供了以下输⼊:Hello world Practice 使完美,然后,输出应为:HELLO WORLD PRACTICE完美⽆缺
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。
解决⽅案:
lines = [],
⽽ True:
s = input(),
如果 s:
lines。追加(⼩号。上())
二建证书有什么用其他:
休息;
对于 句⼦ 的 线路:web程序框架
打印(句⼦)
问题10
2级
问题:编写⼀个程序,该程序接受⼀系列由空格分隔的单词作为输⼊,并在删除所有重复的单词并将其按字母数字顺序排序后打印这些单词。假定向程序提供了以下输⼊:hello world and实践再次使完美和hello world然后,输出应为:again and hello使完美实践的世界
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。我们使⽤set容器⾃动删除重复的数据,然后使⽤sorted()对数据进⾏排序。
解决⽅案:
š = 输⼊()
词语 = [字 为 字 在 ⼩号。split(“”)]
print(“”。join(排序(列表(set(单词)))))
问题11
2级
问题:编写⼀个程序,该程序接受⽤逗号分隔的4位⼆进制数字序列作为输⼊,然后检查它们是否可被5整除。被5整除的数字将以逗号分隔的顺序打印。⽰例:0100,0011,1010,1001然后输出应为:1010注意:假设数据是由控制台输⼊的。
提⽰:如果将输⼊数据提供给问题,则应假定它是控制台输⼊。
解决⽅案:
值 = []
项= [ X 为 X 在 输⼊()。在项⽬中为p的split(',')]
:
intp = int(p,2),
如果不是intp %5:
value。追加(p)
print(','。join(value))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论