2016-11-10 32 views
-1

我正在學習Python,並且無法計算出爲什麼以下不起作用。有關條件語句的新手查詢

任何人都可以建議嗎?

感謝


# Make sure that the_flying_circus() returns True 

print "What is your number?" 
num = input() 
print "What is bla?" 
bla = input() 

def the_flying_circus(): 
    if num ==4 and bla=="bla": # Start coding here! 
     return True 
     print "Well done!" 
     # Don't forget to indent 
     # the code inside this block! 
    elif num == 2 or bla== zog: 
     print "OK" 
     # Keep going here. 
     # You'll want to add the else statement, too! 
    else: 
     print "Bad luck!" 
the_flying_circus() 
+1

這是Python的2.x的?如果是這樣,請使用'raw_input()'而不是輸入。或者更好,[下載並學習Python的最新(穩定)版本](https://www.python.org/downloads/win)。 –

+3

「不起作用」不是很有用的信息。代碼應該做什麼,它實際上做了什麼? – interjay

+0

你可能是指''zog''除非'zog'在別處被定義爲一個變量 –

回答

1

return True下面的代碼很可能不是你想要對if塊頂部什麼。嘗試刪除它。

0

將返回True的唯一條件是num == 4和bla =='bla'。否則,返回值爲None。但是,'做得好!'將不會被打印,因爲返回語句首先出現。

0

夫婦的事情...

1)返回True應被移動到函數結束(如其他人所說)

2)看你如何收集輸入...的raw_input使用的你的字符串,使用數字輸入。

這個工作對我來說:

def the_flying_circus(): 
    if a==4 and b=='bla': 
    print "Well done!" 
    elif a==2 or b=="zog": 
    print "OK" 
    else: 
    print "Bad luck!" 
    return 1 

a = input("What is your number? ") 
b = raw_input("What is bla? ") 

the_flying_circus()