2013-04-23 35 views
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?") 

回答

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_inputinput

+0

+1對於很好的完整答案 – Levon 2013-04-23 01:01:41

+0

@Blender如果你不介意鏈接或向我解釋的東西,我會很感激。我一直認爲,爲了在Python中打印一個字符串中的存儲變量,你必須按照「%s」或「%d」等方式做一些事情。你用什麼「{0}」 ? – Xiam 2013-04-23 13:44:33

+0

@Xiam:這是新的字符串格式化語法。 ''{0} {1} {0}'。格式('a','b')'將返回'a b a'。 – Blender 2013-04-23 15:11:30

3
if myAge < 18 

缺少冒號末

if myAge < 18: 
      ^
      | 

,並考慮代替else if使用elif。無論哪種方式,還需要一個:底,所以

elif age >= 18: 
      ^
       | 

攪拌機指出了一些其他的問題,比如你的「落後」的時代相比,而需要你接收輸入的號碼前的字符串轉換你做出比較。

1

@Xiam:我也是新來的Python,我覺得語言「很棒」。爲了給其他答案增加更多信息,Python中的所有控制流語句(如if-else,for,while)都需要尾部冒號(:)。這是一種告訴解釋器的方式,後面的代碼行開始一個新的語句塊,並且可能會根據前面的控制流語句的結果執行。希望能幫助到你。