语法错误无效。也许我的运营商?

时间:2013-04-23 00:54:44

标签: python

为什么要赢得这项工作?我一直在搞乱我的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?")

3 个答案:

答案 0 :(得分:9)

你遇到了一些问题:

  • if myAge < 18else 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_input更改为input

答案 1 :(得分:3)

if myAge < 18

在结尾处缺少冒号

if myAge < 18:
             ^
             |

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

elif age >= 18:
              ^
              |

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

答案 2 :(得分:1)

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