Python 调用函数并返回一个值

Python 调用函数并返回一个值,python,function,return,call,Python,Function,Return,Call,我有以下代码: def checkUserId(userID): if userID < 1 or userID > 10: print(userID) print("You did not enter a valid ID number. Try again.") userID = int(input("Enter your ID number.")) print(userID) che

我有以下代码:

def checkUserId(userID):
    if userID < 1 or userID > 10:
        print(userID)
        print("You did not enter a valid ID number. Try again.")    
        userID = int(input("Enter your ID number."))
        print(userID)
        checkUserId(userID)
    else:
        return userID

userID = 0
while userID != "shutdown":
    userID = int(input("Enter your ID number."))
    checkUserId(userID)
    print(userID)
def checkUserId(userID):
如果userID<1或userID>10:
打印(用户ID)
打印(“您没有输入有效的ID号。请重试。”)
userID=int(输入(“输入您的ID号”)
打印(用户ID)
checkUserId(userID)
其他:
返回用户ID
userID=0
而用户ID!=“关闭”:
userID=int(输入(“输入您的ID号”)
checkUserId(userID)
打印(用户ID)

我想做的就是检查userID是否在1到10之间。如果是,那么我们继续。但由于某些原因,当调用函数并执行检查时,不会返回userID的值(现在输入正确)。相反,将使用在函数调用之前输入的原始无效值。如果用户输入“11”,则在函数调用后,“11”仍将保持userID值。运行它看看我的意思。感谢您的帮助。

您的代码中有两个UserID变量,如果值不在1到10之间,您没有返回UserID值,因此它在while循环中打印旧值

您可以使用下面的简化代码

def checkUserId(user_id):
    if user_id < 1 or user_id > 10:
        print(user_id)
        return "You did not enter a valid ID number. Try again."
    else:
        return user_id

user_id = 0
while True:
    user_id = input("Enter your ID number.")
    if user_id == 'shutdown':
        break
    ret_user_id = checkUserId(int(user_id))
    print(ret_user_id)
def checkUserId(用户id):
如果用户id<1或用户id>10:
打印(用户id)
return“您没有输入有效的ID号。请重试。”
其他:
返回用户id
用户id=0
尽管如此:
user_id=input(“输入您的id号”)
如果用户_id==“关机”:
打破
ret_user_id=checkUserId(int(user_id))
打印(ret_用户id)

缩进在Python中很重要。如果您要发布Python代码,请努力准确地再现缩进。如果读者必须尝试猜测您的实际缩进,他们可能会错过问题或在程序中引入新问题。您接受
userID
作为int,但终止条件是
userID
为“shutdown”。如果你接受它为int,它将如何成为字符串?@Rohan-这是一个很好的观点,但这不是我正在处理的直接问题谢谢@Sach…工作得很好!我试着对答案投赞成票,但我的声望不够高。