簡體   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