2013-12-10 71 views
0
import random 
print("Let's play the Random Number Game") 
guess=random.randint(1,15) 
print("\n I've choosed a random Number from 1 to 15", "Try guessing the number") 
def strt(): 
userguess=input("\n Enter the number") 
if userguess==guess : 
    print("wow! you've guessed the correct number in" ,"time") 
else: 
    if userguess>guess: 
     print("Guess a smaller number") 
      strt() 
    else : print("Guess a Larger number") 
      strt() 
strt() 
input("Hit Enter to Exit") 

我剛剛開始學習Python。這段代碼有什麼問題?我剛開始學習Python。這段代碼有什麼問題?

+4

你告訴我們,它拋出了什麼錯誤? – StoryTeller

+1

你的縮排是關閉的 – inspectorG4dget

+1

[縮進很重要。](http://docs.python.org/2/reference/lexical_analysis.html#indentation) –

回答

1

您的代碼缺少正確的縮進。

Python代碼使用縮進的,而不是其他的語法來編碼塊,像對beginend如帕斯卡找到,或者{}如在C++中找到,因此正確的縮進是Python的編譯器的關鍵,以完成其工作。

0

好的,假設你已經修復了縮進,還有一個問題:你正在比較整數guess與字符串userguess。因此,平等檢查總是會失敗,並且比較檢查將拋出一個TypeError

>>> "1" == 1 
False 
>>> "1" > 0 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unorderable types: str() > int() 

你需要調用你的用戶的輸入int()爲了使變量相媲美。

4

除了缺少適當的縮進你的程序還包含一個小錯誤。

input()在Python中返回str,並且無法進行某種轉換,您無法將字符串與Python中的ints進行比較。例如:

userguess = int(input("Guess: ")) 

沒有這種類型的轉換一個TypeError被拋出這樣的:

>>> "foo" > 1 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unorderable types: str() > int() 

一個正確版本的程序與正確的縮進和上述修正:

import random 


print("Let's play the Random Number Game") 
guess = random.randint(1, 15) 
print("\n I've choosed a random Number from 1 to 15", "Try guessing the number") 


def strt(): 
    userguess = int(input("\n Enter the number")) 
    if userguess == guess: 
     print("wow! you've guessed the correct number in", "time") 
    else: 
     if userguess > guess: 
      print("Guess a smaller number") 
      strt() 
     else: 
      print("Guess a Larger number") 
      strt() 


strt() 
input("Hit Enter to Exit") 
+0

耶,兩個答案完全一樣:) –

+0

呵呵:)我只是想在下班後放鬆一下,看看我是否能夠提升自己的聲望:) –