Python第四天习题

一.习题解析

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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值