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

文章目录

1.写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。

2.写出判断一个数是否能够被3或者7整除,但是不能同时被3或者7整除的条件语句, 并且打印对应的结果。

3.闰年问题

4.时间问题

5.身材是否正常问题

6.成绩及格问题

7.成年问题

8.输入两个整数,如果两个数相减的结果为奇数则输出该结果,否则输出提示信息结果不是奇数。

9.使用for循环输出 0到100内所有的奇数。

10.使用while循环输出0到100内所有的偶数。

11.使用循环计算出1到100求和的结果。

12.统计100以内个位数是2并且能够被3整除的数的个数。

13.输入任意一个正整数,求它是几位数。

14.水仙花数问题

15.输入为0时结束问题

16.求100以内的素数问题

17.斐波那契数列问题

18.九九乘法表

19.鸡兔同笼问题

20."百马百担"问题

21.折纸问题

22.猜字游戏

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() #当每一行的列输出完后换行。

运行结果:

11=1

21=2 22=4

31=3 32=6 33=9

41=4 42=8 43=12 44=16

51=5 52=10 53=15 54=20 55=25

61=6 62=12 63=18 64=24 65=30 66=36

71=7 72=14 73=21 74=28 75=35 76=42 77=49

81=8 82=16 83=24 84=32 85=40 86=48 87=56 88=64

91=9 92=18 93=27 94=36 95=45 96=54 97=63 98=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

恭喜你猜对了!

智商余额不足!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值