1.求100(含100)以内所有偶数的和
range(start,end,step)这个序列生成器,和那个切片的语法一样,含头不含尾,step是步长,这里就不需要在对j进行判断了,对于这些简单求奇数和、求偶数和,就n的倍数和等等就可以这样做s=0forjinrange(0,101,2):
s=s+jprint(s)#25501234
2.打印99乘法表
用于理解循环的使用#a=0#whilea<9:#a+=1#b=0#whileb
forjinrange(1,i+1):
print(f'{j}*{i}={i*j}',end='\t')
print()"""
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
"""123456789101112131415161718192223
3.求第n位斐波那契数
这是求第n位斐波那契数,大家可以尝试多种方法做,我这就不做多的演示了,要是求n(包含n)位前所有斐波那契数了,创建一个列表保存一下就好,希望大家可以去做一下,加深对列表方法的使用#斐波那契数列:1,1,2,3,5,8,13,21,34,55.....#从第三位开始:后一个数等于前面两数相加n=int(input('请输入你要求第几位斐波那契数:'))a=0b=1foriinrange(n):
#c=a
#a=b
#b=c+b
#上里三式可以简写为:
a,b=b,a+bprint(a)123456789101112
4.百马百担
一匹大马能背3担货,一匹中马能背2担货,两匹小马能背1担货,如果用一百匹马背一百担货,有哪些不同的背法foriinrange(34):#i代表大马的匹数
forjinrange(51):#j代表中马的匹数
ifi*3+j*2+(100-i-j)/2==100:
print(f'大马={i},中马={j},小马={100-i-j}')#大马=2,中马=30,小马=68#大马=5,中马=25,小马=70#大马=8,中马=20,小马=72#大马=11,中马=15,小马=74#大马=14,中马=10,小马=76#大马=17,中马=5,小马=78#大马=20,中马=0,小马=801234567891011
5.求水仙花数
我这定义了一个函数去求n位数的水仙花数,不过水仙花数就是100-1000内个位十位百位3次方的和等于本身的数,我那只是类推一下,当然也可以不定义函数,直接使用input输入一个n或者直接给定n的值defget_Narcissistic(n):
foriinrange(pow(10,n-1),pow(10,n)):
s=0
forjinrange(n):
s=s+pow(i//10**j%10,n)
ifi==s:
print(i)get_Narcissistic(3)#153#370#371#407123456789101112
6.求n以内的所有质数(素数)和
质数:只能被1和自身整除的数n=int(input('请输入一个大于或等于2的正整数:'))#foriinrange(2,n+1):#flag=True#每次循环开始都会重置为True#forjinrange(2,int(i**0.5)+1):#只用循环到i的平方根就好减少循环次数#ifi%j==0:#flag=False#break#只要有一个整除就跳出循环#ifflag:#只有上面循环完,flag还等于True才会打印i#print(i)#上面程序也可以写成#这里就涉及到for...else语句的使用:#当for..in循环自然结束时,后面有else就会运行else里的内容,没有就执行下面的内容#当循环因为某种原因(如break)提前退出循环,就不会执行else里的内容foriinrange(2,n+1):
forjinrange(2,int(i**0.5)+1):#只用循环到i的平方根就好减少循环次数,提高效率
ifi%j==0:
break#只要有一个整除就跳出循环
else:#只有上面循环完,flag还等于True才会打印i
print(i,end='\t')#显示在一行#23571113171923293137414347535961677173798389971234567891011121314151617181920
---------------------------------------------------
集合的使用
-集合也是用{}包裹起来的,集合是一个不重复的无序的,所有集合一般用来去重操作的-注意:空集合使用set()表示,{}表示空字典persons={'zhangsan','lisi','jack','lisi','jack','wangwu','maliu'}print(persons)#{'zhangsan','wangwu','jack','maliu','lisi'}persons.add('李白')#添加一个元素,但位置不确定,所有你们运行的答案和我的一样但是顺序不一样print(persons)#{'zhangsan','wangwu','jack','maliu','lisi','李白'}persons.pop()#随机删除一个元素,你们运行的答案应该和我的应该不一样print(persons)#{'wangwu','zhangsan','李白','jack','maliu'}persons.remove('李白')#删除一个指定的元素,没有的话会报错print(persons)#{'wangwu','zhangsan','jack','maliu'}#union将多个集合合并生成一个新的集合#A.updateB将B拼接到A,B要是一个可迭代对象#集合是无序的,所以就不一定是添加在最后persons.update(('刘能','赵四'))print(persons)#{'刘能','wangwu','zhangsan','赵四','jack','maliu'}#persons.clear()#用来清空集合的12345678910111213141516171819
python里的集合也是有交集并集差集一说的,当然交集并集差集也是可以用字典的方法来表示的,这里我就不演示了,我感觉直接用符号简单一点,要了解的话也可以查看一下帮助文档sing={'王昭君','貂蝉','小乔','大桥','火舞','李白','韩信'}dance={'李元芳','王昭君','李白','韩信','老虎','鲁班','后裔'}print(sing-dance)#A和B的差集{'大桥','火舞','小乔','貂蝉'}print(sing&dance)#A和B的交集{'王昭君','李白','韩信'}print(sing|dance)#A和B的并集{'李元芳','王昭君','后裔','鲁班','老虎','火舞','貂蝉','李白','大桥','小乔','韩信'}print(sing^dance)#A和B的差集的并集#{'李元芳','鲁班','小乔','后裔','火舞','貂蝉','老虎','大桥'}123456
---------------------------------------------------
一些公关方法#+:可以用来拼接,字符串,列表,元组print('hello'+'world')#'helloworld'print([1,2,3]+[4,5,6])#[1,2,3,4,5,6]print((1,2,3)+(4,5,6))#(1,2,3,4,5,6)#-:只能用于集合,求差集print({1,2,3}-{3})#{1,2}#*:可以用于字符串元组列表,不能用于字典和集合print('hello'*3)#'hellohellohello'print([1,2,3]*3)#[1,2,3,1,2,3,1,2,3]print((1,2,3)*3)#(1,2,3,1,2,3,1,2,3)#in:成员运算符print('a'in'abc')#Trueprint(1in[1,2,3])#Trueprint(1in(1,2,3))#True#in用于字典是用来判断key是否存在的print('zhangsan'in{'name':'zhangsan','age':18})#Falseprint('name'in{'name':'zhangsan','age':18})#True
如果觉得《python从键盘输入一个数n 输出大于n且不能整除3_python基础练习题》对你有帮助,请点赞、收藏,并留下你的观点哦!