如何在Python的while循环用户输入功能中设置整数默认值
实现input输入函数整数默认值的解决方案
你原有写法的错误核心原因:inputNumber("Specify number: " or "2")的逻辑完全错误,Python中or是布尔运算符,非空字符串的布尔值为True,所以这个表达式在传入函数前就已经计算得到结果为"Specify number: ",根本没有把默认值2传递给函数的逻辑,默认值需要在函数内部做判断实现。
修改后的完整可运行代码如下:
def inputNumber(message, default=None): # 如果设置了默认值,在提示语末尾标注,方便用户知晓 if default is not None: message = f"{message}(默认:{default}) " while True: # 先获取原始输入,去除首尾空白字符 raw_input = input(message).strip() # 输入为空且存在默认值时直接返回默认值 if not raw_input and default is not None: return default try: userInput = int(raw_input) except ValueError: print("Not an integer! Try again.") continue else: return userInput # 调用时传入default参数设置默认值为2 specify_number = inputNumber("Specify number: ", default=2)
实现效果:
- 用户未输入内容直接回车:自动返回默认值2
- 用户输入非整数内容:提示输入不合法,要求重新输入
- 用户输入合法整数:返回用户主动输入的数值
内容的提问来源于stack exchange,提问作者Peter N
相关产品推荐
相关产品推荐

