2016-12-01 99 views
0

我試圖在Python 3.5中設置一個程序,要求用戶輸入1到9之間的一個數字。該程序也會猜測1到9之間的一個數字。如果用戶猜測相同的號碼正確,那麼程序將打印Correct。否則,該程序將打印Wrong。我寫了一個程序。我的代碼一切都很順利。但是,當我正確猜測一個數字時,程序突然寫了Wrong而不是Correct。我究竟做錯了什麼?在python中創建一個小程序

這裏是我的代碼:

print('Enter a number from 1 to 9') 
x = int(input('Enter a number: ')) 
import random 
random = print(random.randint(1,9)) 
if int(x) != random: 
    print ('Wrong') 
else: 
    print ('Correct') 
+2

您正在將'None'分配給'random' –

+1

不建議使用名爲random的變量。 – The6thSense

回答

1

這裏是錯誤的,

random = print(random.randint(1,9)) 

你需要做這樣的事情。

random = random.randint(1,9) 
print(random) 

此外,您已經將輸入轉換爲int,所以您可以做到這一點。

if x != random: 
2

您要保存print()調用的結果(和掩蔽random)。 print()返回None,所以它總是不等於一個整數,因此總是「錯誤的」。

import random 

print('Enter a number from 1 to 9') 
x = int(input('Enter a number: ')) 
r = random.randint(1,9) 
if x != r: 
    print('Wrong') 
else: 
    print('Correct') 

另外請注意,我搬到了import聲明頂部,避免了第二int()投上的東西你已經這樣做了到,並取消了print參考及其參數之間的空間。

0

正如指出你的錯誤是行

random = print(random.randint(1,9)) 

但是,爲什麼?

functions(如print()採取東西,東西(它)和東西回來

例: sum(3,4)需要 3和4,可以添加他們返回 7.

print("Hello World")另一方手需要「你好世界」,打印它在屏幕上,但沒有什麼有用的回報,因此返回None(pythons方式說「沒有」)。

然後,您將None分配到名稱random並測試它是否等於您的號碼,當然它不會。