2013-10-15 78 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");

将数据转换成整数,我们需要,我们可以转换成不同的数据类型