无法在python函数中执行缩进的代码行[重复]
Posted
技术标签:
【中文标题】无法在python函数中执行缩进的代码行[重复]【英文标题】:Cannot execute an indented line of code in a python function [duplicate] 【发布时间】:2021-10-22 23:13:26 【问题描述】:我正在学习 python 并且正在尝试我的第一个虚拟项目。我写了一个函数,如果他/她从列表中键入一个值,用户可以继续执行代码,或者如果他/他从另一个列表中键入另一个值,则停止代码。这是函数
myList=['','','','','','','','','',]
def continueGame():
options = True
optionList1=['Yes', 'Y','y','yes','YES']
optionList2=['No','no','n','NO']
userChoice = ''
while userChoice not in optionList1 and userChoice not in optionList2:
userChoice = input("Want to continue the game ? (Y,N) :")
if(userChoice not in optionList1 and userChoice not in optionList2):
print("This is not the correct option. Please enter either Y or N.")
userChoice = ''
if(userChoice in optionList1):
#myList=['','','','','','','','','',] ---------->Code 1
options = True
else:
options = False
if options == True: -------> Code 2
myList=['','','','','','','','','',] -------> Code 2
return options
myList
是一个定义为全局List的列表,其值在其他函数中会发生变化,此处不再赘述。我试过两种方法。 Code 1
和 Code 2
(在上面的代码中)。但它们都不起作用。即使用户点击 Y 或 Yes,它也不会执行 Code 1 或 Code 2。
谁能告诉我哪里出错了?
【问题讨论】:
似乎您缺少全局关键字。查看此链接:geeksforgeeks.org/global-keyword-in-python 它有一个很好的解释。 【参考方案1】:continueGame()
函数内的变量myList
仅与顶部的myList
变量相同,如果您指定它应该是。特别是,您应该像这样插入global myList
:
def continueGame():
global myList
<then the rest of your code>
这告诉 python 函数内的 myList 变量不是新变量,它是全局范围内的变量。
此外,您的列表中不需要尾随逗号。
【讨论】:
以上是关于无法在python函数中执行缩进的代码行[重复]的主要内容,如果未能解决你的问题,请参考以下文章