简单的字符串混乱 - Python34

时间:2015-01-17 15:35:46

标签: python string python-3.x conditional-statements

我真的很擅长这一点,并且一直试图解决这个问题。有一点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)

当我输入 - 杰罗姆输入 22 进入进入控制台时,它仍然通过打印进入条件:

Hello there Jerome
Jerome 22

为什么会这样?我也尝试通过写这样的方式搞乱if语句:if(myName == "Jerome") and (myVar == 22):并且我仍然得到相同的响应。

3 个答案:

答案 0 :(得分:3)

在Python 3中,input() function返回字符串,但您尝试将myVar与整数进行比较。首先转换一个或另一个。您可以使用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

答案 1 :(得分:1)

这是罪魁祸首

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

input始终返回一个字符串

将其转换为int,如

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

将您的if条件更改为

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

但这是一种较差的方法,好像你想用别人的年龄,那么它就会成为一个问题

答案 2 :(得分:0)

方法input()返回一个字符串,这是一个单词或句子,但你需要使它成为整数,整数。要做到这一点,只需键入而不是input("Enter your age please"),您需要输入int(input("Enter your age please"))。这将把它变成一个整数。 希望这会有所帮助!