一.习题解析
1、求两个数最大公约数
代码如下:
a = int(input('请输入第一个数:'))
b = int(input('请输入第二个数:'))
while b:
a , b = b ,a%b
print(f'最大公约数是{a}')
运行结果如下:
请输入第一个数:75
请输入第二个数:15
最大公约数是15
2、整数反转:如12345,输出54321
PS:此题使用字符串反转最为简单。
代码如下:
print('请输入一个整数:')
a = input()
b = a[::-1]
print(b)
运行结果如下:
请输入一个整数:
87457
75478
3、1~10之间的整数相加,得到累加值大于20的当前数
代码如下:
sum = 0
for i in range(1,11):
sum = sum + i
i = i + 1
if sum > 20:
print(sum)
break
运行结果如下:
21
4、输入从周一至周五每天的学习时间(以小时为单位),并计算每日平均学习时间。
代码如下:
sum = 0
for i in range(1,6):
hours = int(input(f'请输入星期{i},您的学习时间:'))
sum = sum + hours
aver = sum / 5
print(f'您这个星期每日的平均学习时间为:{aver}小时')
运行结果如下:
请输入星期1,您的学习时间:4
请输入星期2,您的学习时间:5
请输入星期3,您的学习时间:10
请输入星期4,您的学习时间:9
请输入星期5,您的学习时间:6
您这个星期每日的平均学习时间为:6.8小时
5、输出10000以下的完全数。如果一个正整数等于除它本身之外其它所有除数之和,就称之为完全数。 如6就是第一个完全数,因为6=1+2+3
代码如下:
for i in range(1, 10000):
sum = 0
for j in range(1, i):
if i % j == 0:
sum += j;
if sum == i:
print(i)
运行结果如下:
6
28
496
8128
6、用户玩游戏,每次玩5局(效果图如下) (1)不足5局则不能晋级 (2)在5局游戏中,如果80%达到80分以上,为一级,如果 60%达到80分以上为二级,否则不能晋级
代码如下:
count = 0
for i in range(1,6):
score = int(input('请输入你本局成绩:'))
b = input(f'你正在玩第{i}局游戏,成绩为:{score}\n是否继续(yes/no)')
if b == 'yes':
if score > 80:
count += 1
else:
print('您已中途退出游戏')
break
else:
print('游戏结束')
if count >=4:
print('恭喜通过一级')
elif count ==3:
print('恭喜通过二级')
else:
print('抱歉。未晋级')
运行结果为:
第一种情况:
请输入你本局成绩:90
你正在玩第1局游戏,成绩为:90
是否继续(yes/no)yes
请输入你本局成绩:70
你正在玩第2局游戏,成绩为:70
是否继续(yes/no)yes
请输入你本局成绩:91
你正在玩第3局游戏,成绩为:91
是否继续(yes/no)yes
请输入你本局成绩:100
你正在玩第4局游戏,成绩为:100
是否继续(yes/no)yes
请输入你本局成绩:81
你正在玩第5局游戏,成绩为:81
是否继续(yes/no)yes
游戏结束
恭喜通过一级
第二种情况:
请输入你本局成绩:95
你正在玩第1局游戏,成绩为:95
是否继续(yes/no)yes
请输入你本局成绩:45
你正在玩第2局游戏,成绩为:45
是否继续(yes/no)no
您已中途退出游戏
7、菜单自动循环,只要不输入3,就循环 欢迎进入xxx系统 1登录 2注册 3退出 请选择:1 登录
代码如下:
answer = input(9 * '*'+'菜单功能'+9 * '*'+'\n\t\t1.登录\n\t\t2.注册\n\t\t3.退出\n请选择功能:')
while True:
while answer == '1':
user = input('登录\n账号:')
pwd = input('密码:')
if user == '1503938233' and pwd == '123456':
print('登录成功')
answer = input(9 * '*' + '菜单功能' + 9 * '*' + '\n\t\t1.登录\n\t\t2.注册\n\t\t3.退出\n请选择功能:')
else:
print('账号密码有错,请重新输入!')
while answer == '2':
print('2.注册\n注册成功')
answer = input(9 * '*' + '菜单功能' + 9 * '*' + '\n\t\t1.登录\n\t\t2.注册\n\t\t3.退出\n请选择功能:')
while answer == '3':
print('你已退出系统!')
break
break
运行结果为:
*********菜单功能*********
1.登录
2.注册
3.退出
请选择功能:1
登录
账号:111
密码:111
账号密码有错,请重新输入!
登录
账号:1503938233
密码:123456
登录成功
*********菜单功能*********
1.登录
2.注册
3.退出
请选择功能:2
2.注册
注册成功
*********菜单功能*********
1.登录
2.注册
3.退出
请选择功能:3
你已退出系统!
8、打印图形 1 21 321 4321 54321 654321
代码如下:
for i in range(1,7):
print(' ' * 2 * (6 - i), end='')
for j in range(i, 0, -1):
print(j, end=" ")
print()
运行结果为:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
6 5 4 3 2 1