第一次尝试使用功能!但是我对变量有问题。为什么不更新?
def errorcheck(var):
while (var != "y" and var != "n"):
var = input("\nError. Input Y or n only. Enter again:\n-> ").lower() #gives user a choice on what directory
return var
def getdirectory():
print("\nCurrent directory is: " + os.getcwd()) #print current directory
choice2 = input("\nRename files in current directory? Y or n:\n-> ").lower() #gives user a choice on what directory
errorcheck(choice2)
print("Choice 2 is now:" + choice2)
我希望选项2的值在错误检查后会改变,但选项2仍与错误检查前输入的值相同。
Rename files in current directory? Y or n:
-> hello
Error. Input Y or n only. Enter again:
-> n
Choice 2 is now: hello
这是怎么了?
答案 0 :(得分:1)
当错误检查功能返回一个值时,您没有使用它。 将第二个功能更改为:
def getdirectory():
print("Choice 2 is now:" + errorcheck(choice2))
choice2 = input("\nRename files in current directory? Y or n:\n-> ").lower()
choice2 = errorcheck(choice2) #Update choice2
print("Choice 2 is now:" + choice2)
函数无法更改其外部变量的值。在某些其他语言中,您可以使用 pointers 进行此操作,但是Python无法使用它们。为此,您必须返回值,然后使用返回值更新变量。