散人非IT专业,乃医疗人士,自学编程也是被逼无奈。网络资源丰富,奈何初学者总是各种艰难。很多练习题,因为python版本问题,各种函数格式改变等原因,无法跑出来。散人心痒笔痒,将亲测可以跑出来的总结再次。散人现在用的是3.9版本。当然,很久以后,可能这些代码也跑不出来了。临床工作繁忙,间歇性将学习笔记整理出来。
Question 1
Level 1
问题:
写一个程序,找出所有能被7整除但不是5的倍数的数,2000至3200之间(都包括在内)。
获得的数字应该以逗号分隔的序列打印在单行上。
提示:
考虑使用range(begin, end)方法
Solution:
l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print (','.join(l))
Question 2
Level 1
问题:
写一个可以计算给定数的阶乘的程序。结果应该以逗号分隔的序列打印在单行上。
假设向程序提供了以下输入:
8
那么,输出应该是:
40320
提示:
应该使用input()
Solution:
def fact(x):
if x == 0:
return 1
return x * fact(x - 1)
x=int(input())
print(fact(x))
Question de3
Level 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()
Solution:
n=int(input())
d={}
for i in range(1,n+1):
d[i]=i*i
print(d)
#补充 关于
for i in range (1,10)
print(i) #则会出现1~9的数字,所以如果含n,必须是(1,n+1)
网友评论