python基础题练习(1)

练习1:定义一个整数变量 age,编写代码判断年龄是否正确,要求人的年龄在0-120之间
  1. 通过try-except语句捕获了int(age)可能抛出的ValueError异常,这样即使用户输入非数字字符,程序也不会意外终止,而是提示用户重新输入
  2. 通过一个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}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值