无法在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 1Code 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函数中执行缩进的代码行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

css怎么首行缩进

操作列表

python基础--结构篇

python--3函数

Nodejs代码里如何保证缩进层级不会太多

云计算Python自动化运维开发实战:行和缩进