Python循环中如何校验用户输入 限制首次输入仅支持加减运算符
修改后满足需求的完整代码
# 初始化基础参数 base_num = 0 full_expr = str(base_num) is_first_input = True while (a := input("Enter operatornumber like -9;")) != "-0": # 基础输入格式校验:长度≥2、运算符后为合法数字 if len(a) < 2 or not a[1:].lstrip('-').isdigit(): print("Invalid input, try again.") continue # 运算符校验:区分首次/非首次输入规则 current_op = a[0] if is_first_input: if current_op not in "+-": print("First input only allows + or -, try again.") continue is_first_input = False else: if current_op not in "+-*/": print("Invalid operator, try again.") continue # 合法输入拼入完整表达式 full_expr += a # 统一运算后输出结果 print(eval(full_expr))
实现逻辑说明
- 需求1(首次输入仅允许+-):
新增is_first_input标记位,第一次输入时限制运算符只能为+或-,校验通过后将标记位设为False,后续输入即可正常支持*//运算符。 - 需求2(拼接所有输入后统一运算):
新增full_expr字符串变量,初始值为基础运算值0的字符串格式,每次用户输入合法后就将输入内容拼接到该变量中,用户输入结束符-0退出循环后,直接对拼接完成的完整表达式执行运算即可。
内容的提问来源于stack exchange,提问作者Yuzuki Yuki
相关产品推荐
相关产品推荐

