1. 程式人生 > >新手初學Python最常犯的十個錯誤,其中有你麼

新手初學Python最常犯的十個錯誤,其中有你麼

Python學習交流群865597862!進群免費領取2018最全學習資料!

1. 忘記寫冒號

在 if、elif、else、for、while、class、def 語句後面忘記新增“:”

if spam == 42

print('Hello!')

2. 誤用 “=” 做等值比較

“=”是給變數賦值,“==”才是判斷兩個值是否相等:

score = 60

if score = 60:

print ('passed')

改正:

score = 60

if score == 60:

print ('passed')

3. 變數沒有定義:

if age >= 18:

print ('adult')

print ('END')

會導致:NameError: name ‘age’ is not defined.

改正:

age = 20

if age >= 18:

print ('adult')

print ('END')

4. 字串與非字串連線

錯誤:

num = 12

print('I have ' + num+ ' apples.')

非字串和字串連線的時候,要將非字串轉換為字串型別之後才能連線,改正:

num = 12

print('I have ' + str(num)+ ' apples.')

5. 列表的索引位置

習慣性地認為列表元素的位置是從1開始的:

spam = ['cat', 'dog', 'mouse']

print(spam[3])

列表元素的位置是從0開始的,所以第3個元素“mouse”的索引位置是2,改正:

spam = ['cat', 'dog', 'mouse']

print(spam[2])

6. 使用自增 “++” 自減 “—”

學過c語言或者Java的人會很習慣使用i++或者i—,但在Python中是沒有自增自減操作符的:

spam = 0

spam++

這時可以使用 “+=” 來代替 “++”,改正:

spam = 0

spam += 1

7. 使用關鍵字命名變數

Python 3中一共33個關鍵字:

False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield

自定義變數時,變數名不能和這些關鍵字重複。

8. 索引元素位置時忘記呼叫 len 方法

通過索引位置來獲取列表元素時,忘記要先使用 len 函式來獲取列表的長度:

fam = ['dad', 'mom', 'son']

for i in range(fam):

print(fam[i])

改正:

fam = ['dad', 'mom', 'son']

for i in range(len(fam)):

print(fam[i])

9. 函式中的區域性變數賦值前被使用

num = 42

def myFunction():

print(num)

num = 100

myFunction()

第一行定義了一個全域性變數num,同時函式myFunction( )也定義了一個同名的區域性變數,但程式執行時是先查詢區域性變數的,所以在函式中找到num之後就不到外部查找了,此時就會出現print的時候變數num還沒賦值的錯誤。

10. 縮排問題

和其他語言的語法最大的不同就是,Python不能用括號來表示語句塊,也不能用開始或結束標誌符來表示,而是靠縮排來區分程式碼塊的。

常見的錯誤用法:

(1)

print('Hello')

print('World!')

錯誤是第二行的縮排會導致兩個print語句是包含和被包含的關係,但他們兩者是屬於同一個程式碼塊的,所以應該寫成;

print('Hello')

print('World!')

(2)

if spam == 42:

print('Hello')

print('World!')

錯誤是第三行的縮排,改正的方法有兩種,一是如果兩個print語句是屬於同一程式碼塊的,應該改正為

if spam == 42:

print('Hello')

print('World!')

二是如果第三行的print語句是和if語句是同一級的,則改正為

if spam == 42:

print('Hello')

print('World!')

(3)在Python 3中,縮排的時候,不能Tab和空格混用,每個縮排層次應該選擇只使用Tab或者只使用空格。

Python學習交流群865597862!進群免費領取2018最全學習資料!