首页 > 解决方案 > 我的代码跳过了 if 语句。(蟒蛇2.7)

问题描述

嗨,我对 python 编码很陌生,但我不知道为什么这段代码不起作用。

prompt = "> "

def pos(answer):
    print answer
    if 0 < answer < 12:
        print "Damn you'r young, but you can still do a lot of things.\n"
    elif 65 < answer < 110:
        print "Wow you'r old, but never to old to learn something.\n"
    elif answer < 0:
        print "You should input a positive number."
    else:
        print "I didn't understand you, try inputting a number."


print "Hi there, what's your name?"
name_a = raw_input(prompt)

print "Hi %s, how old are you?" % name_a
age = raw_input(prompt)
pos(age)

对于我给出的每一个输入,它都会转到 else 并打印“我不明白你......”。

标签: python

解决方案


由于您使用的是 python 2(raw_inputpython 3 中没有),因此raw_input返回一个字符串。要从输入中获取整数,请使用input.

prompt = "> "

def pos(answer):
    print answer
    if 0 < answer < 12:
        print "Damn you'r young, but you can still do a lot of things.\n"
    elif 65 < answer < 110:
        print "Wow you'r old, but never to old to learn something.\n"
    elif answer < 0:
        print "You should input a positive number."
    else:
        print "I didn't understand you, try inputting a number."


print "Hi there, what's your name?"
name_a = input(prompt)

print "Hi %s, how old are you?" % name_a
age = input(prompt)
pos(age)

旁注:int(input())用于 python 3

如果出于某种原因您希望代码在 python 2 和 python 3 中运行,试试这个

raw_input = input # since `input` exist in both python 2 and python 3
age = int(raw_input("..."))

推荐阅读