99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2020-09-02 閱讀量: 12511
學習Python函數(shù)時常見的報錯類型

問題:

學習Python函數(shù)時常見的報錯類型有哪些?


答案

下面我們總結(jié)一些我們學習函數(shù)時常見的報錯類型:

# 缺少英文括號后的英文冒號
def func1()
  print('Hello World')
# 報錯:SyntaxError: bad input on line 1
# (語法錯誤:第 1 行輸入有問題)

1,SyntaxError 的意思是“語法錯誤”,而冒號后面的是語法錯誤的細節(jié)。這個例子中的具體細節(jié)為 bad input,一般來說就是你輸入的代碼不符合格式,可能多打或少打了一些必要的字母或者標點。最后的 on line xxx 意思是在哪一行發(fā)現(xiàn)的錯誤,這也有助于你直接去定位。

# 輸入了中文標點(本例中輸入了中文冒號)
def func2():
  print('Hello World')
#報錯:SyntaxError: invalid character in identifier
#(語法錯誤:識別不了不支持的字符)

2,這里的語法錯誤細節(jié)是 invalid character,也就是 Python 語法中不支持的字符。除字符串和注釋外,Python 語法里支持的字符是不支持漢字和中文標點的。

這里的例子中輸入了中文的冒號,Python 當然識別不了啦。所以一定要注意,見到 invalid character 就要看看是不是把括號、冒號、引號等輸入錯啦,平時寫代碼時,我們也要預先把輸入法調(diào)好。

# y = 2 縮進錯誤
def func3():
  x = 1
 y = 2
# 報錯:IndentationError: unindent does not match any outer indentation level
# (縮進錯誤:(y = 2 這一行)縮進變小了,但是其它地方匹配不到和他一樣的縮進層級)

3,IndentationError 指“縮進錯誤”?!癷ndentation” 和“indent” 表示縮進,“unindent” 表示“減少或取消縮進”。我們在第五關(guān)中說過,Python 非常注重縮進的層次,一旦確定了縮進層次,后面就要統(tǒng)一。一開始用兩個或者四個空格作為一個縮進,后面也需要一直保持一樣的標準,否則機器就會識別錯亂。

比如這個例子中,第 2 行 x = 1 用兩個空格表示一個縮進,但第 3 行 y = 2 中變成了一個空格縮進,發(fā)生了報錯語句所說的“unindent”,但在其它代碼行中,找不到同樣是 1 個空格表示縮進的地方,所以報錯了。

# 默認參數(shù)應該放在位置參數(shù)后
def func4(x, y = 1, z):
  print(x, y, z)
# 報錯:SyntaxError: non-default argument follows default argument
# (語法錯誤:非默認參數(shù)被放到了默認參數(shù)后面)

4,這里的語法錯誤細節(jié)中的關(guān)鍵詞是“argument”,意思是“參數(shù)”?!癲efault argument” 表示“默認參數(shù)”。當你看到“arguement”,就要去檢查函數(shù)定義過程中,參數(shù)有沒有出錯啦。

# 全局作用域不能訪問局部變量
def func5():
  x = 1print(x)
# 報錯:NameError: name 'x' is not defined
# (變量名錯誤:變量名 'x' 沒有被定義)

5,這個例子我們在第六關(guān)中說過了,局部變量被函數(shù)這堵“圍墻”隔得嚴嚴實實。在函數(shù)外,不用 global 語句,是無法訪問函數(shù)內(nèi)的局部變量的。

通過以上的代碼,你有沒有發(fā)現(xiàn),雖然這些代碼寫的時候有錯,但我們也能讀懂寫代碼的人要干什么,這就是人腦在綜合處理中比電腦強大得多的證明。

所以,還是一句話,報錯的主要原因是機器太笨不會變通,我們要遷就它。我們可以閱讀報錯的具體信息,回到出錯代碼中對癥下藥、及時修改,讓函數(shù)正常運行,達成程序員日常生活中不可或缺的 debug 成就。

同時我們也要留心報錯的內(nèi)容,將報錯信息復制下來,在網(wǎng)上搜索并記住報錯的具體所指,下次遇到類似的問題也可以從容應對。


33.5795
1
關(guān)注作者
收藏
評論(1)

發(fā)表評論
CDA持證人阿濤哥
2020-09-02

答案

下面我們總結(jié)一些我們學習函數(shù)時常見的報錯類型:

# 缺少英文括號后的英文冒號
def func1()
print('Hello World')
# 報錯:SyntaxError: bad input on line 1
# (語法錯誤:第 1 行輸入有問題)

1,SyntaxError 的意思是“語法錯誤”,而冒號后面的是語法錯誤的細節(jié)。這個例子中的具體細節(jié)為 bad input,一般來說就是你輸入的代碼不符合格式,可能多打或少打了一些必要的字母或者標點。最后的 on line xxx 意思是在哪一行發(fā)現(xiàn)的錯誤,這也有助于你直接去定位。

# 輸入了中文標點(本例中輸入了中文冒號)
def func2():
print('Hello World')
#報錯:SyntaxError: invalid character in identifier
#(語法錯誤:識別不了不支持的字符)

2,這里的語法錯誤細節(jié)是 invalid character,也就是 Python 語法中不支持的字符。除字符串和注釋外,Python 語法里支持的字符是不支持漢字和中文標點的。

這里的例子中輸入了中文的冒號,Python 當然識別不了啦。所以一定要注意,見到 invalid character 就要看看是不是把括號、冒號、引號等輸入錯啦,平時寫代碼時,我們也要預先把輸入法調(diào)好。

# y = 2 縮進錯誤
def func3():
x = 1
y = 2
# 報錯:IndentationError: unindent does not match any outer indentation level
# (縮進錯誤:(y = 2 這一行)縮進變小了,但是其它地方匹配不到和他一樣的縮進層級)

3,IndentationError 指“縮進錯誤”?!癷ndentation” 和“indent” 表示縮進,“unindent” 表示“減少或取消縮進”。我們在第五關(guān)中說過,Python 非常注重縮進的層次,一旦確定了縮進層次,后面就要統(tǒng)一。一開始用兩個或者四個空格作為一個縮進,后面也需要一直保持一樣的標準,否則機器就會識別錯亂。

比如這個例子中,第 2 行 x = 1 用兩個空格表示一個縮進,但第 3 行 y = 2 中變成了一個空格縮進,發(fā)生了報錯語句所說的“unindent”,但在其它代碼行中,找不到同樣是 1 個空格表示縮進的地方,所以報錯了。

# 默認參數(shù)應該放在位置參數(shù)后
def func4(x, y = 1, z):
print(x, y, z)
# 報錯:SyntaxError: non-default argument follows default argument
# (語法錯誤:非默認參數(shù)被放到了默認參數(shù)后面)

4,這里的語法錯誤細節(jié)中的關(guān)鍵詞是“argument”,意思是“參數(shù)”?!癲efault argument” 表示“默認參數(shù)”。當你看到“arguement”,就要去檢查函數(shù)定義過程中,參數(shù)有沒有出錯啦。

# 全局作用域不能訪問局部變量
def func5():
x = 1print(x)
# 報錯:NameError: name 'x' is not defined
# (變量名錯誤:變量名 'x' 沒有被定義)

5,這個例子我們在第六關(guān)中說過了,局部變量被函數(shù)這堵“圍墻”隔得嚴嚴實實。在函數(shù)外,不用 global 語句,是無法訪問函數(shù)內(nèi)的局部變量的。

通過以上的代碼,你有沒有發(fā)現(xiàn),雖然這些代碼寫的時候有錯,但我們也能讀懂寫代碼的人要干什么,這就是人腦在綜合處理中比電腦強大得多的證明。

所以,還是一句話,報錯的主要原因是機器太笨不會變通,我們要遷就它。我們可以閱讀報錯的具體信息,回到出錯代碼中對癥下藥、及時修改,讓函數(shù)正常運行,達成程序員日常生活中不可或缺的 debug 成就。

同時我們也要留心報錯的內(nèi)容,將報錯信息復制下來,在網(wǎng)上搜索并記住報錯的具體所指,下次遇到類似的問題也可以從容應對。



0.0000 0 0 回復
CDA持證人阿濤哥
2020-09-02

答案

下面我們總結(jié)一些我們學習函數(shù)時常見的報錯類型:

# 缺少英文括號后的英文冒號
def func1()
  print('Hello World')
# 報錯:SyntaxError: bad input on line 1
# (語法錯誤:第 1 行輸入有問題)

1,SyntaxError 的意思是“語法錯誤”,而冒號后面的是語法錯誤的細節(jié)。這個例子中的具體細節(jié)為 bad input,一般來說就是你輸入的代碼不符合格式,可能多打或少打了一些必要的字母或者標點。最后的 on line xxx 意思是在哪一行發(fā)現(xiàn)的錯誤,這也有助于你直接去定位。

# 輸入了中文標點(本例中輸入了中文冒號)
def func2():
  print('Hello World')
#報錯:SyntaxError: invalid character in identifier
#(語法錯誤:識別不了不支持的字符)

2,這里的語法錯誤細節(jié)是 invalid character,也就是 Python 語法中不支持的字符。除字符串和注釋外,Python 語法里支持的字符是不支持漢字和中文標點的。

這里的例子中輸入了中文的冒號,Python 當然識別不了啦。所以一定要注意,見到 invalid character 就要看看是不是把括號、冒號、引號等輸入錯啦,平時寫代碼時,我們也要預先把輸入法調(diào)好。

# y = 2 縮進錯誤
def func3():
  x = 1
 y = 2
# 報錯:IndentationError: unindent does not match any outer indentation level
# (縮進錯誤:(y = 2 這一行)縮進變小了,但是其它地方匹配不到和他一樣的縮進層級)

3,IndentationError 指“縮進錯誤”?!癷ndentation” 和“indent” 表示縮進,“unindent” 表示“減少或取消縮進”。我們在第五關(guān)中說過,Python 非常注重縮進的層次,一旦確定了縮進層次,后面就要統(tǒng)一。一開始用兩個或者四個空格作為一個縮進,后面也需要一直保持一樣的標準,否則機器就會識別錯亂。

比如這個例子中,第 2 行 x = 1 用兩個空格表示一個縮進,但第 3 行 y = 2 中變成了一個空格縮進,發(fā)生了報錯語句所說的“unindent”,但在其它代碼行中,找不到同樣是 1 個空格表示縮進的地方,所以報錯了。

# 默認參數(shù)應該放在位置參數(shù)后
def func4(x, y = 1, z):
  print(x, y, z)
# 報錯:SyntaxError: non-default argument follows default argument
# (語法錯誤:非默認參數(shù)被放到了默認參數(shù)后面)

4,這里的語法錯誤細節(jié)中的關(guān)鍵詞是“argument”,意思是“參數(shù)”?!癲efault argument” 表示“默認參數(shù)”。當你看到“arguement”,就要去檢查函數(shù)定義過程中,參數(shù)有沒有出錯啦。

# 全局作用域不能訪問局部變量
def func5():
  x = 1print(x)
# 報錯:NameError: name 'x' is not defined
# (變量名錯誤:變量名 'x' 沒有被定義)

5,這個例子我們在第六關(guān)中說過了,局部變量被函數(shù)這堵“圍墻”隔得嚴嚴實實。在函數(shù)外,不用 global 語句,是無法訪問函數(shù)內(nèi)的局部變量的。

通過以上的代碼,你有沒有發(fā)現(xiàn),雖然這些代碼寫的時候有錯,但我們也能讀懂寫代碼的人要干什么,這就是人腦在綜合處理中比電腦強大得多的證明。

所以,還是一句話,報錯的主要原因是機器太笨不會變通,我們要遷就它。我們可以閱讀報錯的具體信息,回到出錯代碼中對癥下藥、及時修改,讓函數(shù)正常運行,達成程序員日常生活中不可或缺的 debug 成就。

同時我們也要留心報錯的內(nèi)容,將報錯信息復制下來,在網(wǎng)上搜索并記住報錯的具體所指,下次遇到類似的問題也可以從容應對。



32.2574 1 0 回復