基础题
- 根据输入的成绩打印
及格
或者不及格
。
score = int(input('请输入你的成绩:')) # 99
if score >= 60:
print('及格')
else:
print('不及格')
# 运行结果
'''
及格
'''
- 根据输入的年纪范围打印
成年
或者未成年
,如果年龄不在正常范围内(0~150)打印这不是人!
。
age = int(input('请输入你的年龄:')) # 151
if 0 <= age < 18:
print('未成年')
elif 18 <= age <= 150:
print('成年')
else:
print('这不是人!')
# 运行结果
'''
这不是人!
'''
- 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息
a-b的结果不是奇数
a = int(input('请输入第一个整数:')) # 7
b = int(input('请输入第二个整数:')) # 5
if (a - b) % 2 == 0:
print(a, '-', b, '的结果不是奇数', sep='')
else:
print(a-b)
# 运行结果
'''
7-5的结果不是奇数
'''
- 使用for循环输出 0~100内所有3的倍数。
for i in range(0, 101, 3):
if i != 0:
print(i, end=' ')
# 运行结果
'''
3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
'''
- 使用for循环输出100~200内个位数或者十位数能被3整除的数。
for i in range(100, 201):
s = i % 10
t = i // 10 % 10
if s % 3 == 0 and s != 0:
print(i, end=' ')
elif t % 3 == 0 and t != 0:
print(i, end=' ')
# 运行结果
'''
103 106 109 113 116 119 123 126 129 130 131 132 133 134 135 136 137 138 139 143 146 149 153 156 159 160 161 162 163 164 165 166 167 168 169 173 176 179 183 186 189 190 191 192 193 194 195 196 197 198 199
'''
- 使用for循环统计100~200中十位数是5的数的个数
count = 0
for i in range(100, 201):
if (i // 10 % 10 == 5):
count += 1
print('100~200中十位数是5的数有', count, '个')
# 运行结果
'''
100~200中十位数是5的数有 10 个
'''
- 使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for i in range(50,151):
if i % 3 == 0 and i % 5 != 0:
print(i, end=' ')
# 运行结果
'''
51 54 57 63 66 69 72 78 81 84 87 93 96 99 102 108 111 114 117 123 126 129 132 138 141 144 147
'''
- 使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
sum = 0
for i in range(50,151):
if i % 3 == 0 and i % 5 != 0:
sum += i
print('50~150中所有能被3整除但是不能被5整除的数的和为:', sum)
# 运行结果
'''
50~150中所有能被3整除但是不能被5整除的数的和为: 2682
'''
- 统计100以内个位数是2并且能够被3整除的数的个数。
count = 0
for i in range(101):
if i % 10 == 2 and i % 3 == 0:
count += 1
print('100以内个位数是2并且能够被3整除的数有', count, '个')
# 运行结果
'''
100以内个位数是2并且能够被3整除的数有 3 个
'''
进阶题
-
输入任意一个正整数,求他是几位数?
注意: 这儿不能使用字符串,只能用循环
num = int(input('请输入任意一个正整数:')) # 6485645785766249
n = 0
while num // 10**n != 0:
n += 1
print(num, '是', n, '位数')
# 运行结果
'''
6485645785766249 是 16 位数
'''
- 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为
1³ + 5³ + 3³
等于 153。
print('水仙花数有:', end='')
for i in range(100,1000):
s = i % 10
t = i // 10 % 10
h = i // 100
if s**3 + t**3 + h**3 == i:
print(i, end=' ')
# 运行结果
'''
水仙花数有:153 370 371 407
'''
- 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = int(input('请输入一个正整数: ')) # 59
result = True
for i in range(2, int(num**0.5)+1):
if num % i == 0:
result = False
# break
if result == True:
print(num, '是素数')
else:
print(num, '不是素数')
# 运行结果
'''
59 是素数
'''
- 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
for j in range(1, i+1):
print(j, '×', i, '=', i*j, sep='', end=' ')
print()
# 运行结果
'''
1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
'''
- 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
goods = totle = 100
for small in range(0,101,2):
for middle in range(totle//2):
for large in range(totle//3):
if large*3 + middle*2 + small*0.5 == 100 and large + middle + small == 100:
print(large, middle, small)
# 运行结果
'''
2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78
20 0 80
'''
for large in range(totle//3+1):
for middle in range(totle//2+1):
small = 100 - large - middle
if small % 2 != 0:
continue
if large*3 + middle*2 + small*0.5 == 100 and large + middle + small == 100:
print(large, middle, small)