首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单Python "if“、"elif”、“Python”

简单Python "if“、"elif”、“Python”
EN

Stack Overflow用户
提问于 2014-10-30 23:15:35
回答 4查看 2.3K关注 0票数 0

在Python的课堂上制作一个“疯狂的Libs”风格的东西,这是我的第一天,我已经学到了大部分我需要知道的东西,但我不知道如何使用"if“、"elif”、“thing”这些东西。这是我到目前为止,基本上,当年龄是输入,我希望它选择的人是成年人还是孩子。

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-10-30 23:28:42

( 1)你正在用孩子的字符串覆盖输入的年龄。2)当年龄等于21岁时,你必须处理这件事。3)年龄输入需要转换为整数。

让我们重写您的代码,看看我们如何改进:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-10-30 23:20:44

正如from所建议的那样,要将输入从字符串转换为int,就需要int函数。

代码语言:javascript
复制
age = int(raw_input("Input your age: "))

字符" 1“、" 2”、" 3“等与数字1、2、3等有区别。有些语言试图为您转换,但python不会这样做,因此您最终会将"32“与”21“进行比较,这是一种苹果与橘子的比较。

此外,虽然您在这个特定的实例中是安全的,但是您将注意到如何在仍然基于原始值进行计算的情况下重新分配。这通常不安全,最好将其赋值给一个新变量:

代码语言:javascript
复制
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结构将只执行一个分支,但最好不要养成在仍在查阅输入值时重写输入值的习惯。

票数 0
EN

Stack Overflow用户

发布于 2014-10-30 23:28:03

我意识到我需要一个不同的价值,并改变了它。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26665042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档