1

嘿,刚开始学习 python 并遇到了一些问题,我用 if 语句编写了一个代码它应该可以工作,但它不工作可以有人修复它并告诉我我做错了什么吗?

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")

它总是打印无效输入谢谢!

4

4 回答 4

11

raw_input()返回一个字符串,但您正在xy整数进行比较。

比较前转y成整数:

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

您可以使用链接简化比较,让您内联int()调用:

if 50 <= int(y) <= 100:
于 2013-10-15T17:23:20.757 回答
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 块似乎有点矫枉过正。

于 2013-10-15T17:23:16.943 回答
1

raw_input()函数等待用户输入数据,它类似于scanf()C中的函数。但是您输入的数据存储为字符串,因此我们需要转换为我们指定的形式,如整数,浮点数等

前任:y = raw_input("Enter data");

将数据转换为我们需要使用的整数

y = int(y)

以类似的方式我们可以转换成不同的数据类型

于 2013-10-15T17:36:09.423 回答
0

您已将其转换为int. raw_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"
于 2013-10-15T17:28:56.080 回答