基础题
-
根据输入的成绩的范围打印
及格
或者不及格
。grade = int(input("请输入成绩(百分制):")) if grade > 100 or grade < 0: print("输入有误") elif grade >= 60: print("及格") else: print("不及格")
-
根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。age = int(input("请输入你的年龄:")) if age < 0 or age > 150: print("你不是人!") elif age >= 18: print("你是成年人") else: print("你是小屁孩")
-
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
。a = int(input("请输入a的值:")) b = int(input("请输入b的值:")) if (a - b) % 2: print("{}-{}的结果为奇数{}".format(a, b, a - b)) else: print("{}-{}的结果是{}不是奇数".format(a, b, a - b))
-
使用for和while循环输出 0~100内所有3的倍数。
count = 0 for i in range(3, 101, 3): count += 1 print("1~100能被3整除的个数", count) # for循环 count = 0 i = 3 while i < 100: count += 1 i += 3 print("1~100能被3整除的个数", count) # while循环
-
使用for和while循环输出0~100内所有的偶数。
for i in range(0, 100, 2): print(i) # for循环 i = 0 while i < 100: print(i) i += 2 # while循环
进阶题
-
使用循环计算
1*2*3*4*...*10
的结果。sum1 = 1 for i in range(1, 11): sum1 *= i print("1*2*..*10的结果为:", sum1)
-
统计100以内个位数是2并且能够被3整除的数的个数。
count = 0 for i in range(2, 100, 10): if i % 3 == 0: count += 1 print("100以内个位数是2并且能够被3整除的数的个数为:", count)
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
num = int(input("请输入一个正整数:")) i = 10 count = 1 while num // i != 0: i *= 10 count += 1 print("这是一个{}位数".format(count))
-
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是
⼀个⽔仙花数,因为
1³ + 5³ + 3³
等于 153。for i in range(100, 1000): a = i // 100 b = i % 100 // 10 c = i % 10 if (a ** 3) + (b ** 3) + (c ** 3) == i: print(i, "是水仙花数。")
挑战题
-
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = 2021 for x in range(2, int(num ** (1 / 2)) + 1): # 一个数的因素最多不会大于它的开方,由循环规律决定 if num % x == 0: print(num, "不是质数,它的因数为{}与{}".format(x, num / x)) break else: print(num, "是质数") # for循环版本 while x <int(num ** (1 / 2)) + 1: if num % x == 0: print(num, "不是质数,它的因数为{}与{}".format(x, num / x)) break x += 1 else: print(num, "是质数") # while循环版本
-
求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
n = int(input("你想求裴波那契数列第几个数的值:")) def fun1(n): if n == 1 or n == 2: return 1 return fun1(n - 1) + fun1(n - 2) print(fun1(n)) # 递归法 n = int(input("你想求裴波那契数列第几个数的值:")) sum1 = 1 sum2 = 1 for i in range(n-1): sum1, sum2 = sum2, sum1+sum2 print(sum1) #循环法
-
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1, 10): for j in range(1, i+1): print("{}*{}={}".format(j, i, i * j), end=' ') print("\n")
-
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
for i in range(100 // 3 + 1): for j in range(100 - i): if (100 - i - j) % 2 == 0 and 3 * i + 2 * j + (100 - i - j)/2 == 100: print("大马有{}只,中马有{}只,小马有{}只".format(i,j,100 - i - j))