简单的字符串混淆 - Python34

Simple Strings Confusion - Python34

我对此真的很陌生,现在已经尝试解决这个问题一天了。 Python34 有点问题。这是我的代码:

myName = input('What is your name? ')
myVar = input("Enter your age please! ")

if(myName == "Jerome" and myVar == 22):
    print("Welcome back Pilot!")
    print(myName, myVar)
elif(myName == "Steven"):
    print("Steve is cool!")
    print(myName, myVar)
else:
    print("Hello there", myName)
    print(myName, myVar)

当我输入- Jerome enter 22 enter 到控制台时,它仍然通过打印进入条件:

Hello there Jerome
Jerome 22

为什么会这样?我还尝试通过这样写来弄乱 if 语句:if(myName == "Jerome") and (myVar == 22): 和我 still 得到了相同的响应。

在Python 3、input() function returns a string, but you are trying to compare myVar to an integer. Convert one or the other first. You can use the int() function这样做:

myVar = int(input("Enter your age please! "))

if myName == "Jerome" and myVar == 22:

或使用:

myVar = input("Enter your age please! ")

if myName == "Jerome" and myVar == "22":

将用户输入转换为整数的好处是您可以进行其他比较,例如小于或大于等等。

在这种情况下,您可能想阅读有关通过适当的错误处理请求用户输入的内容。参见 Asking the user for input until they give a valid response

这是罪魁祸首

myVar = input("Enter your age please! ")

input总是returns一个字符串

一样将其转换为 int
myVar = int(input("Enter your age please! "))

将您的if条件更改为

if(myName == "Jerome" and myVar == "22"):

但这是一个劣等的方法,如果你想把你的年龄用在别的地方,那就成问题了

方法 input() returns一个字符串,也就是一个词或者一句话,但是你需要把它变成一个整数,一个整数。为此,只需键入 input("Enter your age please"),您需要键入 int(input("Enter your age please"))。这会将它变成一个整数。 希望对您有所帮助!