2013-02-21 87 views
0
import random 

def main(): 
    number = random.randint(0,100) 
    print(number) 
    guess = int(input("Enter your guess: ")) 

    if guess == number : 
     print("You win $10,000!") 

    elif guess // 10 == number // 10 or guess % 10 == number % 10 : 
     print("You win 1,000$!") 

    elif guess // 10 == number // 10 and guess % 10 == number % 10 : 
     print("You win $3,000!") 

    else : 
     print("You win $0.") 

main() 

該程序的作品除了and聲明。有誰知道爲什麼?python和聲明

+2

,因爲要做到這一點的數量必須等於猜......這是包括在'if' – JBernardo 2013-02-21 01:03:40

+1

你需要先檢查最嚴格的語句。 – 2013-02-21 01:05:13

+0

沒有你對最後一個'elif'的要求,就不可能告訴你你做錯了什麼。人們應該如何贏得3000美元? – jozzas 2013-02-21 01:06:20

回答

0

原因是or涵蓋and。使用!=,它給出了獨家或,又名xor。

import random 
def main(): 
    number = random.randint(0,100) 
    print(number) 
    guess = int(input("Enter your guess: ")) 

    if guess == number : 
     print("You win $10,000!") 

    elif (guess // 10 == number // 10) != (guess % 10 == number % 10) : 
     print("You win 1,000$!") 

    elif guess // 10 == number // 10 and guess % 10 == number % 10 : 
     print("You win $3,000!") 

    else : 
     print("You win $0.") 




main() 
+0

條件三仍然是數字<100的條件之一。 – Hyperboreus 2013-02-21 02:00:35

+0

好抓!測試時我讀「輸入你的猜測」,甚至沒有意識到這是一個條件。 – rofls 2013-02-21 02:02:17

+0

@Hyperboreus:但是'number'可以是100,這不會少於100 ...我懷疑這實際上是OP代碼中的一個錯誤。 (這就是爲什麼'randint'的文檔會說「你可能想要'randrange'」)但是,如果不是這樣,你需要對條件3稍微複雜一點的討論。(但是你所說的直觀的想法很明顯。) – abarnert 2013-02-21 02:08:17