0

为什么这行不通?我一直在搞乱我的 if 语句,它一直给我一个错误并说无效的语法。也许我只是忘记了如何设置操作员。请温柔一点,我刚开始从 Java 切换到 Python。谢谢!

# Create a short program that gets a users age and name

print("Hello there! What is your name?")
myName = raw_input()
print("Okay then %s(myName) how old are you?")
myAge = raw_input()
if myAge < 18
    print("Ah, so you're an adult then!")
else if age >= 18
    print("So you're a kid, huh?")
4

3 回答 3

9

你有几个问题:

  • if myAge < 18并且else if age >= 18都应该在行尾都有冒号。
  • else if应该是elif
  • 你的年龄比较是倒退的。
  • 您的myAge变量不是整数。这是一个字符串。

这是我的做法:

myName = raw_input("Hello there! What is your name? ")
myAge = int(raw_input("Okay then {0} how old are you? ".format(myName)))

if myAge >= 18:
    print("Ah, so you're an adult then!")
else:
    print("So you're a kid, huh?")

如果您使用的是 Python 3,请更改raw_inputinput.

于 2013-04-23T00:58:12.253 回答
3
if myAge < 18

最后缺少冒号

if myAge < 18:
             ^
             |

并考虑使用elif代替else if. 无论哪种方式,最后都需要 a :,所以

elif age >= 18:
              ^
              |

Blender 指出了其他一些问题,例如您的“向后”年龄比较,以及在进行比较之前需要将您收到的作为输入的字符串转换为数字。

于 2013-04-23T00:56:28.777 回答
1

@Xiam:我也是 Python 新手,我发现这种语言“很棒”。要向其他答案添加更多信息,Python 中的所有控制流语句(如 if-else、for、while)都需要尾随冒号 (:)。这是一种告诉解释器后面的代码行开始新的语句块并且可能根据其前面的控制流语句的结果执行的方法。希望能帮助到你。

于 2013-04-23T02:22:02.807 回答