gpt4 book ai didi

python - 如何在 python 3 中替换函数内的变量值

转载 作者:太空宇宙 更新时间:2023-11-03 11:02:58 24 4
gpt4 key购买 nike

我是 python 的新手,我可能把它复杂化了。我在函数中的变量值未被替换时遇到问题。相反,它似乎只是在为其添加新的值(value)。使用此功能,如果您选择 1 或 2,它应该执行某些操作,如果您选择任何其他内容,它应该说这不是一个选项并让您重试。如果我在选择有效选项之前选择了错误的选项,则输出如下:

Select Option

[1] Option 1
[2] Option 2

You selected Option 1
1
9
7
6

因此,它没有将我的变量值替换为 1 并清除以前的值,它似乎只是添加到它。这是我的代码:

def testfunc():

testvar = input('Select Option\n\n[1] Option 1\n[2] Option 2\n\n >')
if testvar in ('1', 'Option 1', 'option 1'):
print("\nYou selected Option 1")
elif testvar in ('2', 'Option 2', 'option 2'):
print("\nYou Selected Option 2")
else:
print("\n\nThat is not an option, please select another option")
testfunc()
print(testvar)

testfunc()

如果有人能解释为什么它存储多个值以及如何防止这种情况发生,我将不胜感激。谢谢!

最佳答案

您的问题是您使用递归 返回并获取另一个值(在 testfunc() 本身中调用 testfunc() ).

如果您输入无效值,它将再次调用该函数,保存其当前位置(在 print 之前)以便返回到那里。

然后,当您最终输入一个好的值时,它最终会展开堆栈,边走边打印出无效值。

你最好使用循环来进行这种验证,比如:

def testfunc():
ok = False
while not ok:
testvar = input('Select Option\n\n[1] Option 1\n[2] Option 2\n\n >')
if testvar in ('1', 'Option 1', 'option 1'):
print("\nYou selected Option 1")
ok = True
elif testvar in ('2', 'Option 2', 'option 2'):
print("\nYou Selected Option 2")
ok = True
else:
print("\n\nThat is not an option, please select another option")

print(testvar)

testfunc()

关于python - 如何在 python 3 中替换函数内的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27596951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com