繁体   English   中英

python-函数不在while循环中调用

[英]python- function isn't called in a while loop

noprob=["nothing","none","no damage"]

while True:
    q1=input("input your answer:")
    answer=q1.split(' ')`


    if any(a in answer for a in noprob):
        function()#wont call this
        break
    else:
        print("else statement")
        continue

def function():
    print("code now works")

我的代码不会在应该调用该函数时调用该函数。 此代码应识别用户输入并输出必要的操作。

新的完整代码:添加了 elif 语句,我认为这是代码的问题

`noprob=["nothing","none","no damage"]
something=["something","yes"]`

def function():
    print("code now works")`

def something():
    print("something, code works")
while True:
    q1=input("input your answer:")
    answer=q1.split(' ')`


    if any(a in answer for a in noprob):
        function()#wont call this
        break
    elif any(a in answer for a in something):
        something()
        break
    else:
        print("else statement")
        continue

Python 从上到下执行代码。 所以如果你之前没有声明它的定义,你将无法执行function 将函数移动到while循环之前。

noprob=["nothing","none","no damage"]

def function():
    print("code now works")

while True:
    q1=input("input your answer:")
    answer=q1.split(' ')


    if any(a in answer for a in noprob):
        function()#wont call this
        break
    else:
        print("else statement")
        continue

您的问题是,您的列表和函数都命名为something 重命名一个并相应地更改您的代码。

something=["something","yes"]

def something(): #this one shadows your list and needs to be renamed
    print("something, code works")

对于生成器, Python 3.5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM