目录
if
题目1 [加强训练]
题干
用户输入年龄,如果年龄超过60岁,输出:可以退休了。
训练目标
if语句基础语法的使用;
比较运算符的使用。
训练提示
用户输入年龄,Python语言中,如何接收用户输入的数据?接收到的数据的数据类型是什么?
超过60岁,用哪种运算符?
年龄超过60岁是题目中唯一的一种情况,使用哪种if语句完成逻辑判断?
参考方案
input()
接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;超过60岁,使用比较运算符中的
>
或>=
。
操作步骤
input()
接收用户输入的年龄,并转换数据类型为int;如果年龄大于60条件成立,则输出:可以退休了。
参考答案
# input()接收用户输入的年龄数据,并转换数据类型为int
age = int(input('请输入年龄:'))
# 条件判断:如果年龄大于60,则输出可以退休了
if age > 60:
print('可以退休了')
题目2 [加强训练]
题干
用户输入年龄,如果年龄超过60岁,输出:"可以退休了", 否则,输出:"小伙子,加油干!"
训练目标
if…else语法
训练提示
题目描述了2种情况(年龄超过60岁和不超过60岁),涉及到2中情况需要判断的时候,使用哪种if语句格式?
参考方案
在Python中,能够判断两种情况的时候需要使用
if…else…
语句。
操作步骤
input()
接收用户输入的年龄,并转换数据类型为int;如果用户输入的年龄大于60,则输出"可以退休了"; 条件不成立则输出:小伙子,加油干!
参考答案
age = int(input('请输入年龄:'))
if age >= 60:
print('可以退休了')
else:
print('小伙子,加油干!')
题目3 [加强训练]
题干
用户输入年龄,按照如下标准书写程序,判断用户处于哪个年龄阶段,并提示:您的年龄是xx: 青少年/青年/中年/老年。
年龄段划分标准:0-17岁为青少年;18-35岁为青年;36-59为中年,60-99岁为老年。
训练目标
elif多重判断写法;
逻辑运算符的使用方法。
训练提示
本题中年龄段分为青少年、青年、中年、老年四种情况需要判断,在Python中,判断多种情况需要使用哪种if语句格式?
每个年龄段有最低和最高年龄限制,使用哪种运算符能完成对最低和最高年龄同时判断?
参考方案
在Python中,判断多种情况需要使用elif多重判断写法;
对每个年龄段的最低和最高年龄同时限制,需要使用逻辑运算符中的
and
。
操作步骤
input()
接收用户输入的年龄,并转换数据类型为int;
if…elif
对不同的年龄段进行判断。
参考答案
age = int(input("请输入您的年龄:"))
if (age >= 0) and (age < 17):
print(f'您的年龄是{age}: 青少年')
elif (age >= 18) and (age < 35):
print(f'您的年龄是{age}: 青年')
elif (age >= 35) and (age < 59):
print(f'您的年龄是{age}: 中年')
elif (age >= 59) and (age < 99):
print(f'您的年龄是{age}: 老年')
题目4 [加强训练]
题干
坐公交:假设坐公交需要买票上车,书写程序要求如下:
如果有票则可以上车,否则不能上车
上车后,如果有座位可以坐下,否则不能坐下。
已有程序如下,请补全程序:
# ticket取值为1表示有票,取值为0表示无票
ticket = 1
# seat取值为1表示有座位,取值为0表示无座位
seat = 1
训练目标
if嵌套书写方法
训练提示
本题判断流程如下:判断能上车后,才能判断是否能坐下,如何书写程序完成这种判断流程?
参考方案
当
ticket == 1
条件成立的时候才判断是否能坐下,所以这里是if嵌套的写法。
操作步骤
书写ticket是否和1相等,如果条件成立表示可以上车;否则不能上车;
当
ticket == 1
条件成立的时候,书写判断能否坐下的if语句。
参考答案
ticket = 1
seat = 1
# 待补全的程序如下
if ticket == 1:
print('有票,请上车')
if seat == 1:
print('有空座,坐下睡觉')
else:
print('没座位,站着睡')
else:
print('没票,补票后才能上车')
题目5 [加强训练]
题干
用户登录输入验证码,已知验证码是
axyz
, 验证码正确可以登录,否则输出:验证码错误。
训练目标
比较运算符
==
的使用方法
训练提示
如何判断用户输入的验证码和
axyz
相同?
参考方案
判断相等使用比较运算符
==
。
操作步骤
用户输入验证;
if…else...判断用户输入的验证码是否和
axyz
相等。
参考答案
sys_code = 'axyz'
user_code = input('请输入验证码:')
if user_code == sys_code:
print('验证码正确,可以登录')
else:
print('验证码错误,不能登录')
题目6 [综合训练]
题干
制作用户登录系统:已知A用户注册的用户名为
aaa
,密码是123456
。具体要求如下:登录时需要验证用户名、密码、验证码(固定验证码为
qwer
)。提示:系统先验证验证码是否正确,正确后再验证用户名和密码。
训练目标
if…else语句格式
比较运算符
==
和 逻辑运算符if嵌套语句格式
训练提示
如何书写程序可以先验证验证码的正确性,验证码正确后再验证用户名和密码?
如何判断用户输入的验证码的正确性?
如何判断用户名和密码的正确性?
参考方案
先判断验证码的正确性,再验证用户名和密码,需要使用if嵌套写法;
判断用户输入的验证码/用户名/密码的正确性要使用到比较运算符
==
。登录功能要求用户名和密码必须同时正确,所以这里要使用到逻辑运算符
and
。
操作步骤
准备用户名、密码、验证码等数据;
用户输入用户名、密码、验证码;
判断验证码是否为
qwer
;如果验证码为
qwer
,再验证用户名和密码的正确性。
参考答案
# 用户名、密码、验证码数据
sys_name = 'aaa'
sys_pwd = '123456'
sys_code = 'qwer'
# 用户输入用户名、密码、验证码
user_name = input('请输入用户名:')
user_pwd = input('请输入密码:')
user_code = input('请输入验证码:')
if user_code == sys_code:
print('验证码正确')
if user_name == sys_name and user_pwd == sys_pwd:
print('恭喜您,登录成功')
else:
print('用户名或密码错误,请重新输入')
else:
print('验证码错误,请重新输入')
代码按照以下方式书写,也可以:
# 用户名、密码、验证码数据
sys_name = 'aaa'
sys_pwd = '123456'
sys_code = 'qwer'
# 用户输入用户名、密码、验证码
user_code = input('请输入验证码:')
# 先验证验证码,如果正确,再输入用户名、密码
if user_code == sys_code:
print('验证码正确')
user_name = input('请输入用户名:')
user_pwd = input('请输入密码:')
if user_name == sys_name and user_pwd == sys_pwd:
print('恭喜您,登录成功')
else:
print('用户名或密码错误,请重新输入')
else:
print('验证码错误,请重新输入')
循环
题目1 [加强训练]
题干
设计"过7 游戏” 程序,即在 1- 99 之间的数字中,如果数字 包含 7 或者是 7 的倍数,则输出"过...", 否则输出 具体的数字.
训练目标
while 循环的使用
运算符的使用
训练提示
如何取得 1-99 之间的数字
如何判断一个数是7的倍数
如何判断一个数是否包含 数字 7
参考方案
使用循环获取 1-99 之间的数字
判断一个数是否是 7 的倍数,即能否被 7 整除,在 python 可以使用
%
运算符判断一个数字是否包含 7,可能个位是 7,也可能是十位数字是 7
判断个位 ,使用
num % 10 == 7
判断十位,使用
num // 10 == 7
操作步骤
使用循环得到 1 - 100 之间的数字
判断是否是 7 的倍数和包含 7
参考答案
i = 1
# 使用循环得到 1-100 之间的数字
while i < 100:
# 判断是否是 7 的倍数和包含 7 , 两者之间是或的关系,满足一个即输出过
if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):
print('过...')
else:
# 不是 7 的倍数,也没有包含 7,直接输出数字
print(i)
# 一个数字判断结束之后,改变 i 的值
i += 1
for i in range(1, 100):
if (i % 7 == 0) or (i % 10 == 7) or (i // 10 == 7):
print('过.')
else:
print(i)
题目2 [加强训练]
题干
编写代码模拟用户登陆。要求:用户名为 python,密码 123456,如果输入正确,打印“欢迎光临”,程序结束,如果输入错误,提示用户输入错误并重新输入
训练目标
- while中的break的使用
训练提示
定义变量,用户名和密码采用什么格式存储
循环没有次数限制,那么我们使用while循环的时候条件是什么?
判断用户名和密码是否相同,我们的条件采用“or"还是“and”?
break的作用是什么
参考方案
首先我们要自己定义用户名和密码保存
如果用户错误那么就需要重新循环,我们就需要采用什么方式进行循环?
提示用户输入信息
判断输入信息,根据不同的结果进行不同的执行方式
操作步骤
定义名户名和密码分别为name = "python",pwd = "123456"
使用循环,循环条件是True
提示用户输入用户名和密码
判断用户名和密码是否正确
如果正确跳出循环,不正确提示输入错误
参考答案
name = "python"
pwd = "123456"
while True:
user_name = input("请输入用户名:")
user_pwd = input("请输入密码:")
if user_name == name and user_pwd == pwd:
print("欢迎光临")
break
else:
print("用户输入错误!")
题目3 [加强训练]
题干
猜数字游戏:电脑产生(1-100)的随机数,用户进行猜测,直到猜中为止。
如果猜中,输出:恭喜你猜中了,数字是 xx。
如果猜的数字大,输出:猜测的数字太大了,继续加油
如果猜测的数字小,输出:猜测的数字有点小,再来一次
训练目标
while 语法的使用
break 的使用
continue 的使用
训练提示
电脑产生随机数,Python 中使用什么函数呢?
如何接收用户输入的数据呢?接收到的数据类型是什么呢?
如何判断用户输入的数据和电脑产生的数据大小关系呢?
如何重复的进行判断呢?那些部分需要重复呢?
结果判断后,该怎么操作呢?
参考方案
使用
random.randint()
产生随机数input()`接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;
判断数据大小,使用
==
、>
、<
。重复即循环,循环可以使用
while
, 用户的输入和判断需要重复,电脑产生的随机不需要如果相等,直接输出,并 break, 其余的情况输出相应的内容,并 continue。
操作步骤
通过
import random
导入随机数模块,使用random.randint()
产生随机数。input()`接收用户输入的数字,并转换数据类型为int;
判断用户的输入和电脑产生的数字之间的关系,即:相等、大于和小于。
用户的输入和判断,输出重复执行的代码,需要放在循环中
参考答案
import random
# 电脑产生随机数
num = random.randint(1, 100)
while True:
# 提示让用户输入
my_num = int(input("请输入1-100之间的整数:"))
if my_num == num:
print("恭喜你猜中了,数字是%d" % num)
break
elif my_num > num:
print("猜测的数字太大了,继续加油")
continue # 本代码中可以不写
else:
print("猜测的数字有点小,再来一次")
题目 4 [加强训练]
题干
猜数字游戏:电脑产生(1-100)的随机数,用户进行猜测。
如果猜中,输出:恭喜你猜中了,数字是 xx,猜测了xx次。
如果猜的数字大,输出:猜测的数字太大了,继续加油
如果猜测的数字小,输出:猜测的数字有点小,再来一次
如果猜测5 次,还没有猜测出来,输出:太弱了,测试5次还没猜出来,不和你玩了
训练目标
while 语法的使用
break 的使用
continue 的使用
while else 的使用
训练提示
电脑产生随机数,Python 中使用什么函数呢?
如何接收用户输入的数据呢?接收到的数据类型是什么呢?
如何判断用户输入的数据和电脑产生的数据大小关系呢?
如何重复的进行判断呢?那些部分需要重复呢?
结果判断后,该怎么操作呢?
如何记录用户输入了几次?
循环没有被 break 结束,想要输出内容怎么操作?
参考方案
使用
random.randint()
产生随机数input()`接收用户输入的年龄,需要注意这里接收到的数据的数据类型是str;
判断数据大小,使用
==
、>
、<
。重复即循环,循环可以使用
while
, 用户的输入和判断需要重复,电脑产生的随机不需要如果相等,直接输出,并 break, 其余的情况输出相应的内容,并 continue。
定义变量记录猜测的次数
达到猜测的次数后,没有猜到使用
while else
结构输出内容
操作步骤
通过
import random
导入随机数模块,使用random.randint()
产生随机数。input()`接收用户输入的数字,并转换数据类型为int;
判断用户的输入和电脑产生的数字之间的关系,即:相等、大于和小于。
用户的输入和判断,输出重复执行的代码,需要放在循环中
书写 else 的内容
参考答案
import random
# 电脑产生随机数
num = random.randint(1, 100)
# 记录用户输入的次数
count = 0
while count < 5:
# 提示让用户输入
my_num = int(input("请输入1-100之间的整数:"))
count += 1
if my_num == num:
print("恭喜你猜中了,数字是%d, 猜测了%d次" % (num, count))
break
elif my_num > num:
print("猜测的数字太大了,继续加油")
continue # 本代码中可以不写
else:
print("猜测的数字有点小,再来一次")
else:
print("太弱了,猜测5次还没猜出来,不和你玩了")
题目 5 [加强训练]
题干
请用户输入一个数,使用while计算是否为素数(素数只能被 1 和本身整除)。
训练目标
- while...else的使用
训练提示
什么是素数?
如何判断?
什么情况下执行“else”语句
参考方案
需要将输入的数字从2开始判断一直到本身
除了1和本身如果可以被整除,那么就不是素数,直接跳出循环
如果不能全部整除,那么执行else语句
操作步骤
接收一个变量“num”,并且转型为“int”类型,用于计算
定义变量 “i = 2”用来计算
使用while循环取值2~num
判断是否为素数,如果可以整除那么就不是素数,直接退出循环,如果不能整除,那么继续判断下一个数
如果全部判断完成则执行“else”输出当前输入的“num”是一个素数
参考答案
num = int(input("请输入一个数字:"))
if num == 1 or num == 0:
print("%d 不是素数也不是合数" % num)
else:
i = 2
while i < num:
if num % i == 0:
print("%d不是素数" % num)
break
i += 1
else:
print("%d是素数" % num)
# 素数,一个数字 若只能被1和本身整除,这个数字就是素数。
# 如何判断一个数字是不是素数呢?让这个数字从2开始整除,到数字减1结束,如果都不能被整除,则是素数
num = int(input("请输入用来判断的数字:"))
i = 2
while i < num:
if num % i == 0:
# 如果出现一个数字,能整除,则说明不是素数
print(f"{num} 不是素数")
break
i += 1
else:
print("是素数")
题目 6 [加强训练]
题干
要求用户输入一个字符串,遍历当前字符串并打印,如果遇见“q”,则跳出循环。如果遇见“ ”(空格)则跳过当前输出。
训练目标
for循环的基本使用
break的作用
continue的作用
训练提示
for 循环的基本语法是什么
for循环的作用是什么
break的作用?
continue的作用?
参考方案
使用for循环遍历当前字符串
判断每一字符是什么进行操作
操作步骤
提示用户输入字符串
便利当前字符串
如果是“q”则退出,如果是“ ”(空格)则跳过本次循环
打印字符
参考答案
input_str = input("请输入一个字符串:")
for i in input_str:
if i == "q":
break
elif i == " ":
continue
print(i)
题目 7 [加强训练]
题干
使用for循环计算1 - 100 之间的累加和。
训练目标
range()的使用
训练提示
range()方法的作用
for循环如何使用
累加重新辅助
参考方案
使用for寻遍遍历0~100
进行累加重新赋值
操作步骤
定义变量sum,初始化sum=0
遍历0~100的所有的值
进行累加和
参考答案
sum = 0
for i in range(101):
sum += i
print(sum)
题目 8 [加强训练]
题干
请用户输入一个数,使用for循环计算是否为素数(素数只能被 1 和本身整除)。
训练目标
for...else是使用
训练提示
range生成2~num的可迭代对象
for...else的使用场景,什么时候执行else
参考方案
使用for循环
range生成2~num的可迭代对象
判断是否为素数
操作步骤
定义变量,接收一个数字
定义初始循环的值为2
判断是否是素数如果可以整除那么就不是素数,直接退出循环,如果不能整除,那么继续判断下一个数
如果全部判断完成则执行“else”输出当前输入的“num”是一个素数
参考答案
num = int(input("请输入一个数字:"))
if num == 1 or num == 0:
print("%d 不是素数也不是合数" % num)
else:
for i in range(2, num):
if num % i == 0:
print("%d不是素数" % num)
break
else:
print("%d是素数" % num)
# # 素数,一个数字 若只能被1和本身整除,这个数字就是素数。
# # 如何判断一个数字是不是素数呢?让这个数字从2开始整除,到数字减1结束,如果都不能被整除,则是素数
# num = int(input("请输入用来判断的数字:"))
# i = 2
# while i < num:
# if num % i == 0:
# # 如果出现一个数字,能整除,则说明不是素数
# print(f"{num} 不是素数")
# break
# i += 1
# else:
# print("是素数")
# 素数,一个数字 若只能被1和本身整除,这个数字就是素数。
# 如何判断一个数字是不是素数呢?让这个数字从2开始整除,到数字减1结束,如果都不能被整除,则是素数
# num = int(input("请输入用来判断的数字:"))
num = 100
while num <= 200:
i = 2
while i < num:
if num % i == 0:
# 如果出现一个数字,能整除,则说明不是素数
# print(f"{num} 不是素数")
break
i += 1
else:
print(num, end=" ")
num += 1
题目 9 [综合训练]
题干
分别使用for循环和while循环,求100~200的所有素数。
训练目标
循环嵌套的使用
if条件判断
while...else for...else的使用场景
训练提示
题目8和题目5分别使用for和while循环判断一个值是否为素数
增加外层循环
参考方案
采用循环嵌套形式判断每一个值
参考题目10和题目7
操作步骤
确定循环次数
内层循环判断里面的每一个数是否为素数
如果不是break跳出本次循环,如果是那么都判断完成后执行else语句
while循环注意自增问题
参考答案
# 定义初始值
num = 100
# 外层循环控制100 到 200 的值
while num <= 200:
# 判断一个数据是否是素数,从2开始整除到数据值-1为止,如果可以整除,则不是素数
i = 2
# 内层循环控制除数
while i < num:
# 判断是否可以被整除
if num % i == 0:
# 可以被整除,则不是素数
print("%d不是素数" % num)
# 装置内层循环,不需要再判断
break
# 改变i 的值
i = i + 1
else:
# 内层循环结束,没有被break终止,则说明是素数
print("%d是素数" % num)
# 内层循环结束,当前数据判断结束,继续下一个数据判断
num = num + 1
# 外层循环控制100 到 200 的值
for num in range(100, 201):
# 判断一个数据是否是素数,从2开始整除到数据值-1为止,如果可以整除,则不是素数
# 内层循环控制除数
for i in range(2, num):
# 判断是否可以被整除
if num % i == 0:
# 可以被整除,则不是素数
print("%d不是素数" % num)
# 装置内层循环,不需要再判断
break
else:
# 内层循环结束,没有被break终止,则说明是素数
print("%d是素数" % num)
欲不可纵,纵欲成灾。乐不可极,乐极生哀,可谓知养生矣。——明·万全《万全养生四要》