2013-10-15 75 views
1

嘿剛剛開始學習Python並得到了一些問題已經 我做了一個代碼與if語句應該工作,但它不工作 有人可以修復它,並告訴我,我做錯了什麼?麻煩,如果用在python

x= raw_input("Enter your name: ") 
y= raw_input("Enter your grade: ") 
print(y) 
if y>=50 and y<=100: 
    print("Good input") 
else: 
    print ("Invaild input") 

它始終打印無效輸入 謝謝!

回答

11

raw_input()返回一個字符串,但您將xy與整數進行比較。

打開y成整數比較之前:

y = int(y) 
if y >= 50 and y <= 100: 

您可以簡化比較小與鏈接,讓你內聯int()電話:

if 50 <= int(y) <= 100: 
5

你必須把它在int將輸入轉換爲整數:

x= raw_input("Enter your name: ") 
################ 
y= int(raw_input("Enter your grade: ")) 
################ 
print(y) 
if y>=50 and y<=100: 
    print("Good input") 
else: 
    print ("Invaild input") 

記住raw_input總是返回一個字符串。所以,在你的if語句中,你正在比較一個字符串和整數。這就是爲什麼它不起作用。

事實上,每當我需要打印一個消息或者其他,我喜歡把它放在同一行(當然,除非消息是長):

print("Good input" if 50 <= y <= 100 else "Invaild input") 

使整體的if-else塊似乎這裏有點矯枉過正。

0

你必須將其轉換爲intraw_input給你一個字符串。

x= raw_input("Enter your name: ") 
y= raw_input("Enter your grade: ") 
print(y) 
if 50 <= int(y) <= 100: 
    print("Good input") 
else: 
    print ("Invaild input") 

但是,如果用戶沒有輸入一個數字,然後你需要添加一個try-except塊:

x = raw_input("Enter your name: ") 
y = raw_input("Enter your grade: ") 
print(y) 

try: 
    if 50 <= int(y) <= 100: 
     print("Good input") 
    else: 
     print ("Invaild input") 
except ValueError: 
    print "You did not enter a number for your grade" 
+2

類似的方式來使用

y = int(y) 

?如果你打算這麼做的話,你需要在'raw_input'周圍去掉'int'。 – iCodez

1

raw_input()功能等待用戶輸入數據時,它類似於scanf()功能C.但是你輸入存儲爲字符串數據,所以我們需要轉換成我們喜歡整數指定的形式,漂浮等

例:y = raw_input("Enter data");

將數據轉換成整數,我們需要,我們可以轉換成不同的數據類型