国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

自己編程中遇到的Python錯誤和解決方法匯總整理

2020-02-23 01:31:27
字體:
來源:轉載
供稿:網友

開個貼,用于記錄平時經常碰到的Python的錯誤同時對導致錯誤的原因進行分析,并持續更新,方便以后查詢,學習。
知識在于積累嘛!微笑
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
錯誤:
代碼如下:
>>> def f(x, y): 
    print x, y 
>>> t = ('a', 'b') 
>>> f(t) 
 
Traceback (most recent call last): 
  File "<pyshell#65>", line 1, in <module> 
    f(t) 
TypeError: f() takes exactly 2 arguments (1 given) 

【錯誤分析】不要誤以為元祖里有兩個參數,將元祖傳進去就可以了,實際上元祖作為一個整體只是一個參數,
實際需要兩個參數,所以報錯。必需再傳一個參數方可.
代碼如下:
>>> f(t, 'var2') 
('a', 'b') var2 

更常用的用法: 在前面加*,代表引用元祖
代碼如下:
>>> f(*t) 
'a', 'b' 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
錯誤:
代碼如下:
>>> def func(y=2, x): 
    return x + y 
SyntaxError: non-default argument follows default argument 

【錯誤分析】在C++,Python中默認參數從左往右防止,而不是相反。這可能跟參數進棧順序有關。
代碼如下:
>>> def func(x, y=2): 
    return x + y 
>>> func(1) 


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

錯誤:
代碼如下:
>>> D1 = {'x':1, 'y':2} 
>>> D1['x'] 

>>> D1['z'] 
 
Traceback (most recent call last): 
  File "<pyshell#185>", line 1, in <module> 
    D1['z'] 
KeyError: 'z' 

【錯誤分析】這是Python中字典鍵錯誤的提示,如果想讓程序繼續運行,可以用字典中的get方法,如果鍵存在,則獲取該鍵對應的值,不存在的,返回None,也可打印提示信息.
代碼如下:
>>> D1.get('z', 'Key Not Exist!') 
'Key Not Exist!' 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

錯誤:
代碼如下:
>>> from math import sqrt 
>>> exec "sqrt = 1" 
>>> sqrt(4) 
 
Traceback (most recent call last): 
  File "<pyshell#22>", line 1, in <module> 
    sqrt(4) 
TypeError: 'int' object is not callable 

【錯誤分析】exec語句最有用的地方在于動態地創建代碼字符串,但里面存在的潛在的風險,它會執行其他地方的字符串,在CGI中更是如此!比如例子中的sqrt = 1,從而改變了當前的命名空間,從math模塊中導入的sqrt不再和函數名綁定而是成為了一個整數。要避免這種情況,可以通過增加in <scope>,其中<scope>就是起到放置代碼字符串命名空間的字典。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台东市| 荣成市| 汉沽区| 齐齐哈尔市| 郴州市| 呼和浩特市| 涞源县| 铅山县| 招远市| 陕西省| 精河县| 柏乡县| 桐柏县| 镇平县| 沧州市| 郁南县| 信宜市| 达孜县| 舞阳县| 册亨县| 达日县| 化德县| 探索| 乳山市| 四川省| 广宗县| 凉城县| 河曲县| 宜兴市| 怀宁县| 苍山县| 金溪县| 吕梁市| 宁明县| 会宁县| 宝兴县| 健康| 扬州市| 英山县| 加查县| 康乐县|