1. 基础题
-
输入年份,如果输入的年是闰年打印
'闰年'
否则打印'平年'
year=int(input('请输入年份:')) if (year % 4 ==0 and year % 100 !=0) or year%400==0: print('闰年') else: print('平年')
-
使用for和while循环输出 0~100内所有3的倍数.
for x in range(3,100,3): print(x) num=3 while num<100: print(num) num+=3
-
使用for和while循环输出100~200内个位数或者十位数能被3整除的数。
for x in range(100,200): if (x%10%3==0) or (x//10%10%3==0): print(x) num=100 while num<200: if (num%10%3==0) or (num//10%10%3==0): print(num) num+=1
-
使用for和while循环统计100~200中十位数是5的数的个数
count=0 for x in range(100,201): if x//10%10==5: count+=1 print(count)
-
使用for和while循环打印50~150中所有能被3整除但是不能被5整除的数
for x in range(51,151,3): if x%5 != 0: print(x) num=51 while num<=150: if num%5 != 0: print(num) num+=3
-
使用for和while循环计算50~150中所有能被3整除但是不能被5整除的数的和
sum=0 for x in range(51,151,3): if x%5 != 0: sum+=x print(sum) num=51 while num<151: if num%5 != 0: sum+=num num+=3 print(sum)
2. 进阶题
-
使用循环计算
1*2*3*4*...*10
的结果。product=1 for x in range(1,11): product*=x print(product) # 3628800
-
统计100以内个位数是2并且能够被3整除的数的个数。
count=0 ''' for x in range(3,100,3): if x%10==2: count+=1 print(count) ''' for x in range(2,100,10): if x%3==0: count+=1 print(count)
-
输入任意一个正整数,求他是几位数?
count=0 num=int(input('请输入一个正整数:')) while num != 0: num//=10 count+=1 print(count) ''' count=1 num=int(input('请输入一个正整数:')) while num//10 != 0: num//=10 count+=1 print(count) '''
注意: 这儿不能使用字符串,只能用循环
-
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是
⼀个⽔仙花数,因为
1³ + 5³ + 3³
等于 153。for x in range(100, 1000): if ((x // 100)**3+(x // 10 % 10)**3+(x % 10)**3) == x: print(x) # 153 370 371 407
3. 挑战题
-
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num=int(input('请输入一个正整数:')) for x in (2,num): if num%x == 0: print(num,'不是') break else: print('是')
-
求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
n_1=n_2=1 n=int(input('请输入一个数字:')) if n >= 3: for x in range(n-3): n_1,n_2=n_1+n_2,n_1 print(n_1+n_2) else: print(1)
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for row in range(1,10): for col in range(1,row+1): print(col,'X',row,'=',col*row,end=' ') print()
-
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
for big in range(0, 34): for middle in range(0, 51): small = 100 - big - middle if (big * 3 + middle * 2 + small / 2) == 100: print(big, middle, small)