基础题
-
根据输入的成绩的范围打印
及格或者不及格。# 这是一个根据输入的成绩判断是否及格的程序 score = float(input('请输入成绩:')) if score >= 60: print('及格') else: print('不及格') -
根据输入的年纪范围打印
成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!。# 这是一个根据年龄判断是否成年的程序 # 三个条件互斥,用elif age = int(input('请输入年龄:')) if age < 18: print('未成年') elif age <= 150: print('成年') else: print('这不是人!') -
输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数# 这是一个判断两数之差是否是奇数的程序 a = int(input('请输入整数a:')) b = int(input('请输入整数b:')) if (a - b) % 2: print(a -b) else: print('a-b的结果不是奇数') -
使用for循环输出 0~100内所有3的倍数。
# 这是一个输出100以内所有3的倍数的程序 for x in range(100): if not x % 3: print(x, end=' ') -
使用for循环输出100~200内个位数或者十位数能被3整除的数。
# 这是一个输出100到200之间个位数或者十位数能被3整除的数的程序 # 方法1:符合思维逻辑,但效率低 for x in range(100, 201): ones = x % 10 tens = x // 10 % 10 if not (ones % 3 and tens % 3): print(x, end=' ') # 方法2:效率高,但没有用到取个位、十位的知识点,不利于练习 # 第一种情况:十位是3的倍数,个位是0~9 for tens in range(0, 10, 3): for ones in range(10): print(1, tens, ones, sep='', end=' ') # 第二种情况:十位除以3余1,个位是0、3、6、9 for tens in range(1, 10, 3): for ones in range(0, 10, 3): print(1, tens, ones, sep='', end=' ') # 第三种情况:十位除以3余2,个位是0、3、6、9 for tens in range(2, 10, 3): for ones in range(0, 10, 3): print(1, tens, ones, sep='', end=' ') -
使用for循环统计100~200中十位数是5的数的个数
# 这是一个统计100到200中十位数是5的数的个数的程序 count = 0 for x in range(100, 200): if x // 10 % 10 == 5: count += 1 print('100到200之间十位数是5的数的个数是:', count) -
使用for循环打印50~150中所有能被3整除但是不能被5整除的数
# 方法1:效率低 for x in range(50, 150): if not (x % 3) and x % 5: print(x, end=' ') # 方法2:效率高 for x in range(51, 150, 3): if x % 5: print(x, end=' ') -
使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
# 这是一个计算50到150之间能被3整除但不能被5整除的数的和的程序 sum = 0 for x in range(51, 150, 3): if x % 5: sum += x print(sum) -
统计100以内个位数是2并且能够被3整除的数的个数。
# 这是一个统计100以内个位数是2并且能够被3整除的数的个数的程序 # 方法1,适合练习用的方法 count = 0 for x in range(100): if x % 10 == 2 and not x % 3: count += 1 print(count) # 方法2:效率高,但投机取巧 count = 0 for x in range(1, 10, 3): count += 1 print(count) # 笑死,还不如直接print(3)
进阶题
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环 (会用到while循环)
# 这是一个判断正整数位数的程序 # 方法1,使用字符串 count = 0 num = input('请输入一个正整数:') for x in num: count += 1 print('这是一个', count, "位数", sep='') # 方法2,使用while循环 count = 1 num = int(input('请输入一个正整数:')) while num // 10: count += 1 num //= 10 print('这是一个', count, "位数", sep='') -
打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是 一个水仙花数,因为
1³ + 5³ + 3³等于 153。# 这是一个找到所有的水仙花数的程序 for x in range(100, 1000): ones = x % 10 tens = x // 10 % 10 hundreds = x // 100 if x == ones ** 3 + tens ** 3 + hundreds ** 3: print(x, end=' ') -
判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
注意:会用break
# 这是一个判断某数是否是素数的程序 num = int(input('请输入一个正整数:')) if num == 2: print('这是个素数') else: for x in range(2, int(num ** 0.5) + 1): if num % x == 0: print('这是个合数') break else: print('这是个素数') -
输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
# 这是一个输出九九乘法表的程序 for i in range(1, 10): for j in range(i, 10): print(i, '×', j, '=', i * j, end=' ') if j == 9: print('') -
这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
# 这是一个解决百马百担问题的程序 for big in range(101): for middle in range(101 - big): small = 100 - big - middle if 3 * big + 2 * middle + 0.5 * small == 100: print('大马数量:', big, '中马数量:', middle, '小马数量:', small) break答案:
大马数量: 2 中马数量: 30 小马数量: 68
大马数量: 5 中马数量: 25 小马数量: 70
大马数量: 8 中马数量: 20 小马数量: 72
大马数量: 11 中马数量: 15 小马数量: 74
大马数量: 14 中马数量: 10 小马数量: 76
大马数量: 17 中马数量: 5 小马数量: 78
大马数量: 20 中马数量: 0 小马数量: 80
此博客包含一系列编程基础和进阶问题的解决方案,包括判断成绩及格、年龄成年、数字奇偶性、循环输出数字、计算数的个位数、素数判断、九九乘法表和经典数学问题的编程实现。涉及条件判断、循环控制、数字操作等核心编程概念。
360

被折叠的 条评论
为什么被折叠?



