简单的Python "if", "elif", "else
我在上课时用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