Python Day3_练习题来咯!

Day3-分支和循环的综合应用

一、基础题

  1. 根据输入的成绩的范围打印及格或者不及格
score1 = int(input('请输入您的成绩:'))
if score1 >= 60:
    print('及格啦!')
else:
    print('不及格,下次加油吧!')
    
# 运行结果
'''
请输入您的成绩:99
及格啦!
'''
  1. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!
age = float(input('请输入您的年龄:'))
if age < 0 or age > 150:
    print('这不是人!')
elif age >= 18:
    print('你已成年啦!')
elif age < 18:
    print('还没有成年,还很年轻!')
    
# 运行结果
'''
请输入您的年龄:18
你已成年啦!
'''
  1. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
a = int(input('请输入一个整数a:'))
b = int(input('请输入一个整数b:'))
c = a - b
if c % 2 == 1:
    print(f'a-b的结果为奇数{c}')
else:
    print(f'a-b的结果{c}不为奇数')
    
# 运行结果
'''
请输入一个整数a:9
请输入一个整数b:3
a-b的结果6不为奇数
'''
  1. 使用while循环输出 0~100内所有3的倍数。
i = 1
while i <= 100:
    if i % 3 == 0:
        print(f'{i}是3的倍数')
    i += 1

# 运行结果
'''
3是3的倍数
6是3的倍数
9是3的倍数
12是3的倍数
15是3的倍数
18是3的倍数
21是3的倍数
24是3的倍数
27是3的倍数
30是3的倍数
33是3的倍数
36是3的倍数
39是3的倍数
42是3的倍数
45是3的倍数
48是3的倍数
51是3的倍数
54是3的倍数
57是3的倍数
60是3的倍数
63是3的倍数
66是3的倍数
69是3的倍数
72是3的倍数
75是3的倍数
78是3的倍数
81是3的倍数
84是3的倍数
87是3的倍数
90是3的倍数
93是3的倍数
96是3的倍数
99是3的倍数
'''
  1. 使用while循环输出0~100内所有的偶数。
i = 0
while i < 100:
    if i % 2 == 0:
        print(f'{i}是偶数')
    i += 1

# 运行结果
'''
0是偶数
2是偶数
4是偶数
6是偶数
8是偶数
10是偶数
12是偶数
14是偶数
16是偶数
18是偶数
20是偶数
22是偶数
24是偶数
26是偶数
28是偶数
30是偶数
32是偶数
34是偶数
36是偶数
38是偶数
40是偶数
42是偶数
44是偶数
46是偶数
48是偶数
50是偶数
52是偶数
54是偶数
56是偶数
58是偶数
60是偶数
62是偶数
64是偶数
66是偶数
68是偶数
70是偶数
72是偶数
74是偶数
76是偶数
78是偶数
80是偶数
82是偶数
84是偶数
86是偶数
88是偶数
90是偶数
92是偶数
94是偶数
96是偶数
98是偶数
'''

二、进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。
tatal = 1
for i in range(1, 11):
    tatal *= i
print(tatal)

# 运行结果
'''
3628800
'''
  1. 统计100以内个位数是2并且能够被3整除的数的个数。
total = 0
for i in range(1, 1001):
    if i % 10 == 2 and i % 3 == 0:
        total += 1
print(f'有{total}个符合条件的数')

# 运行结果
'''
有33个符合条件的数
'''
  1. 输入任意一个正整数,求他是几位数?
num = int(input('请输入一个正整数:'))
total = 1
while num // 10 != 0:
    num //= 10
    total += 1
print(f'是一个{total}数')

# 运行结果
'''
请输入一个正整数:145632
是一个6数
'''
  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。
for i in range(100, 1000):
    if (i % 10) ** 3 + (i % 100 //10) ** 3 + (i //100) ** 3 == i:
        print(f'{i}是一个水仙花数')
        
# 运行结果     
'''
153是一个水仙花数
370是一个水仙花数
371是一个水仙花数
407是一个水仙花数
'''

三、挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = int(input('请输入一个素数:'))
for i in range(2, num):
    if num == 2 or num % i != 0:
        print(f'{num}是一个素数')
        break
    else:
        print(f'{num}不是一个素数')
        break

# 运行结果    
'''
请输入一个素数:256
256不是一个素数

'''
  1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)
a = 1
b = 1
n = int(input('请任意输入一个大于2正整数:'))
for i in range(n - 2):
    a, b = b, a + b
print(b)

# 运行结果
'''
请任意输入一个大于2正整数:58
591286729879
'''
  1. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{j}*{i}={i * j}', end='\t') 
    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	
'''
  1. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
for i in range(0, 35):
    for j in range(0, 51):
        if 6 * i + 4 * j + (100 - i - j) == 200:
            print(f'大马{i}, 中马{j}, 小马{100-i-j}')
# 运行结果         
'''
大马2, 中马30, 小马68
大马5, 中马25, 小马70
大马8, 中马20, 小马72
大马11, 中马15, 小马74
大马14, 中马10, 小马76
大马17, 中马5, 小马78
大马20, 中马0, 小马80
'''
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值