【发布时间】:2019-02-25 14:25:56
【问题描述】:
我正在尝试编写一个 Python 函数,该函数要求输入大于 1 的整数并返回或打印输入值。
例如在代码运行时:
错误情况1:
输入大于 1 的整数:1
输出:请输入一个大于 1 的数字:
错误情况 2:
输入一个大于 1 的整数:abc345
输出:请仅输入整数值:
如果只是处理错误情况1,那很简单,我们可以使用while循环。但是还要包括非整数输入的情况,我的代码总是崩溃。
这是我的功能:
def mult_digits():
x = input("Enter an integer greater than 1: ")
while type(x) is not int:
try:
while int(x) <= 1:
x = input("Please enter a number greater than 1: ")
x = int(x)
except ValueError:
x = input("Please enter integer values only: ")
x = int(x)
print(f"Yes, you have entered {x}.")
我的代码的问题是 int("a") 将导致 int() 的文字无效,并带有 base 10 错误。由于 input() 函数总是返回一个字符串,我们需要检查字符串是否可以转换为整数,所以我们需要 int() 函数,但这正是问题所在。
我尝试了许多不同的代码变体,包括使用 for 循环扫描输入值以查找任何非整数字符,但效率不高而且仍然崩溃。我还尝试了一个 while 循环,最终创建了一个无限循环。
有人可以帮忙吗?有没有更好的方法来编写这个函数?非常感谢,谢谢!
【问题讨论】:
标签: python python-3.x function error-handling integer