一篇文章带你入门python基础开发
一、Python環境的安裝
1. 下載Python
- 訪問Python官網: https://www.python.org/
- 點擊downloads按鈕,在下拉框中選擇系統類型(windows/Mac OS/Linux等)
- 選擇下載最新版本的Python
2. 安裝Python
-
雙擊下載好的Python安裝包
-
勾選左下角Add Python 3.7 to PATH 選項,然后選擇Install now立刻安裝Python.
-
默認安裝
-
自定義安裝
-
安裝完成
3. 測試是否安裝成功
-
點擊電腦左下角開始按鈕,輸入cmd 進入到windows的命令行模式。
-
在命令行中輸入Python,正確顯示Python版本,即表示Python安裝成功
-
如果在命令行中輸入python出現如下錯誤
-
可能是因為在安裝Python的過程中沒有勾選 Add Python 3.7 to PATH 選項,此時需要手動對Python進行配置。
4. 手動配置Python
-
注意:如果在安裝過程中,已經勾選了 Add Python 3.7 to PATH選項,并且在cmd 命令模式下輸入python指令
-
不報錯,就不需要再手動的配置Python.
-
右鍵此電腦 --> 選擇 屬性
-
選擇高級系統設置–>環境變量–>找到并且雙擊Path
-
雙擊Path,在彈框里點擊新建,找到Python的安裝目錄,把路徑添加進去
-
這里新添加的路徑 E:\python 是Python安裝好以后,Python.exe 這個可執行文件所在的目錄。
二、pip的使用
pip 是一個現代的,通用的Python包管理工具。提供了對 Python包的查找、下載、安裝、卸載的功能,便于我們對Python的資源包進行管理。
1. 安裝
- 在安裝Python時,會自動下載并且安裝pip.
2. 配置
-
在windows命令行里,輸入 pip -V 可以查看pip的版本。
-
如果在命令行里,運行pip -V,出現如下提示:
可能是因為在安裝python的過程中未勾選 Add Python 3.7 to PATH 選項,需要手動的配置pip的環境變量。 -
右鍵此電腦–>環境變量–>找到并且雙擊Path–>在彈窗里點擊新建–>找到pip的安裝目錄,把路徑添加進去。
-這里新添加的路徑 E:\python\Scripts 是Python安裝好以后,pip.exe 這個可執行文件所在的目錄。
3. 使用pip管理Python包
- pip install <包名> 安裝指定的包
- pip uninstall <包名> 刪除指定的包
- pip list 顯示已經安裝的包
- pip freeze 顯示已經安裝的包,并且以指定的格式顯示
4. 修改pip下載源
- 運行pip install 命令會從網站上下載指定的python包,默認是從 https://files.pythonhosted.org/ 網站上下載。這是個國外的網站,遇到網絡情況不好的時候,可能會下載失敗,我們可以通過命令,修改pip現在軟件時的源。 格式:
示例:
pip install ipython -i https://pypi.mirrors.ustc.edu.cn/simple/ 就是從中國科技大學(ustc)的服務器上下載requests(基于python的第三方web框架)
國內常用的pip下載源列表:
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) http://pypi.douban.com/simple/
- 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
- 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
三、運行Python程序
1. 終端運行
- 直接在python解釋器中書寫代碼
- 退出python環境
2. 使用ipython解釋器編寫代碼
- 使用pip命令,可以快速的安裝IPython.
- 運行python文件
- 使用python指令運行后綴為.py的python文件
3. Pycharm
- 盡管上面介紹的方法已經能夠提高我們的編碼速度,但是仍然無法應對我們開發中更加復雜的要求。一般情況下,
- 我們都需要借助工具來輔助我們快速的搭建環境,編寫代碼以及運行程序。
IDE的概念
IDE(Integrated Development Environment)又被稱為集成開發環境。說白了,就是有一款圖形化界面的軟件,
它集成了編輯代碼,編譯代碼,分析代碼,執行代碼以及調試代碼等功能。在我們Python開發中,最常用的IDE是Pycharm.
- pycharm由捷克公司JetBrains開發的一款IDE,提供代碼分析、圖形化調試器,集成測試器、集成版本控制系統等,主要用來編寫Python代碼。
- 下載地址:http://www.jetbrains.com/pycharm/download
Pycharm的安裝:
- 雙擊安裝文件
- 自定義安裝路徑(可以不用設置
- 編輯設置(全部選中)
4. Pycharm的使用介紹
-
運行Pycharm,選擇Create New Project,創建一個新的Python工程。
-
選擇’Pure Python’創建一個新的純Python工程項目,Location表示該項目的保存路徑,Interpreter 用來指定Python解釋器的版本。
-
右擊項目,選擇New,再選擇Python File
-
在彈出的對話框中輸入的文件名HelloPython,點擊OK,表示創建一個Python程序的文本文件,文本文件后綴名默認.py
-
在新建的 firstPythonDemo.py文件里,輸入以下代碼,并在空白處右鍵選擇Run運行,表示輸出python爬蟲字符串。
四、Python
1 注釋
1.1 注釋介紹
-
在我們工作編碼的過程中,如果一段代碼的邏輯比較復雜,不是特別容易理解,可以適當的添加注釋,以輔助自己或者其他編碼人員解讀代碼。
-
注意:注釋是給程序員看的,為了讓程序員方便閱讀代碼,解釋器會忽略注釋。使用自己熟悉的語言,適當的對代碼進行注釋說明是一種良好的編碼習慣。
1.2 注釋的分類
- 在Python中支持單行注釋和多行注釋。
- 單行注釋
以#開頭,#右邊的所有東西當做說明,而不是真正要執行的程序,起輔助說明作用。
- 多行注釋
以’‘‘開始,并以’’’ 結束,我們稱之為多行注釋。
2. 變量以及數據類型
2.1 變量的定義
思考下列代碼有什么問題?
- 不使用變量打印九次 “今天天氣真好”,如果需要變成打印 “今天天氣不好” 需要修改九行代碼
- 對于重復使用,并且經常需要修改的數據,可以定義為變量,來提高編程效率。
- 定義變量的語法為: 變量名 = 變量值。(這里的 = 作用是賦值。)
- 定義變量后可以使用變量名來訪問變量值。
- -定義一個變量表示這個字符串。如果需要修改內容,只需要修改變量對應的值即可
說明:
- 變量即是可以變化的量,可以隨時進行修改。
- 程序就是用來處理數據的,而變量就是用來存儲數據的。
2.2 變量的類型
- 程序中: 在 Python 里為了應對不同的業務需求,也把數據分為不同的類型。 如下圖所示:
2.3 查看數據類型
-
在python中,只要定義了一個變量,而且它有數據,那么它的類型就已經確定了,不需要咱們開發者主動的去說明它的類型,系統會自動辨別。也就是說在使用的時候 “變量沒有類型,數據才有類型”。
-
比如下面的示例里,a 的類型可以根據數據來確認,但是我們沒法預測變量 b 的類型。
-
如果臨時想要查看一個變量存儲的數據類型,可以使用 type(變量的名字),來查看變量存儲的數據類型。
3. 標識符和關鍵字
- 計算機編程語言中,標識符是用戶編程時使用的名字,用于給變量、常量、函數、語句塊等命名,以建立起名稱與使用之間的關系。
3.1 命名規范
- 1、標識符命名要做到顧名思義。
起一個有意義的名字,盡量做到看一眼就知道是什么意思(提高代碼可 讀性) 比如: 名字 就定義為 name ,- 定義學生 用 student
a = "zhangsan" # badname = "zhangsan" # goodb = 23 # badage = 23 # good-
2、遵守一定的命名規范。
駝峰命名法,又分為大駝峰命名法和小駝峰命名法。
-
小駝峰式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,
例如:myName、aDog
- 大駝峰式命名法(upper camel case): 每一個單字的首字母都采用大寫字母,例如:
FirstName、LastName.
- 還有一種命名法是用下劃線“_”來連接所有的單詞,比如send_buf.
- Python的命令規則遵循PEP8標準
3.2 關鍵字
關鍵字的概念
一些具有特殊功能的標識符,這就是所謂的關鍵字。 關鍵字,已經被python官方使用了,所以不允許開發者自己定義和關鍵字相同名字的標識符。
- 常見關鍵字
4. 類型轉換
print(int("123")) # 123 將字符串轉換成為整數print(int(123.78)) # 123 將浮點數轉換成為整數print(int(True)) # 1 布爾值True轉換成為整數是 1print(int(False)) # 0 布爾值False轉換成為整數是 0# 以下兩種情況將會轉換失敗 - '''123.456 和 12ab 字符串,都包含非法字符,不能被轉換成為整數,會報錯print(int("123.456"))print(int("12ab"))'''f1 = float("12.34")print(f1) # 12.34print(type(f1)) # float 將字符串的 "12.34" 轉換成為浮點數 12.34f2 = float( 23 )print(f2) # 23.0print(type(f2)) # float 將整數轉換成為了浮點數str1 = str( 45 )str2 = str(34.56)str3 = str(True)print(type(str1),type(str2),type(str3))5. 運算符
5.1 算數運算符
下面以a=10 ,b=20為例進行計算
-
注意:混合運算時,優先級順序為: ** 高于 * / % // 高于 + - ,為了避免歧義,建議使用 () 來處理運
-
算符優先級。 并且,不同類型的數字在進行混合運算時,整數將會轉換成浮點數進行運算。
-
如果是兩個字符串做加法運算,會直接把這兩個字符串拼接成一個字符串。
-
如果是數字和字符串做加法運算,會直接報錯。
-
如果是數字和字符串做乘法運算,會將這個字符串重復多次。
5.2 賦值運算符
5.3 復合賦值運算符
5.4 比較運算符
5.5 邏輯運算符
6. 輸入輸出
6.1 輸出
- 普通輸出
python中變量的輸出
- 格式化輸出
6.2 輸入
在Python中,獲取鍵盤輸入的數據的方法是采用 input 函數(至于什么是函數,咱們以后的章節中講解),那么這個 input 怎么用呢?
看如下示例:
password = input("請輸入密碼:") print('您剛剛輸入的密碼是:%s' % password)注意:
- input()的小括號中放入的是提示信息,用來在獲取數據之前給用戶的一個簡單提示
- input()在從鍵盤獲取了數據以后,會存放到等號右邊的變量中
- input()會把用戶輸入的任何值都作為字符串來對待
7. 流程控制語句
7.1 if判斷語句
- if語句是用來進行判斷的,其使用格式如下:
- demo1:
- 運行結果:
- demo2:
小總結:
- 以上 2 個demo僅僅是age變量的值不一樣,導致結果卻不同;能夠看得出if判斷語句的作用:就是當滿足一定
- 條件時才會執行代碼塊語句,否則就不執行代碼塊語句。
- 注意:代碼的縮進為一個tab鍵,或者 4 個空格
7.2 if else
- 想一想:在使用if的時候,它只能做到滿足條件時要做的事情。那萬一需要在不滿足條件的時候,做某些事,該怎么辦呢?
- 答:使用 if-else
- if-else的使用格式
- demo1
- 結果 1 :大于等于 18 的情況
- 結果 2 :小于 18 的情況
7.3 elif
if 條件: 滿足條件時的操作 else: 不滿足條件時的操作- 想一想:
- 如果有這樣一種情況:當條件A滿足時做事情 1 ;當條件A不滿足、條件B滿足時做事情 2 ;當條件B不滿 足、條件C滿足時做事情 3 ,那該怎么實現呢?
- 答: elif
elif的功能
- elif的使用格式如下:
說明:
- 當xxx1滿足時,執行事情 1 ,然后整個if結束
- 當xxx1不滿足時,那么判斷xxx2,如果xxx2滿足,則執行事情 2 ,然后整個if結束
- 當xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執行事情 3 ,然后整個if結束
- demo:
7.4 for
- 在Python中 for循環可以遍歷任何序列的項目,如一個列表或者一個字符串等。
for循環的格式
for 臨時變量 in 列表或者字符串等可迭代對象: 循環滿足條件時執行的代碼for循環的使用
- 遍歷字符串:
- 輸出結果:
- 打印數字
- 輸出結果:
- 0
- 1
- 2
- 3
- 4
7.5 range
- range 可以生成數字供 for 循環遍歷,它可以傳遞三個參數,分別表示 起始、結束和步長。
8. 數據類型高級
8.1 字符串高級
字符串的常見操作包括:
-
獲取長度:len len函數可以獲取字符串的長度。
-
查找內容:find 查找指定內容在字符串中是否存在,如果存在就返回該內容在字符串中第一次出現的開始位置索引值,如果不存在,則返回-1.
-
判斷:startswith,endswith 判斷字符串是不是以誰誰誰開頭/結尾
-
計算出現次數:count 返回 str在start和end之間 在 mystr里面出現的次數
-
替換內容:replace 替換字符串中指定的內容,如果指定次數count,則替換不會超過count次。
-
切割字符串:split 通過參數的內容切割字符串
-
修改大小寫:upper,lower 將字符串中的大小寫互換
-
空格處理:strip 去空格
-
字符串拼接:join 字符串拼接
8.2 列表高級
列表的增刪改查
- 添加元素
添加元素有一下幾個方法:- append 在末尾添加元素
- insert 在指定位置插入元素
- extend 合并兩個列表
- append
append會把新元素添加到列表末尾
- insert
insert(index, object) 在指定位置index前插入元素object
- extend
通過extend可以將另一個列表中的元素逐一添加到列表中
- 修改元素
我們是通過指定下標來訪問列表元素,因此修改元素的時候,為指定的列表下標賦值即可。
- 查找元素
- 所謂的查找,就是看看指定的元素是否存在,主要包含一下幾個方法:
- in 和 not in
python中查找的常用方法為:
- in(存在),如果存在那么結果為true,否則為false
- not in(不存在),如果不存在那么結果為true,否則false
說明:
- in的方法只要會用了,那么not in也是同樣的用法,只不過not in判斷的是不存在
- 刪除元素
- 類比現實生活中,如果某位同學調班了,那么就應該把這個條走后的學生的姓名刪除掉;在開發中經常會用到刪除這種功能。
列表元素的常用刪除方法有:
- del:根據下標進行刪除
- pop:刪除最后一個元素
- remove:根據元素的值進行刪除
del
- pop
- remove
8.3 元組高級
- Python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號,列表使用方括號。
-
訪問元組
-
修改元組
-
python中不允許修改元組的數據,包括不能刪除其中的元素。
-
定義只有一個元素的元組,需要在唯一的元素后寫一個逗號
8.4 切片
- 切片是指對操作的對象截取其中一部分的操作。字符串、列表、元組都支持切片操作。
- 切片的語法:[起始:結束:步長],也可以簡化使用 [起始:結束]
- 注意:選取的區間從"起始"位開始,到"結束"位的前一位結束(不包含結束位本身),步長表示選取間隔。
8.5 字典高級
- 查看元素
除了使用key查找數據,還可以使用get來獲取數據
- 修改元素
字典的每個元素中的數據是可以修改的,只要通過key找到,即可修改
結果:
修改之前的字典為 {'name': '班長', 'id': 100} 修改之后的字典為 {'name': '班長', 'id': 200}- 添加元素
如果在使用 變量名[‘鍵’] = 數據 時,這個“鍵”在字典中,不存在,那么就會新增這個元素 - demo:添加新的元素
-
結果:
添加之前的字典為:{‘name’: ‘班長’}
添加之后的字典為:{‘name’: ‘班長’, ‘id’: 100} -
刪除元素
對字典進行刪除操作,有一下幾種: -
del
-
clear()
demo:del刪除指定的元素
- 結果
刪除前,{‘name’: ‘班長’, ‘id’: 100}
刪除后,{‘id’: 100}
- del刪除整個字典
- 結果
刪除前,{‘name’: ‘monitor’, ‘id’: 100}
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘info’ is not defined
- clear清空整個字典
- 結果
- 字典的遍歷
9. 函數
- 思考:下列代碼的問題
9.1 定義函數
- 定義函數的格式如下:
- 示例:
9.2 調用函數
- 定義了函數之后,就相當于有了一個具有某些功能的代碼,想要讓這些代碼能夠執行,需要調用它
- 調用函數很簡單的,通過 函數名() 即可完成調用
- 函數定義好以后,函數體里的代碼并不會執行,如果想要執行函數體里的內容,需要手動的調用函數。
- 每次調用函數時,函數都會從頭開始執行,當這個函數中的代碼執行完畢后,意味著調用結束了。
9.3 函數參數
- 思考一個問題,如下:
- 現在需要定義一個函數,這個函數能夠完成 2 個數的加法運算,并且把結果打印出來,該怎樣設計?下面的代- 碼可以嗎?有什么缺陷嗎?
- 為了讓一個函數更通用,即想讓它計算哪兩個數的和,就讓它計算哪兩個數的和,在定義函數的時候可以讓函數接收數據,就解決了這個問題,這就是 函數的參數
- 定義、調用帶有參數的函數
定義一個add2num(a, b)函數,來計算任意兩個數字之和:
- 注意點:
- 在定義函數的時候,小括號里寫等待賦值的變量名
- 在調用函數的時候,小括號里寫真正要進行運算的數據
- 調用帶有參數函數的運行過程:
- 調用函數時參數的順序
- 定義時小括號中的參數,用來接收參數用的,稱為 “形參”
- 調用時小括號中的參數,用來傳遞給函數用的,稱為 “實參”
9.4 函數返回值
-
“返回值”介紹
-
現實生活中的場景:
-
我給女兒 10 塊錢,讓她給我買個冰淇淋。這個例子中, 10 塊錢是我給女兒的,就相當于調用函數時傳遞到參數,讓女兒買冰淇淋這個事情最終的目標,我需要讓她把冰淇淋帶回來,此時冰淇淋就是返回值
- 綜上所述:
所謂“返回值”,就是程序中函數完成一件事情后,最后給調用者的結果 - 帶有返回值的函數
想要在函數中把結果返回給調用者,需要在函數中使用return - 如下示例:
- 或者
9.5 局部變量
-
什么是局部變量
如下圖所示:
-
局部變量,就是在函數內部定義的變量
-
其作用范圍是這個函數內部,即只能在這個函數中使用,在函數的外部是不能使用的
9.6 全局變量
- 如果一個變量,既能在一個函數中使用,也能在其他的函數中使用,這樣的變量就是全局變量
- 在函數外邊定義的變量叫做全局變量
- 全局變量能夠在所有的函數中進行訪問
10. 文件
10.1 文件的打開與關閉
- 打開文件/創建文件
- 在python,使用open函數,可以打開一個已經存在的文件,或者創建一個新文件
open(文件路徑,訪問模式)
- 示例如下:
- 說明:
- 關閉文件
10.2 文件的讀寫
- 寫數據(write)
- 使用write()可以完成向文件寫入數據
- demo: 新建一個文件 file_write_test.py,向其中寫入如下代碼:
-
運行之后會在file_write_test.py文件所在的路徑中創建一個文件test.txt,并寫入內容,運行效果顯示如下:
-
注意:
-
如果文件不存在,那么創建;如果存在那么就先清空,然后寫入數據
讀數據(read)
- 使用read(num)可以從文件中讀取數據,num表示要從文件中讀取的數據的長度(單位是字節),如果沒有傳入num,那么就表示讀取文件中所有的數據
- demo: 新建一個文件file_read_test.py,向其中寫入如下代碼:
- 運行現象:
注意:
- 如果用open打開文件時,如果使用的"r",那么可以省略 open(‘test.txt’)
讀數據(readline)
- readline只用來讀取一行數據。
讀數據(readlines)
- readlines可以按照行的方式把整個文件中的內容進行一次性讀取,并且返回的是一個列表,其中每一行為列表的 一個元素。
10.3 序列化和反序列化
- 通過文件操作,我們可以將字符串寫入到一個本地文件。但是,如果是一個對象(例如列表、字典、元組等),就無
- 法直接寫入到一個文件里,需要對這個對象進行序列化,然后才能寫入到文件里。
- 設計一套協議,按照某種規則,把內存中的數據轉換為字節序列,保存到文件,這就是序列化,反之,從文件的字 節序列恢復到內存中,就是反序列化。
- 對象—》字節序列 === 序列化
- 字節序列–》對象 ===反序列化
Python中提供了JSON這個模塊用來實現數據的序列化和反序列化。
JSON模塊
- JSON(JavaScriptObjectNotation, JS對象簡譜)是一種輕量級的數據交換標準。JSON的本質是字符串。
- 使用JSON實現序列化
JSON提供了dump和dumps方法,將一個對象進行序列化。 - dumps方法的作用是把對象轉換成為字符串,它本身不具備將數據寫入到文件的功能。
- dump方法可以在將對象轉換成為字符串的同時,指定一個文件對象,把轉換后的字符串寫入到這個文件里。
使用JSON實現反序列化
- 使用loads和load方法,可以將一個JSON字符串反序列化成為一個Python對象。
- loads方法需要一個字符串參數,用來將一個字符串加載成為Python對象。
- load方法可以傳入一個文件對象,用來將一個文件對象里的數據加載成為Python對象。
11. 異常
- 程序在運行過程中,由于我們的編碼不規范,或者其他原因一些客觀原因,導致我們的程序無法繼續運行,此時,程序就會出現異常。如果我們不對異常進行處理,程序可能會由于異常直接中斷掉。為了保證程序的健壯性,我們
在程序設計里提出了異常處理這個概念。
11.1 讀取文件異常
- 在讀取一個文件時,如果這個文件不存在,則會報出FileNotFoundError錯誤。
11.2 try…except語句
- try…except語句可以對代碼運行過程中可能出現的異常進行處理。 語法結構:
- 示例:
參考資料:
尚硅谷Python爬蟲教程小白零基礎速通(含python基礎+爬蟲案例)
總結
以上是生活随笔為你收集整理的一篇文章带你入门python基础开发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实例化对象是什么意思,什么是实例化,什么
- 下一篇: 3.Python3标准库--数据结构