2013-10-17 24 views
2

幫助,我不知道我的代碼在哪裏出錯,我認爲我沒有做我應該做的事情,但是我問過的每個人都說這是一個很好的代碼。 我分配了一個變量(stats)作爲某個整數(15)。 然後我要求用戶輸入一個整數到另一個變量(DEX)。 然後,程序將打印三件事情之一,具體取決於變量是否大於,小於或等於統計。 下面是完整的代碼,誰想要的幫助:Python將無法正確比較我分配的變量

stats = 15 
DEX = raw_input(prompt) 
if stats > DEX: 
    os.system("cls") 
    print TITLE 
    print "SO YOUR DEX IS %s CORRECT?" %(DEX) 
    time.sleep(4) 
    thread_2() 
elif DEX > stats: 
    print "YOU HAVE TOO MUCH DEX!!" 
elif DEX = stats: 
    print "ARE YOU SURE YOU WANT TO ADD ALL YOUR STATS TO DEX?" 
+2

那不能是你的代碼 - 它會給你一個'SyntaxError'。另外,你應該考慮升級到Python 3:這個特定的比較會產生一個有用的'TypeError:無法定型的類型:int()> str()'消息。 – DSM

回答

4

您需要通過將其放入int,使DEX整數:

DEX = int(raw_input(prompt)) 

raw_input總是返回一個字符串對象。意思是說,你試圖比較字符串和整數,這是行不通的。

此外,關於您的最後elif,您需要使用==進行比較測試。 =用於變量賦值。

+0

如果Python 2.x沒有任何其他方式比較不同值的類型,它將按照字典順序進行比較。字符串「int」小於字符串「str」,所以任何「int」值都小於任何「str」值。 – chepner

1

你需要說:

DEX = int(raw_input(prompt)) 

raw_input讀取輸入線,將其轉換爲字符串(剝離一個換行符),並返回。

int將數字或字符串x轉換爲整數。

2

您在最後的elif中使用賦值運算符而不是比較運算符。你最後的elif應該是:

elif DEX == stats: 
    print "ARE YOU SURE YOU WANT TO ADD ALL YOUR STATS TO DEX?"