实验内容:
1.完成实例
2.完成实战部分
3.输出倒三角乘法表
实验步骤:
实例
实例01:
使用if语句判断用户输入的数字是否符合条件“除以三余二,除以五余三,除以七余二”
1 print("今有物不知其数,三三之数剩二,五五之数剩三,七七之数剩二,问几何?\n")
2 number=int(input("请输入一个数:")) #输入数字
3 if number%3 == 2 and number%5 ==3 and number%7 == 2: #判断数字是否符合条件
4 print(number,"符合条件:三三之数剩二,五五之数剩三,七七之数剩二")
运行结果:
实例02:
在实例01的基础上,改用if...else语句对不符合条件的数字也能够判断
1 print("今有物不知其数,三三之数剩二,五五之数剩三,七七之数剩二,问几何?\n")
2 number=int(input("请输入一个数:"))
3 if number%3 == 2 and number%5 ==3 and number%7 == 2:
4 print(number,"符合条件:三三之数剩二,五五之数剩三,七七之数剩二")
5 else:
6 print(number,"不符合条件")
运行结果:
实例03:
使用if...elif...else语句输出玫瑰花语
1 print("在古希腊神话中,玫瑰集爱情与美丽于一身,所以人们常用玫瑰来表达爱情。")
2 print("但是不同朵数的玫瑰花代表的含义是不同的。\n")
3 number = int(input("请输入您想送几朵玫瑰花,小默会告诉您含义:"))
4 if number == 1:
5 print("1朵:你是我的唯一!")
6 elif number == 3:
7 print("3朵:I Love You!")
8 elif number == 10:
9 print("10朵:十全十美!")
10 elif number == 99:
11 print("99朵:天长地久!")
12 elif number == 108:
13 print("108朵:求婚!")
14 else:
15 print("小默也不知道了!可以考虑送1朵,3朵,10朵,99朵或108朵!")
运行结果:
实例04:
使用嵌套的if语句判断是否酒后驾车
1 print("\n为了您和他人的安全,严禁酒后开车!\n")
2 proof = int(input("请输入每100毫升血液的酒精的含量:"))
3 if proof <20:
4 print("\n尚未构成饮酒行为,可以开车,但要注意安全!")
5 else:
6 if proof<80:
7 print("\n已达到酒后驾驶标准,请不要开车!")
8 else:
9 print("\n已达到醉酒驾驶标准,千万不要开车!")
运行结果:
实例05:
使用while循环从1开始依次尝试符合条件的数,当遇到符合条件的数时输出该数字并结束循环
1 print("今有物不知其数,三三之数剩二,五五之数剩三,七七之数剩二,问几何?\n")
2 none=True
3 number=0
4 while none:
5 number+=1
6 if number%3 ==2 and number%5 ==3 and number%7 ==2:
7 print("答曰,这个数是 ",number)
8 none =False
运行结果:
实例06:
将实例05中的while循环改用for循环
1 print("今有物不知其数,三三之数剩二,五五之数剩三,七七之数剩二,问几何?\n")
2 for number in range(100):
3 if number%3==2 and number%5==3 and number%7==2:
4 print("答曰:这个数是",number)
运行结果:
实例07:
使用for循环嵌套打印九九乘法表
1 for i in range (1,10): #输出9行
2 for j in range(1,i+1): #输出于行数相等的列
3 print(str(j)+'x'+str(i)+'='+str(i*j)+'\t',end='') #设置输出格式
4 print('\n')
运行结果:
实例08:
在实例06的基础上,使用break语句中断循环
1 print("今有物不知其数,三三之数剩二,五五之数剩三,七七之数剩二,问几何?\n")
2 for number in range(100):
3 print(number,' ',end='')
4 if number%3==2 and number%5==3 and number%7==2:
5 print("答曰:该数为",number)
6 break
实例09:
在for循环中使用continue语句实现逢7拍腿
1 total=99
2 for number in range(100):
3 if number%7==0:
4 continue
5 else:
6 string=str(number)
7 if string.endswith('7'):
8 continue
9 total-=1
10 print("从1~99共拍手",total,"次")
运行结果:
实战部分
实战01:
模拟支付宝蚂蚁森林能量产生过程
依题,设置可变参数step用于判断用户操作,使用while循环,嵌套if...elif...语句和continue语句实现可重复输入效果,将while循环终止的判断条件设置为字符' 0 '避免出现当step 为整形‘ 0 ’时程序无响应的情况
程序错误的情况:
while step!=0:
输入0程序无响应
完整正确代码:
1 print('''
2 查询能量请输入能量来源!退出城市请输入0
3 能量来源如下:
4 生活缴费、行走捐、共享单车、线下支付、网络购票\n''')
5 step=1
6 while step!= '0':
7 step=input()
8 if step == '生活缴费':
9 print("100g")
10 continue
11 elif step == '行走捐':
12 print("200g")
13 continue
14 elif step == '共享单车':
15 print("300g")
16 continue
17 elif step == '线下支付':
18 print("400g")
19 continue
20 elif step == '网络购票':
21 print("500g")
22 continue
23 print("已退出!")
运行结果:
实战02:
猜数字游戏
依题,为实现随机答案效果,导入random标准库,设置key为答案
import random
key = random.randint(1,10) #key等于1—9随机一个数
使用while循环和if...else语句,当输入的答案不等于key时,对答案进行评价并重新输入
完整代码:
1 import random
2 answer=int(input("请输入1~10之间的任意一个数\n"))
3 key=random.randint(1,10)
4 while answer !=key:
5 if answer > key:
6 print("太大,重新输入\n")
7 else:
8 print("太小,重新输入\n")
9 answer=int(input())
10 print("恭喜您,你赢了!")
运行结果:
实战03:
模拟微信小程序跳一跳的加分
设置参数total作为累积总分,使用while循环加if...else语句实现判断加分
代码如下:
1 print('''欢迎回来,请开始游戏...
2 请输入:中心、音乐块、微信支付块、踩空\n''')
3 none=True
4 total=0
5 while none ==True:
6 step=input("请输入:")
7 if step == '中心':
8 total+=2
9 print("您的分数为:"+str(total))
10 continue
11 if step == '音乐块':
12 total+=30
13 print("您的分数为:"+str(total))
14 continue
15 if step == '微信支付块':
16 total+=10
17 print("您的分数为:"+str(total))
18 continue
19 else:
20 none=False
21 print("游戏结束,总分为:"+str(total))
运行结果:
注:原题无踩空选项,这里加入是为了让程序看起来更完整
实战04省略,代码与实战01相同,更改了输出内容
倒三角乘法表:
为实现倒序输出,这里采用嵌套while循环的方式,设置计数器 i = 9,设置第一层while循环的循环条件为 i > 0,每循环一次结束时i = i - 1
代码如下:
1 i = 9 #从9开始进行倒序输出
2 while i > 0: #从i=9开始循环到i=0结束
3 print('\t'*(9-i),end='') #输出9-i个‘\t’用于对齐
4 j = i #先输出i*i再输出i*(i-1)...
5 while j > 0:
6 print(str(j)+'x'+str(i)+'='+str(i*j),end='\t') #输出乘法表
7 j-=1
8 i-=1 #输出完该数字这一行后i-1进行下一个
9 print('\n') #空两行
运行效果: