[英]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.