Python 1-10整数输入校验:isdigit对'ten'类非整数输入是否生效及代码完善
关于isdigit()的适用性解答
不适用。Python的isdigit()方法仅能识别字符串中是否全部为阿拉伯数字字符,输入英文单词ten、小数.3这类非阿拉伯数字组成的内容时isdigit()会返回False,但如果遇到带全角数字、Unicode数字等特殊场景反而可能误判,你目前用try-except捕获ValueError的方案更适合做整数合法性校验,能直接覆盖所有无法转换为整数的输入场景。
完整实现代码
while True: input_content = input("输入1-10之间的整数:") try: num = int(input_content) if num == 0: print("哎呀,你输入了零,请重试。") elif 1 <= num <= 10: reciprocal = 1 / num print(f"你输入数字的倒数是{recnum}。") break else: print("你输入的数字不在1到10范围内!!!请重试。") except ValueError: print("你输入的不是整数!!!请重试。")
代码逻辑说明
- 用
while True循环实现输入错误自动重试的效果,输入合法值计算完倒数后自动退出循环 - 所有无法转换为整数的输入(包括
ten、.3、特殊符号等)都会进入ValueError分支,输出对应提示 - 分支判断优先级匹配需求:优先校验0输入,再校验1-10合法范围,最后处理超出范围的输入,完全符合你给出的预期交互效果
内容的提问来源于stack exchange,提问作者Ahki A
相关产品推荐
相关产品推荐

