简单的Python "if", "elif", "else

0 投票
4 回答
2380 浏览
提问于 2025-04-30 18:22

我在上课时用Python做一个“疯狂填词”的项目,这是我第一天上课,我已经学会了大部分需要知道的东西,但我不太确定怎么使用“if”、“elif”和“else”这些东西。到目前为止,我的代码是这样的,基本上当输入年龄时,我想判断这个人是成年人还是孩子。

print "welcome to your short story"

name = raw_input("Input your name: ")
age = raw_input("Input your age: ")

if age > 21:
    age = "adult"
elif age < 21:
    age = "kid"


print "My name is ",name,"and I am a " ,age,"year old ",age
暂无标签

4 个回答

0

正如foxygen所说,int函数是用来把你的输入从字符串转换成整数的。

age = int(raw_input("Input your age: "))

这里有个区别,就是字符“1”、“2”、“3”等和数字1、2、3等是不同的。有些编程语言会帮你自动转换,但Python不会这样做,所以你可能会把“32”和21进行比较,这就像把苹果和橙子比较一样。

另外,虽然在这个特定的情况下你是安全的,但你会发现你在重新赋值age的时候,仍然在根据它的原始值进行计算。这通常是不安全的,最好是给一个新的变量赋值:

if age > 21:
    age_label = "adult"
elif age < 21:
    age_label = "kid"
else:
    age_label = "person" # in case a 21 year old uses your program

在这种情况下你是安全的,因为if/else结构只会执行一个分支,但最好不要养成在还在使用输入值的时候就去重写它的习惯。

0
print "Welcone to your Story"
name = raw_input("Please enter yout name: ")
    age = int(raw_input("please enter your age: "))
    if age >= 21:
        status = "an adult"
    else:
        #enter code here
        status = "a kid"
    print "My name is %r , I am  %r and I am %r years old" %(name,status,age)

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得简单易懂。

0

我意识到我需要一个不同的值,所以我已经进行了更改。

print "welcome to your short story"

name = raw_input("What is your name?: ")
age = raw_input("How old are you?: ")
sex = raw_input("Are you a boy or a girl?: ")

if age > 21:
    targetAge = "adult"
elif age < 21:
    targetAge = "kid"


print "My name is ",name,"and I am a " ,age,"year old ",targetAge,"."

所以,简单来说,当它被打印出来的时候,应该显示为“我的名字是_____,我是一名__岁的孩子/成年人。”这取决于他们输入的数字。我之所以不使用int()这个函数,是因为老师没有提到过这个,毕竟今天是上课的第一天,所以我只按照老师讲的内容来做。

0

1) 你把输入的年龄用字符串“成人”和“孩子”覆盖了。
2) 你需要处理年龄等于21岁的情况。
3) 输入的年龄需要转换成整数。

让我们重写你的代码,看看怎么改进:

print "welcome to your short story"

name = raw_input("Input your name: ")
# Convert the input to an integer.
age = int(raw_input("Input your age: "))

# This is the status variable being either adult or child
# before you were overriding age variable with adult or kid
status = ""

# Also, you have to handle the case where the age equals 21, before 
# you were just checking if it is less or greater than 21
if age >= 21:
    status = "adult"
elif age < 21:
    status = "kid"

print "My name is ", name ," and I am a " , age ," year old " , status

撰写回答