python 學習筆記01

python學習過程遇到一些問題記錄:


1、 IndentationError:expected an indented block錯誤的解決辦法

一句話?有冒號的下一行往往要縮進,該縮進就縮進

參考資料:http://blog.csdn.net/hongkangwl/article/details/16344749


2、17個新手常見Python運行時錯誤

初學 Python 時,想要弄懂 Python 的錯誤信息的含義可能有點復雜。這里列出了常見的的一些讓你程序 crash 的運行時錯誤。

1)忘記在?if?,?elif?,?else?,?for?,?while?,?class?,def?聲明末尾添加 :(導致 “SyntaxError :invalid syntax”)

該錯誤將發生在類似如下代碼中:

if?spam?==?42print('Hello!')

2)使用 = 而不是 ==(導致“SyntaxError: invalid syntax”)

?= 是賦值操作符而 == 是等于比較操作。該錯誤發生在如下代碼中:

if?spam?=?42:print('Hello!')

3)錯誤的使用縮進量。(導致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)

記住縮進增加只用在以:結束的語句之后,而之后必須恢復到之前的縮進格式。該錯誤發生在如下代碼中:

print('Hello!')print('Howdy!')或者:if?spam?==?42:print('Hello!')print('Howdy!')或者:if?spam?==?42:
print('Hello!')

4)在?for?循環語句中忘記調用?len()?(導致“TypeError: 'list' object cannot be interpreted as an integer”)

通常你想要通過索引來迭代一個list或者string的元素,這需要調用?range()?函數。要記得返回len?值而不是返回這個列表。

該錯誤發生在如下代碼中:

spam?=?['cat',?'dog',?'mouse']for?i?in?range(spam):print(spam[i])

5)嘗試修改string的值(導致“TypeError: 'str' object does not support item assignment”)

string是一種不可變的數據類型,該錯誤發生在如下代碼中:

spam?=?'I?have?a?pet?cat.'spam[13]?=?'r'print(spam)

而你實際想要這樣做:

spam?=?'I?have?a?pet?cat.'spam?=?spam[:13]?+?'r'?+?spam[14:]
print(spam)

6)嘗試連接非字符串值與字符串(導致 “TypeError: Can't convert 'int' object to str implicitly”)

該錯誤發生在如下代碼中:

numEggs?=?12print('I?have?'?+?numEggs?+?'?eggs.')

而你實際想要這樣做:

numEggs?=?12print('I?have?'?+?str(numEggs)?+?'?eggs.')或者:numEggs?=?12print('I?have?%s?eggs.'?%?(numEggs))

7)在字符串首尾忘記加引號(導致“SyntaxError: EOL while scanning string literal”)

該錯誤發生在如下代碼中:

print(Hello!')或者:print('Hello!)或者:myName?=?'Al'print('My?name?is?'?+?myName?+?.?How?are?you?')

8)變量或者函數名拼寫錯誤(導致“NameError: name 'fooba' is not defined”)

該錯誤發生在如下代碼中:

foobar?=?'Al'print('My?name?is?'?+?fooba)或者:spam?=?ruond(4.2)或者:spam?=?Round(4.2)

9)方法名拼寫錯誤(導致 “AttributeError: 'str' object has no attribute 'lowerr'”)

該錯誤發生在如下代碼中:

spam?=?'THIS?IS?IN?LOWERCASE.'spam?=?spam.lowerr()

10)引用超過list最大索引(導致“IndexError: list index out of range”)

該錯誤發生在如下代碼中:

spam?=?['cat',?'dog',?'mouse']
print(spam[6])

11)使用不存在的字典鍵值(導致“KeyError:‘spam’”)

該錯誤發生在如下代碼中:

spam?=?{'cat':?'Zophie',?'dog':?'Basil',?'mouse':?'Whiskers'}
print('The?name?of?my?pet?zebra?is?'?+?spam['zebra'])

12)嘗試使用Python關鍵字作為變量名(導致“SyntaxError:invalid syntax”)

Python關鍵不能用作變量名,該錯誤發生在如下代碼中:

class?=?'algebra'

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

13)在一個定義新變量中使用增值操作符(導致“NameError: name 'foobar' is not defined”)

不要在聲明變量時使用0或者空字符串作為初始值,這樣使用自增操作符的一句spam += 1等于spam = spam + 1,這意味著spam需要指定一個有效的初始值。

該錯誤發生在如下代碼中:

spam?=?0spam?+=?42eggs?+=?42

14)在定義局部變量前在函數中使用局部變量(此時有與局部變量同名的全局變量存在)(導致“UnboundLocalError: local variable 'foobar' referenced before assignment”)

在函數中使用局部變來那個而同時又存在同名全局變量時是很復雜的,使用規則是:如果在函數中定義了任何東西,如果它只是在函數中使用那它就是局部的,反之就是全局變量。

這意味著你不能在定義它之前把它當全局變量在函數中使用。

該錯誤發生在如下代碼中:

someVar?=?42def?myFunction():print(someVar)someVar?=?100myFunction()

15)嘗試使用 range()創建整數列表(導致“TypeError: 'range' object does not support item assignment”)

有時你想要得到一個有序的整數列表,所以 range() 看上去是生成此列表的不錯方式。然而,你需要記住 range() 返回的是 “range object”,而不是實際的 list 值。

該錯誤發生在如下代碼中:

spam?=?range(10)
spam[4]?=?-1

也許這才是你想做:

spam?=?list(range(10))
spam[4]?=?-1

(注意:在 Python 2 中 spam = range(10) 是能行的,因為在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就會產生以上錯誤)

16)不錯在 ++ 或者 -- 自增自減操作符。(導致“SyntaxError: invalid syntax”)

如果你習慣于例如 C++ , Java , PHP 等其他的語言,也許你會想要嘗試使用 ++ 或者 -- 自增自減一個變量。在Python中是沒有這樣的操作符的。

該錯誤發生在如下代碼中:

spam?=?1spam++

也許這才是你想做的:

spam?=?1spam?+=?1

17)忘記為方法的第一個參數添加self參數(導致“TypeError: myMethod() takes no arguments (1 given)”)

該錯誤發生在如下代碼中:

class?Foo():def?myMethod():print('Hello!')
a?=?Foo()
a.myMethod()

3、python 導入模塊出錯 ImportError: No module named 'request'

import?request

解決方法:pip install requests

4、Python3中,已經安裝了bs4(Beautifulsoup 4)了,但是卻還是出錯:ImportError: No module named BeautifulSoup

BeautifulSoup 的安裝:
安裝方法:
1 : apt-get install python-bs4
2 : easy_install beautifulsoup4
3 : pip install beautifulsoup4
4 :源碼安裝: python setup.py install
?根據不同的操作系統,選用不同的安裝方法,這些方法都能安裝成功,不同點在于安裝的工具不同。
?采用的是第四種安裝方法,下面我來簡要介紹下第四種安裝方法:
?curl http://www.crummy.com/software/BeautifulSoup/bs4/download/4.1/beautifulsoup4-4.1.2.tar.gz >> beautifulsoup4-4.1.2.tar.gz ?
tar zxvf beautifulsoup4-4.1.2.tar.gz ?
cd beautifulsoup4-4.1.2 ?
python setup.py install ?
Ok ,你就能看到安裝信息,提示安裝成功。
安裝成功,肯定想迫不及待的使用,你打開 python command 窗口,你很 happy 的輸入:

參考資料:

http://isilic.iteye.com/blog/1741918

http://www.crifan.com/python3_after_install_bs4_still_error_importerror_no_module_named_beautifulsoup/

Beautiful源碼下載地址:

https://www.crummy.com/software/BeautifulSoup/bs4/download/?

python多版本共存問題

http://www.cnblogs.com/Yiutto/p/5962906.html




本文轉自 boy461205160 51CTO博客,原文鏈接:http://blog.51cto.com/461205160/1933525


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286491.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ArcGIS實驗教程——實驗二十四:人口密度制圖

ArcGIS實驗視頻教程合集:《ArcGIS實驗教程從入門到精通》(附配套實驗數據)》 一、實驗分析 人口密度是指單位土地面積上居住的人口數,通常以每平方千米或每公頃內的常住人口為單位計算。人口密度同資源、經濟密切結合,因此,科學準確地分析人口密度的分布情況,對合理制定…

Navicat 遠程連接ubuntu出現的問題

2003-Cantt connect to Mysql server to xxxxxxx 解決: vim /etc/mysql/my.cnf 修改bind-address 0.0.0.0 然后重啟mysql: 這時進入mysql可能會報錯: ERROR 2002 (HY000): Cant connect to local MySQL server through socket /v…

WPF效果第一百八十八篇之再玩Expander

大端午節的在屋里吹著空調擼著代碼真是酸爽;閑話也不多扯,直接看今天要分享的效果:1、關于簡單的布局設計:2、前臺先來個死布局,回頭ListBox改模板:<Expander ExpandDirection"Left" Header"控制卡" VerticalAlignment"Bottom" HorizontalAli…

Android之實現長按Webview頁面文字自定義復制、全選、分享、搜索、翻譯功能(支持多語言,博文也有Demo下載地址)

1 需求和效果爆照 瀏覽器app封裝了Webview,然后實現實現長按Webview頁面文字自定義復制、全選、分享、搜索、翻譯功能(支持多語言),都在自己的瀏覽器app里面進行搜索和翻譯,不跳到系統瀏覽器里面去 效果爆照如下,oppo手機效果如下 華為手機效果如下 2 Demo下載地址 De…

中國西北地區專題地圖合集(高清)

1. 西北地區概況圖 2. 西北地區植被類型分布圖 3. NDVI變化趨勢圖 4. 氣候與NDVI的相關性

Apache、tomcat、Nginx常用配置合集

配置文件地址&#xff1a; Apache&#xff1a; /etc/httpd/conf/httpd.conf tomcat&#xff1a; /usr/local/tomcat/conf/server.xml Nginx &#xff1a; /usr/local/nginx/conf/nginx.conf 開機啟動文件&#xff1a;/etc/rc.d/rc.local 啟動方式&#xff1a; Apache&#xff…

使用putty連接linux

使用putty連接linux 快照的使用 &#xff0c;做快照相當于做備份&#xff0c;比如配置好IP&#xff0c;快照一下&#xff0c;下次就可以在回到這里&#xff01; putty下載 最好去官網下載 下載putty.zip如圖所示 如何使用putty 如圖設置好IP然后 save 保存 如…

【WEB API項目實戰干貨系列】- API訪問客戶端(WebApiClient適用于MVC/WebForms/WinForm)(四)

目前最新的代碼已經通過Sqlite NHibernate Autofac滿足了我們基本的Demo需求. 按照既定的要求&#xff0c;我們的API會提供給眾多的客戶端使用, 這些客戶端可以是各種Web站點, APP, 或者是WinForm, WPF, Silverlight等諸如此類的應用&#xff0c;將來還有可能是各種Iot等物聯…

基于 Roslyn 實現代碼動態編譯

基于 Roslyn 實現代碼動態編譯Intro之前做的一個數據庫小工具可以支持根據 Model 代碼文件生成創建表的 sql 語句&#xff0c;原來是基于 CodeDom 實現的&#xff0c;后來改成使用基于 Roslyn 去做了。實現的原理在于編譯選擇的Model 文件生成一個程序集&#xff0c;再從這個程…

【GIS風暴】GIS拓撲關系原理詳解

目 錄 1. 拓撲關系的概念2. 拓撲元素3. 拓撲關系4. 拓撲關系的意義5. 拓撲在ArcGIS中實現1. 拓撲關系的概念 地圖上的拓撲關系是指圖形在保持連續狀態下的變形(縮放、旋轉和拉伸等),但圖形關系不變的性質。 2. 拓撲元素 對二維而言,矢量數據可抽象為點(節點)、線(鏈、…

Android之簡單的文件夾選擇器實現

1、效果爆照 2、代碼實現 前提需要保證app有讀寫權限 activity_select_folder.xml文件如下 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layo…

【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

360極速瀏覽器使用postman

步驟如下&#xff1a;1、將crx文件打包成zip文件2、解壓打包的zip文件&#xff0c;并將_metadata文件夾修改為metadata3、打開360瀏覽器的擴展4、360瀏覽器加載postman插件5、創建快捷方式6、雙擊快捷方式打開postman下載地址&#xff1a;http://pan.baidu.com/s/1c1ZX8XE如果網…

centos 下安裝man手冊

安裝centos minimal版本&#xff0c;發現沒有man手冊 需要安裝一下&#xff0c;yum install man-pages 本文轉自 XDATAPLUS 51CTO博客&#xff0c;原文鏈接:http://blog.51cto.com/xdataplus/1796126

# javascript 總結

# javascript 總結 ## 語法1. 區分大小寫2. 命名規范1. 首字母必須是 字母 _ $2. 其他字符可以是 數字 字母 下劃線 $3. 避開系統的關鍵字4. 單詞和單詞連接方式推薦駝峰命名3. 注釋1. 單行注釋 //注釋的內容2. 多行注釋 /*注釋內容*/4. 語句1. 要用;結尾(推薦做法)2. 如果不寫…

聊聊 C++ 和 C# 中的 lambda 玩法

這幾天在看 C 的 lambda 表達式&#xff0c;挺有意思&#xff0c;這個標準是在 C11標準 加進去的&#xff0c;也就是 2011 年&#xff0c;相比 C# 2007 還晚了個 4 年&#xff0c; Lambda 這東西非常好用&#xff0c;會上癮&#xff0c;今天我們簡單聊一聊。一&#xff1a;語法…

Android之網絡請求通過協程+okhttp的沒有做網絡異常處理導致程序奔潰問題

1 問題 app里面的網絡請求是通過協程+okhttp來實現的,但是沒有做網絡異常處理(域名無法解析、502錯誤等等一系列),導致程序奔潰 2 嘗試 因為app基本上做好了,外面有大幾十個地方調用,然后又有不同的作用域,調用的地方太多了,一開始修改在最外出的網絡請求地方直接加上…

Windows10系統重裝后必不可少的優化步驟

1. 查看系統的激活狀態 Win+R,打開運行,輸入slmgr.vbs -xpr,回車! 可以看到,該系統沒有永久激活,即將過期,過期后部分功能會不可使用,需要重新激活。 2. 徹底關掉Windows Defender 方法一: 打開“命令提示符(管理員)”,然后輸入: reg add "HKEY_LOCAL_MA…

【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲

目錄 【iVX 初級工程師培訓教程 10篇文拿證】01 了解 iVX 完成新年賀卡 【iVX 初級工程師培訓教程 10篇文拿證】02 數值綁定及自適應網站制作 【iVX 初級工程師培訓教程 10篇文拿證】03 事件及猜數字小游戲 【iVX 初級工程師培訓教程 10篇文拿證】04 畫布及我和 iVX 合照 【iV…

visual studio系列(vs)啟動調試網站使用ip+端口局域網訪問

vs系列工具創建web應用時會自動創建一些配置文件&#xff0c;本文章講的是如何修改配置文件&#xff0c;使vs在啟動運行調試情況下 使用ip端口形式在局域網訪問。本文章使用的是vs2015&#xff0c;.net 4.5。步驟如下&#xff1a;1.使用vs創建好你的web應用&#xff0c;打開項目…