Python的简单分支与循环结构案例
1.九九乘法表for i in range(1,10):#构造取值范围1~9for j in range(1,i+1):#控制列print('%d*%d=%d'% (i,j,i * j),end='\t')#%d:占位符,'\t':制表符print()#当每一行的列输出完后换行。运行结果:1*1=12*1=22*2=...
文章目录
- 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() #当每一行的列输出完后换行。
运行结果:
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
恭喜你猜对了!
智商余额不足!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)