在Python的课堂上制作一个“疯狂的Libs”风格的东西,这是我的第一天,我已经学到了大部分我需要知道的东西,但我不知道如何使用"if“、"elif”、“thing”这些东西。这是我到目前为止,基本上,当年龄是输入,我希望它选择的人是成年人还是孩子。
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发布于 2014-10-30 23:28:42
( 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发布于 2014-10-30 23:20:44
正如from所建议的那样,要将输入从字符串转换为int,就需要int函数。
age = int(raw_input("Input your age: "))字符" 1“、" 2”、" 3“等与数字1、2、3等有区别。有些语言试图为您转换,但python不会这样做,因此您最终会将"32“与”21“进行比较,这是一种苹果与橘子的比较。
此外,虽然您在这个特定的实例中是安全的,但是您将注意到如何在仍然基于原始值进行计算的情况下重新分配。这通常不安全,最好将其赋值给一个新变量:
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/ get结构将只执行一个分支,但最好不要养成在仍在查阅输入值时重写输入值的习惯。
发布于 2014-10-30 23:28:03
我意识到我需要一个不同的价值,并改变了它。
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()函数,是因为从来没有提到过,这实际上是上课的第一天,所以我将按照讲师所做的进行讨论。
https://stackoverflow.com/questions/26665042
复制相似问题