练习1:定义一个整数变量 age,编写代码判断年龄是否正确,要求人的年龄在0-120之间
- 通过try-except语句捕获了int(age)可能抛出的ValueError异常,这样即使用户输入非数字字符,程序也不会意外终止,而是提示用户重新输入
- 通过一个while循环,只要用户输入的年龄不合规(不是数字或者不在0到120之间),就会提示用户重新输入,直到输入合规为止
def estimate_age() -> None:
while True:
try:
age = input("请输入您的年龄:")
# 尝试将输入转换为整数
age_int = int(age)
# 验证年龄是否在合理的范围内
if 0 <= age_int <= 120:
print("输入的年龄正确")
break
else:
print(f"您输入的年龄是{age_int},不合规,请重新输入")
except ValueError:
# 如果输入无法转换为整数,则提示用户重新输入
print("输入无效,请输入一个数字")
练习2:定义两个整数变量python_score、c_score,编写代码判断成绩,要求只要有一门成绩>60 分就算合格
def estimate_score() -> None:
"""
估计编程语言考试成绩。
本函数通过用户输入的Python和C语言成绩,判断成绩是否及格(大于60分),
并给出相应的反馈信息。
"""
# 请求用户输入Python成绩
python_score = input("输入您的python_score:")
# 请求用户输入C语言成绩
c_score = input("请输入您的c_score:")
# 判断是否有至少一门成绩及格
if float(python_score) > 60 or float(c_score) > 60:
# 判断只有Python成绩及格
if float(python_score) >= 60 > float(c_score):
print(f"您的python_score分数是{python_score}分,大于60分\n恭喜您!成绩及格!!!", )
# 判断只有C语言成绩及格
elif float(python_score) < 60 <= float(c_score):
print(f"您的c_score分数是{c_score}分,大于60分\n恭喜您!成绩及格!!!")
# 判断两门成绩都及格
else:
print(f"您的python_score分数是{python_score}分,c_score分数是{c_score}分,均大于60分\n恭喜您!成绩及格!!!")
else:
# 判断两门成绩都不及格
print(f"您的python_score分数是{python_score}分,c_score分数是{c_score}分,均小于60分\n很遗憾,您的成绩不及格!")
练习3:定义一个布尔型变量 is_employee,编写代码判断是否是本公司员工,如果不是提示不允许入内
def estimate_employee(employee_id) -> bool:
"""
验证员工ID是否有效。
该函数通过检查员工ID的格式和是否存在于预定义的有效ID列表中来验证员工ID的有效性。
员工ID应以"E"开头,总长度为5个字符。
参数:
employee_id (str): 待验证的员工ID。
返回:
bool: 如果员工ID有效,则返回True;否则抛出ValueError异常。
异常:
ValueError: 如果员工ID格式不正确或不在有效ID列表中,则抛出此异常。
"""
# 预定义的有效员工ID列表
valid_id = ["EM001", "EM002", "EM003", "EM004", "EM005", "EM006"]
# 检查员工ID是否以"E"开头且长度是否为5
if not employee_id.startswith("E") or len(employee_id) != 5:
raise ValueError("无效卡") # raise:抛出异常
# 检查员工ID是否在有效ID列表中
return employee_id in valid_id
def check_employee() -> None:
"""
检查输入的员工ID是否有效。
该函数通过调用estimate_employee函数来验证员工ID。如果ID有效,打印“欢迎进入”;
如果ID无效,打印“不允许入内”;如果验证过程中发生ValueError异常,打印相应的错误信息。
"""
# 请求用户输入员工ID
employee_id = input("请输入员工id:") # 输入员工id
try:
# 尝试验证员工ID的有效性
is_employee = estimate_employee(employee_id) # 调用estimate_employee函数
if not is_employee: # 判断是否是员工
# 如果ID无效,阻止进入
print("不允许入内")
else:
# 如果ID有效,允许进入
print("欢迎进入")
except ValueError as e: # 铺货异常
# 如果验证过程中发生异常,打印错误信息
print(f"验证错误: {e}")