我经常使用这组代码,所以我创建了一个函数,我想使用它而不是多次编写代码。
def setVar():
try:
x = int(input())
except:
print("The number is not an integer please try again")
setVar()
功能如下:
def setVarInt(x):
try:
x = int(input())
except:
print("The number you have entered is not an integer.")
print("Please try again.")
setVarInt(x)
所以当我做setVarInt(T)时,我希望它创建一个变量T并等待输入。
输入格式:
setVarInt(T)
print(T)
输出格式:
13 #This is where I input T
13
我收到此错误:
Traceback (most recent call last):
File "E:\Computer Coding\Python\My Code\Function Files\setVars.py", line 19, in <module>
setVarInt(T)
NameError: name 'T' is not defined
答案 0 :(得分:0)
不要使用递归来解决这个问题,你应该使用while
循环。此外,您不需要x
参数。
def setVarInt():
while True:
try:
return int(input())
except ValueError:
print('Please enter an integer')
然后当你调用这个函数时,你必须捕获返回值才能打印它。
x = setVarInt()
print(x)
答案 1 :(得分:0)
你做得差不多了。您刚刚忘记了return
关键字。
试试这个:
def setVar():
try:
x = int(input())
return x
except:
print("The number is not an integer please try again")
return setVar()
x = setVar()
print(x)