我是编程和python的新手。虽然,我在www.udacity.com和www.codecademy.com上上了几节课。
我对代码块底部的嵌套if
/ else
语句有问题,“嵌套”if
语句正在运行但是elif
语句之后未按预期运行时输入Age
小于18的值。当我在 Python IDLE v中运行时,我没有收到任何错误消息。 2.5.4 让我相信存在类似于空格的问题,其中if
语句不期望else
或elif
语句并认为代码以嵌套的if
语句结束。
最后一个输出是嵌套if
/ else
语句中两个打印语句中的第一个。
我已经搜索了我的问题的答案,但我找不到任何来源给我这个特定问题的答案,我无法弄清楚代码有什么问题。也许,我只是失明。
print("Welcome")
Name = raw_input("Enter your name ")
print("Hello, " + Name + ".")
Age = raw_input("Enter your age ")
Gender = raw_input("Gender? ")
if Gender == "M" or "Male" or "male" or "boy" or "Boy":
if Age >= 18:
print ("You are " + Name + ", a " + Age + " year old man.")
elif Age < 18:
print ("You are " + Name + ", a " + Age + " year old boy.")
答案 0 :(得分:3)
raw_input
返回文字,你不能理智地*做到这一点:
Age (text) < 18 (number):
您需要将年龄转换为数字,例如
Age = raw_input("Enter your age ")
Age = int(Age)
(*虽然你被允许这样做,所以它不是Python的错误,它只是不能做你想要的)
答案 1 :(得分:-1)
以下是一个工作示例。你将你的年龄作为一个字符串并测试它与18相比。这几乎总是提供值true并显示你是男性来解决这个问题,你可以在测试值之前将年龄作为int。 / p>
同样在测试性别时,您可以通过测试输入的全部大写版本是否等于M或MALE来创建相同的结果,并且对于用户来说更容易,因为您已经删除了他们的区分大小写输入
print("Welcome")
Name = raw_input("Enter your name ")
print("Hello, " + Name + ".")
Age = input("Enter your age ")
Gender = raw_input("Gender? ")
if Gender.upper() == "M" or Gender.upper() == "MALE":
if Age >= 18:
print ("You are " + Name + ", a " + str(Age) + " year old man.")
elif Age < 18:
print ("You are " + Name + ", a " + str(Age) + " year old boy.")