2013-01-11 54 views
0

我正在嘗試此代碼,但我一直遇到問題。我不斷收到消息「無效語法」,並將「maracs」突出顯示爲語法錯誤。我用幾個不存在的詞代替它,並修改了代碼,但它仍然給我同樣的錯誤。是的,我的變量是隨機詞。另外,我真的需要答案很簡單,因爲我幾乎無法理解我在互聯網上找到的所有信息。究竟是什麼「無效的語法」,爲什麼我一直在Python中獲取它?

start = input("On what day will you be leaving? (1 to 7 representing Monday to Sunday respectively.)" 
maracs = input("How many days will your stay be?") 
pooper = int(start) + int(maracs) 
lob = pooper % 7 
if lob = 0: 
print("You will arrive on Day 7 of the week of your arrival.") 
else 
print("You will arrive on Day "lob "of the week of your arrival.") 

此外,我有另一個問題。當我嘗試使用其他代碼時,我不斷收到「NameError」。請用簡單的方法幫助定義「NameError」。

a = All 
b = work 
d = no 
e = play 
f = makes 
g = Jack 
h = a 
i = dull 
j = boy 

print(a, b, "and", d, e, f, g, h, i, j) 
+0

語法無效僅僅意味着你寫的代碼不能被解釋爲python的有效指令。 「語法」是指通常所說的一種語言的規則和結構,但也是在編程中。 – ApproachingDarknessFish

+2

作爲一個方面說明 - 每當你在一條看起來很好的線上出現'SyntaxError'時,它通常*意味着在前一行有一個未封閉的括號。這是因爲python會自動連接行,直到找到右括號。 – mgilson

+0

@ValekHalfHeart:我非常確定OP瞭解這一部分。令人費解的是報道的線路看起來不錯;因爲這是前面的問題。 –

回答

9

你忘了前行的右括號:

start = input("On what day will you be leaving? (1 to 7 representing Monday to Sunday respectively.)" 

注意,沒有)結束引號之後。由於python允許在使用圓括號時將多行連接在一起,分析程序直到下一行才知道任何錯誤,因爲在那裏得到SyntaxError是因爲之後沒有任何意義。

至於你第二個例子,你需要把你周圍的字符串引號,All不是一個字符串而是一個變量,你沒有定義All

>>> a = All 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'All' is not defined 
>>> a ='All' 
>>> a 
'All' 
0

你沒有關閉托架(括號):

您必須使用括號結束函數。像input('something')一樣。你所做的是:input("On what day will you be leaving..." < - 你忘記了右括號

start = input("On what day will you be leaving? (1 to 7 representing Monday to Sunday respectively.)") 

編輯: 而你在第二個代碼名稱錯誤,因爲你要打印哪個有話變量。你需要把它們放在如" "' '的引用中。當你在沒有" "的情況下編寫它們時,Python會查找具有該名稱的函數/關鍵字。例如: a = "All"