Python的简单分支与循环结构案例

1.写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。
x =int(input('请输入一个数字:'))
if x % 3 ==0 and x % 7 == 0:
    print('True')
else:
    print('False')

或者:

x =int(input('请输入一个数字:'))
print(x % 3 ==0 or x % 7 == 0)

运行结果:

请输入一个数字:21
True

2.写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句, 并且打印对应的结果。
x =int(input('请输入一个数字:'))
if x % 3 ==0 or x % 7 == 0:
    if x % 3 ==0 and x % 7 == 0:
         print('False')
    else:
        print('True')
else:
    print('False')

或者:

x =int(input('请输入一个数字:'))
print((x % 3 ==0 or x % 7 == 0) and (x % 3 !=0 or x % 7 != 0))

运行结果:

请输入一个数字:21
False

3.闰年问题

输入年份,写代码判断输入的年是否是闰年,并且打印对应的结果 。
(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)

year = int(input('请输入一个年份:'))
print((year % 4 ==0 and year % 100 == 0) or year % 400 == 0)

运行结果:

请输入一个年份:1900
True

4.时间问题

假设今天的上课时间为123456秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。

x = int(input('请输入时间(秒):'))
print(str(x % (24 * 60 * 60) // (60 * 60))+"时"+str(x % (24 * 60 * 60) % (60 * 60) // 60)+'分'+str(x % (24 * 60 * 60) % (60 * 60) % 60)+'秒' )

运行结果:

请输入时间(秒):123456
10时17分36秒

5.身材是否正常问题

定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!
(公式: 体重(kg)/身高(m)的平方值 在18.5 ~ 24.9之间属于正常。)

height =float(input('请输入一个人的身高(m):'))
weight =float(input('请输入一个人的体重(kg):'))
x = weight / (height ** 2)
if 18.5 < x < 24.9:
    print('此人身材正常!')
else:
    print('此人身材不正常!')

运行结果:

请输入一个人的身高(m):1.80
请输入一个人的体重(kg):64
此人身材正常!

6.成绩及格问题

根据输入的百分制成绩打印“成绩及格” 或者“成绩不及格”,60分以下为不及格。

score =int(input('请输入成绩:'))
if 0< score < 60:
    print('成绩不及格!')
elif 60 <= score <= 100:
    print('成绩及格!')
else:
    print('别调皮,请输入正确的成绩!')

运行结果:

请输入成绩:66
成绩及格!

7.成年问题

根据输入的年龄打印“你已是成年人”或者“你是未成年”,18岁以下为未成年,如果年龄不在正常范围(0到150岁)内则打印是“是妖?是仙?”。

age = int(input('请输入你的年龄:'))
if 0 < age < 18:
    print('你是未成年')
elif age < 0 or age > 150:
    print('是妖?是仙?')
else:
    print('你已是成年人')

或者:

age = int(input('请输入您的年龄:'))
if 150 >= age >= 0:
      print('你是未成年') if age < 18 else print('你已是成年人')
else:
    print('是妖?是仙?')

运行结果:

请输入你的年龄:160
是妖?是仙?

8.输入两个整数,如果两个数相减的结果为奇数则输出该结果,否则输出提示信息结果不是奇数。
x = int(input('请输入一个数字x:'))
y = int(input('请输入一个数字y:'))
z = x -y
if z % 2 != 0:
    print(z)
else:
    print('结果不是奇数')

运行结果:

请输入一个数字x: 4
请输入一个数字y: 1
3

9.使用for循环输出 0到100内所有的奇数。
for x in range(0,101):
    if x % 2 == 0:
        pass
    else:
        print(x)

运行结果:

1
3
5

97
99

10.使用while循环输出0到100内所有的偶数。
i = 0
while i < 100:
    if i % 2 == 0:
        print(i)
    i += 1

运行结果:

0
2
4

96
98

11.使用循环计算出1到100求和的结果。
i = 0
sum = 0
while i < 100:
    i += 1
    sum +=i
print(sum)

或者:

i = 0
for j in range(1, 101):
     i += j
print(i)

运行结果:

5050

12.统计100以内个位数是2并且能够被3整除的数的个数。
sum = 0
for x in range(0,100):
    if x % 3 ==0 and x % 10 ==2:
        sum += 1
print(sum)

运行结果:

3

13.输入任意一个正整数,求它是几位数。
sum = 0
x = int(input('请输入一个正整数:'))
while x != 0:
        sum +=1
        x = x // 10
print(f'这是{sum}位数')

或者:

num = int(input('请输入一个整数:'))  
count = 0  # 表示个数
while True:
    count += 1
    num //= 10
    if num == 0:
        break
print('您输入的数字是', count, '位数')

运算结果:

请输入一个正整数:1546
这是4位数

14.水仙花数问题

打印所有的水仙花数。
(水仙花数是三位数,每个数的三次方之和等于它的本身,例如:153=13+53+3**3)

for a in range(1,10):
    for b in range(0,10):
        for c in range(0,10):
            s1= a*100+b*10+c
            s2= pow(a,3)+pow(b,3)+pow(c,3)
            if s1==s2:
                print('水仙花:', s1)

或者:

for i in range(100, 1000):  
    ge = i % 10
    shi = i // 10 % 10
    bai = i // 100
    if ge ** 3 + shi ** 3 + bai ** 3 == i:
        print(i)

运行结果:

水仙花: 153
水仙花: 370
水仙花: 371
水仙花: 407

15.输入为0时结束问题

写一个程序可以不断的输入数字,如果输入的数字是0,打印"程序结束"后结束该程序。

while True:
    answer = input('请输入数字:')
    if answer == '0':
        break
print('程序结束!')

运行结果:

请输入数字:4
请输入数字:2
请输入数字:0
程序结束!

16.求100以内的素数问题

统计1~100中素数的个数,并且输出所有的素数。
(素数又叫质数,就是只能被1和它本身整除的数,1既不是质素也不是合数)
使用for…else求素数:

for i in range(2, 101):  
    for j in range(2, int(i ** 0.5)+1):  
        if i % j == 0:  # i 除以某一个数字,除尽了,i是合数
            break  # break放在内循环里,用来结束内循环
    else:
        # for...else语句:当循环里的break没有被执行的时候,就会执行else
        print(i, '是质数')

使用假设成立法求素数:

for i in range(2, 101):
    flag = True  # 每次都假设 i 是一个质数
    for j in range(2, int(i ** 0.5) + 1):
        if i % j == 0:
            # 除尽了,说明 i 是个合数
            flag = False
            break
    if flag:  # if flag == True:
        print(i, '是质数')

使用计数法求素数:

for i in range(2, 101): 
    count = 0  # 假设这个数能被0个数字整除
    for j in range(2, i): 
        if i % j == 0:
            # 除尽了,是合数
            count += 1
    if count == 0:
        print(i, '是一个质数')
    else:
        print(i, '是一个合数,它能被', count, '个数字整除')

运行结果:

2 是质数
3 是质数
5 是质数

83 是质数
89 是质数
97 是质数

17.斐波那契数列问题

求斐波那契数列中第n个数的值,n是正整数。
(斐波那契数列是这样的一个数列:1、1、2、3、5、8、13、21、34、… ,第一个数和第二个数是1,从第三个数开始每个元素是前两个元素相加的和。)

n = int(input('请输入您要第几个斐波那契数:'))
num1 = 1
num2 = 1
for i in range(0, n - 2):
    a = num1
    num1 = num2
    num2 = a + num2
print(num2)

运行结果:

请输入您要第几个斐波那契数:10
55

18.九九乘法表
for i in range(1,10):        #构造取值范围1~9
    for j in range(1,i+1):   #控制列
        print('%d*%d=%d'% (i,j,i * j),end='\t')  # %d:占位符,%:格式化字符串 '\t':制表符
    print()  #当每一行的列输出完后换行。

运行结果:

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

19.鸡兔同笼问题

"鸡兔同笼问题"是我国《孙子算经》中注明的数学问题,其内容是:“今有雉(鸡)兔同笼,上有三十五头,下有九十四足,问雉兔各几何”。

for x in range(36):
    for y in range(36):
        if x + y == 35 and 2 * x + 4 * y == 94:
            print('鸡:%d只,兔:%d只'% (x, y))

我们也可以换一种方法:

for x in range(36):
    y = 35 - x
    if 2 * x + 4 * y == 94:
            print(f'鸡:{x}只,兔:{y}只')  #带格式的字符串

运行结果:

鸡:23只,兔:12只

20."百马百担"问题

一匹大马能驮3担货,一匹中马能驮2担货,两匹小马能驮1担货,如果用一百匹马驮一百担货,问有大、中、小马各几匹?

for x in range(0, 100 // 3 + 1):
    for y in range(0, 100 // 2 + 1):
        if 3 * x + 2 * y + (100 - x - y) * 0.5 == 100:
            print(x, y, (100 - x - y))

运行结果:

2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78
20 0 80

21.折纸问题

一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

height = 0.08 / 1000
count = 0
while True:
    height *= 2
    count += 1
    if height >= 8848.13:
        break
print(count)

运行结果:

27

22.猜字游戏

计算机出一个1-50的随机数,人来猜测这个数字,计算机给出提示:
如果猜大了,计算机提示小一点;
如果猜小了,计算机提示大一点;
如果猜对了,计算机就提示“恭喜你猜对了”

import random  #导入random函数
answer = random.randint(1,50)  #生成1~50的随机数
counter = 0   #计数的变量
while True:  #恒成立的循环
    counter += 1
    thy_answer = int(input('请输入你猜的数字:'))
    if thy_answer > answer:
        print('小一点')
    elif thy_answer < answer:
        print('大一点')
    else:
        print('恭喜你猜对了!')
        break  #当猜对了的时候,break退出循环体
if counter > 6:
    print('智商余额不足!')

运行结果:

请输入你猜的数字:25
大一点
请输入你猜的数字:26
大一点
请输入你猜的数字:27
大一点
请输入你猜的数字:28
大一点
请输入你猜的数字:29
大一点
请输入你猜的数字:30
大一点
请输入你猜的数字:40
小一点
请输入你猜的数字:35
大一点
请输入你猜的数字:37
大一点
请输入你猜的数字:38
恭喜你猜对了!
智商余额不足!

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值