2014-10-10 83 views
-4

Python 3.4Python:循環問題或縮進

嗨,大家好!我在程序中需要布爾運算符的幫助。 你必須猜測一個由程序設置的數字,從1 - 1000. 如果你猜測它說的很好,如果不是它說高/低。

使用while,if/elif/else(其中任何一個),以及playagain循環。

這是我到目前爲止。

import random 

a = int(input("I have a number between 1 and 1000. Can you guess my number?\nPlease type your first guess.")) 
x = random.randrange(1,1000) 
counter = 0 
b = False 
while not b: 
    if a == x: 
     print ("Excellent! You guessed the number in", counter1,"tries.") 
     b = True 
    elif a > x: 
     print ("high") 
     counter = counter + 1 

    elif a < x: 
     print ("low") 
     counter = counter + 1 
+0

你似乎是正確的已經在做了。 – 2014-10-10 01:35:00

+0

你不需要'break'語句。既然你將'b'設置爲'True',循環將不會執行另一次迭代。 – dursk 2014-10-10 01:35:06

+0

一般說明:爲了讓人們更容易幫助你,最好問一個更具體的問題。在這種情況下,現在正在做什麼程序需要改變? – Denise 2014-10-10 01:36:15

回答

0

您的主要問題是您沒有在循環中提示他們。

import random 

x = random.randrange(1,1000)  
counter = 0 

while True: 
    guess = int(input("I have a number between 1 and 1000. Can you guess my number?\nPlease type your first guess.")) 
    if guess == x: 
     print ("Excellent! You guessed the number in", counter,"tries.") 
     break 
    else: 
     if guess > x: 
      print("high") 
     else: 
      print("low") 
     counter += 1 

提示用戶,如果他們想再次播放,你會做到以下幾點:

import random 

x = random.randrange(1,1000)  
counter = 0 

while True: 
    guess = int(input("I have a number between 1 and 1000. Can you guess my number?\nPlease type your first guess.")) 
    if guess == x: 
     print ("Excellent! You guessed the number in", counter,"tries.") 
     play_again = input("Type Y if you'd like to play again, or N if not") 
     if play_again == 'N': 
      break 
    else: 
     if guess > x: 
      print("high") 
     else: 
      print("low") 
     counter += 1 
+0

@ Qantas94Heavy:哎呦,很好找 – dursk 2014-10-10 01:46:26

+0

因爲你只是提示用戶輸入一個數字一旦。您提示用戶輸入號碼,然後進入循環。如果他們第一次猜測是不對的,那麼你永遠不會再次提示並無限循環。由於他們再也無法猜測,因爲第一個「if」條件永遠不會被滿足,所以循環永遠不會終止。 – dursk 2014-10-10 01:53:22

+0

@ Player72請參閱編輯。 – dursk 2014-10-10 13:48:25