目錄
python初始
python的優勢
python的特性
python的應用領域
Linux環境中安裝python
下載python3.11.6
安裝依賴包
解壓python壓縮包
安裝python
編譯及安裝
建立軟連接
測試python3運行
設置國內pip更新源
更新pip版本(必須更新)
windows系統中安裝python
雙擊python安裝程序
安裝完成界面
安裝vscode編譯器
雙擊安裝程序進入安裝界面
設置安裝路徑
選擇開始從菜單文件夾
選擇附加任務
開始安裝
安裝完成后開始運行
安裝vscode插件
安裝python插件
安裝black format(選裝)
設置國內更新源
python的語法基
標識符
python保留字
注釋
單行注釋
多行注釋
語句與縮進
語句
代碼塊
多行語句
pass語句
python常用的數據類型
數字
整形和浮點型
布爾型
python運算符
字符串
字符串的使用
使用字符串注意事項
單引號、雙引號、三引號都是成對出現的
如果字符串中單獨出現單引號或雙引號,可以使用另一種引號定義
當字符串中出現單引號、雙引號等特殊字符時,還可以使用轉義字符定義
字符串的其它用法
列表
列表的定義
列表的取值
可以獲取列表的指定范圍的一組元素
修改列表元素值
添加列表元素
可以把一個元素添加到列表的最后
在列表指定位置前插入新的元素
刪除列表元素
查找列表元素
合并列表
重復列表列表常見問題
元組的創建
元組的操作
字典
字典的創建
字典的取值操作
字典的添加,修改,刪除操作
修改字典中的元素,直接使用存在的鍵賦值
刪除字典中的元素,使用 del函數
字典常見的問題
python初始
python的優勢
Python是一種廣泛使用的編程語言,它因其簡單易學、功能強大和高度可擴展性而受到開發者的青睞。Python的優勢主要體現在以下幾個方面
易于學習和使用
Python的語法簡潔直觀,對新手友好,使得初學者可以快速上手并開始編程。它的代碼結構清晰,可讀性強,類似于閱讀英語,這使得Python代碼易于理解和維護。Python還支持偽代碼的編寫方式,這使得算法的實現更加直觀和簡單。
強大的標準庫和第三方庫
Python擁有豐富的標準庫和第三方庫,覆蓋了從網絡編程到數據分析等各個領域。這些庫為開發者提供了大量現成的工具和框架,使得開發者可以快速構建應用程序,無論是小型腳本還是大型企業級應用。
跨平臺兼容性
作為一種解釋型語言,Python具有良好的跨平臺兼容性,可以在多種操作系統上運行,包括Windows、Linux和macOS。這使得Python程序可以在不同的環境中無縫遷移和部署。
開源和免費
Python是一種開源語言,其解釋器和內置模塊的源代碼都是公開的,這意味著開發者可以自由地查看、修改和分發Python代碼。同時,Python也是免費的,即使用于商業目的,也不需要支付任何費用。
面向對象編程
Python支持面向對象編程(OOP),這是現代編程語言的一個重要特性。它允許開發者通過類和對象來組織代碼,使得代碼更加模塊化和可重用。
可擴展性
Python允許開發者使用C或C++等其他語言編寫擴展模塊,以提高程序的性能。這種可擴展性使得Python可以應用于需要高性能計算的領域,如科學計算和數據分析。
盡管Python具有諸多優勢,但它也存在一些缺點,例如運行速度相對較慢,這是由于其解釋型語言的特性。此外,Python 2和Python 3之間的不兼容性也給一些開發者帶來了遷移和升級的挑戰。然而,Python的優勢仍然使其成為了許多開發者和企業的首選編程語言
python的特性
Python 讓程序編寫的緊湊和可讀。用 Python編寫的程序通?常比同樣的C、C++或Java程序更短小,這是因為以下幾個原因:
高級數據結構使你可以在一條語句中表達復雜的操作
語句組使用縮進代替開始和結束大括號來組織
變量或參數無需聲明
python的應用領域
Python是一種通用編程語言,具有廣泛的應用領域。也是一門學習曲線非常平滑的編程語言,正因如此,Python也成了眾多編程入門同學的首選!
數據科學和機器學習
Python在數據科學和機器學習領域非常流行,因為它有許多強大的庫和框架,如NumPy、Pandas、
Scikit-learn和TensorFlow等
Web開發
Python也可以用于Web開發,因為它有Django和Flask等流行的Web框架
自動化測試
Python還可以用于自動化測試,因為它有許多流行的測試框架,如unittest和pytest等。
網絡爬蟲
Python還可以用于網絡爬蟲,因為它有許多強大的庫和框架,如 Beautifulsoup、Scrapy和
Requests
游戲開發
Python也可以用于游戲開發,因為它有許多流行的游戲引擎,如Pygame和Panda3D等
數據分析
Python還可以用于數據分析,因為它有許多流行的庫和框架,如NumPy、Pandas和Matplotlib等
Linux環境中安裝python
下載python3.11.6
在python官網下載,網址 http://python.org
安裝依賴包
設置yum倉庫設置好centos基礎源和epel擴展源
[root@localhost ~]# yum -y install gcc zlib zlib-devel libffi libffi-devel
?
[root@localhost ~]# yum -y install readline-devel
[root@localhost ~]# yum -y install openssl-devel openss111 openssl11-devel
[root@localhost ~]# export CFLAGS=$(pkg-config --cflags openssl11)
[root@localhost ~]# export LDFLAGS=$(pkg-config --libs openss111)
?
解壓python壓縮包
[root@localhost ~]# tar xvf Python-3.11.6.tar.xz
安裝python
[root@master home]#_cd Python-3.11.6/
[root@master Python-3.11.6]# ./configure --prefix=//usr/local/python3
編譯及安裝
[root@master Python-3.11.6]# make
[root@master Python-3.11.6]# make install
建立軟連接
[root@master Python-3.11.6]# 1n -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@master Python-3.11.6]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
測試python3運行
[root@master Python-3.11.6]# python3
Python 3.11.6 (default, Apr 22 2020, 17:24:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux
Type "help", "copyright", "credits" or "license"for more information.
>>> print('hello world')
>>> hello world
設置國內pip更新源
[root@localhost ~]# cat <<EOF> /root/.config/pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simplLe/
[install]
trusted-host=mirrors.aliyun.com
更新pip版本(必須更新)
[root@localhost ~]# pip3 install --upgrade pip
windows系統中安裝python
雙擊python安裝程序
安裝完成界面
安裝vscode編譯器
在Linux系統中,我們可以直接使用vi編輯器對Python代碼進行編寫在Windows系統中,Python提供了IDLE編譯器,但是使用起來很不友好,我們可以安裝一個vscode編譯工具,對Python進行編譯。安裝過程如下
雙擊安裝程序進入安裝界面
設置安裝路徑
選擇開始從菜單文件夾
選擇附加任務
開始安裝
安裝完成后開始運行
安裝vscode插件
安裝python插件
安裝black format(選裝)
設置國內更新源
python的語法基
標識符
所謂的標識符就是對變量、"常量、函數、類等對象起的名字首先必須說明的是,Python語言在任何場景都嚴格區分大小寫!也就是說A和a代表的意義完全不
同,python對于表示標識符的命名有如下規定:
標識符的長度不受限制,但其中的字符必須是字母、數字、或者下劃線(),而不能使用空格、連字符、標點符號、引號或其他字符。
標識符的第一個字符不能是數字,而必須是字母或下劃線。Python區分大小寫。
不能將Python關鍵字用作標識符。
python保留字
Python保留字,也叫關鍵字,是Python語言官方確定的用作語法去功能的專用標識符,不能把它們用作任何自定義標識符名稱。關鍵字只包含小寫字母。可以通過python提供的庫輸出這些關鍵字:Python的標準庫提供了一個keyword模塊,可以輸出當前版本的所有關鍵字。如下所示
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'as', 'as', 'assert', 'async', 'await', 'break', 'class',
continue', 'def', 'del', 'elif', 'except', 'except', 'finallly', 'for', 'from', 'global'
'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or','pass','raise','return'
'try', 'while', 'with', 'yield']
注釋
我們寫的程序里,不光有代碼,還要有很多注釋。注釋有記說明性質的、幫助性質的,它們在代碼執行過程中相當于不存在,透明的
單行注釋
Python中,以符號"#"為單行注釋的開始,從它往后到本行的末尾,都是注釋內容
多行注釋
Python沒有真正意義上的多行注釋(塊注釋)
語句與縮進
語句
在代碼中,能夠完整表達某個意思、操作或者邏輯的最短代碼馬,被稱為語句。這里強調一下,python的標準語言不需要使用分號。簡單的換行就表示語句已經結東
>>> a=123
>>>b=456
>>> print("hello world")
代碼塊
為完成某一特定功能而聯系在一起的一組語句構成一個代碼塊。有判斷、循環、函數、類等各種代碼塊。代碼塊的首行通常以關鍵字開始,以冒號(:)結束,比如:
10 = 10
if a > 5:
print("a大于5")
else:
print("a小于5")
多行語句
前面的例子中都是多條語句在同一行,但如果一條語句實在太長,也是可以占用多行的,可以使用反斜杠(\)來實現多行語句
print("ni hao\
...wodemingzi\
...jiao zhang san")
pass語句
pass語句是占位語句,它什么都不做,只是為了保證語法的正確性而寫
a=10
if a>5:
print("a大于5")
else:
pass
python常用的數據類型
Python內置的數據類型有數字、字符串、元組、列表和字典
數字
數字類型包括整型、浮點型、布爾型等,聲明時由Python內置的基本數據類型管理變量,在程序的后臺實現數值與類型的關聯,以及轉換等操作。根據變量的值自動動判斷變量的類型,程序員不需要關心變量空間是什么類型,只需知道創建的變量中存放了一個數,通過編碼對這個數值進行操作即可
整形和浮點型
整數使用整型表示,有小數位使用浮點型表示,如為變量賦予整型和浮點型的數值
123
>>> print (x)
>>> x = 1.98
>>> print (x)
布爾型
布爾型是用于邏輯運算,有2個值True、False,表示真和假,如為變量賦布爾型數值
>>> f = True
print (f)
<<>>
>>> if(f):
print(1)
執行結果為1?
python運算符
Python中使用的算術運算符和數學運算中使用的符號基本相同,由+、-、*、/(加、減、乘、除)和小括號組成,運算順序也是先乘除后加減、小括號優先。下面演示幾個示例說明它們的使用方法,示例:四則運算示例代碼如下
>>> x,y = 10,2
>>> print (x+y,x*y,x/y)
12 20 5.0
>>> print (5+8?* 3)
29
>>>?print ((5+8)*3)39
>>>print (5+ 8*3/4)
11.0
?Python 還有兩個算術運算符是%和**,分別實現求模和求冪運算
求模運算取余數,求冪是計算累乘的結果,
>>> 8%5
>>> 8%4
>>> 2**2
>>> 2**4
字符串
Python中的字符串類型是一組包含數字、字母和符號的集合,作為一個整體使用
字符串的使用
在Python中有3種表示字符串的方式,單引號、雙引號、三引號
>>> name=? 'asd'
>>> address=? ''sad''
>>> content= '''das'''
>>> print (name)
>>> print (address)
>>> print (content)
使用字符串注意事項
字符串的定義方式單引號、雙引號、三引號大部分情況下作用用是相同,但在特殊情況中使用也有所區別,下面列出需要注意的地方
單引號、雙引號、三引號都是成對出現的
>>>name="大蘇打'
SyntaxError: EOL while scanning string litera1>>> name = ''大蘇打'''
SyntaxError: EOL while scanning string litera1
如果字符串中單獨出現單引號或雙引號,可以使用另一種引號定義
>>> title1 = "Let' Go! "
>>> print (title1)
Let' Go!
>>> title2 = 'Let" Go !'
>>> print (title2)
Let" Go !
>>> title3 = ''Let' Go ! Let'' Go !'''
>>> print (title3)
Let'Go ! Let"Go !
當字符串中出現單引號、雙引號等特殊字符時,還可以使用轉義字符定義
符是"\",只要在特殊字符前面加上"\',就可以輸出原字符,而不需關注定義字符串使用的是單引號還是雙引號
>>>title= 'Let\' Go!
>>> print (title)
Let' Go!
>>> title = "Let\" Go!"
>>> print (title)
Let" Go!
\(在末尾時) | 續行符 |
\\ | 反斜杠符號 |
\’ | 單引號 |
\” | 雙引號 |
\n | 換行 |
\v | 縱向制表符 |
\t | 橫行制表符 |
\r | 回車 |
字符串的其它用法
Python 的字符串可以進行乘法(*)的操作,使用一個整型數字和字符串相乘。
列表
列表(list)是Python中非常重要的數據類型,通常作為為函數的返回類型。由一組元素組成,列表可以實現添加、刪除和查找操作,元素值可以被修改
列表的定義
列表是Python內置的一種數據結構,由中括號"[]"定義,元素以逗號分開,語法
列表名 = [元素1 ,元素2?
列表的取值
列表中的數據是有序的,按定義時的順序排好,可以單獨取出某一位置元素的數值
>>> num = ['001',002',003']
>>> print(num)
>>> print (num[0])
>>> print (num[1])
>>> print (num[2])
可以獲取列表的指定范圍的一組元素
列表名[起始位置:終止位置] 語法
>>> num = ['001',002','003'
>>> print (num[0:1])
['001']
>>>print(num[0:2])
[001','002']
>>>print(num[0:3])
['001', '002', '003']
>>>print(num[1:2])
[ '002']
>>> print (num[1:3])
['002', '003']
修改列表元素值
可以指定位置修改列表元素值 語法
列表名[索引位置]=值
添加列表元素
可以采用兩種方式,添加向列表中添加元素
可以把一個元素添加到列表的最后
列表名,append(元素值) 語法
>>> num =:["001',002','003']
>>> print (num)
['001', '002', '003']
>>> num.append('004')
>>> print (num)
['001', '002', '003', '004']
在列表指定位置前插入新的元素
語法 :列表名,insert(索引位置,元素值)
>>> num = ['001',002', 003']
>>> num.insert(1,'004')
>>> print (num)
[001', 004', 002', 003']
刪除列表元素
語法:del列表名[索引位置]
>>>num = ['001',002', 003']
>>> del num[1]
>>> print (num)
[001','003']
查找列表元素
語法:元素值in列表名
返回布爾類型True或False。如果查找到,返回True;否則,返回False。示例15:使用關鍵
字in查找列表中是否存在指定的數值
?>>> num = ['001', 002', 003']
?>>> '001' in numTrue
?>>> '004' in num
False
合并列表
多個列表可以使用加號(+)進行合并,加號后面的列表元素會退加到前面列表的后面
使用+合并兩個列表
>>>num1 = ['001', 002']
num2 = ['003',004']
>>> numAll = num1 + num2
>>> print (numAll)
[001','002', '003', '004'
>>> numAll = num2 + num1
>>> print (numAll)
['003', '004', 001', 002']
重復列表列表常見問題
Python中,使用列表實現各種操作時,可能會得到意外的結果。其中最常見的問題是索引越界。索引越界是使用列表時經常犯的一個錯誤。如列表中有3個元素,因為索引位置是從0開始計算,所以最大的索引值是2。如果索引值大于2,表示索引是越界的,程序無法執行
? ? ? ? ? ? ? ? ?淺拷貝問題?? ? ?索引越界錯誤???嵌套循環邏輯錯誤?元素賦值問題
元組的創建
元組(tuple)和列表類似,也是Python的一種數據結構,由不不同的元素組成,每個元素可以存儲不同類型的數據,如字符串、數字、甚至元組。但元組是不可以修改的,即元組創建后不能做任何的修改操作。元組通常表示一行數據,而元組中的元素表示不同的數據功煩元組由關鍵字和小括號定義,一旦創建后就不能修改元組的內容 語法
元組名=?(元素1,元素2,...)
與列表最大的不同是:元組是寫保護的,元組一旦創建就不能做任何的修改
>>>num = ('001',002,,003')
>>>delnum[0]
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
?定義元組num后,嘗試對索引位置0的元素值進行修改,程星序直接報錯。元組與列表的區別如表下
表所示
列表 | 元組 | |
元素 | 方括號 | 圓括號 |
可變性 | 可變 | 不可變 |
操作 | 添加,修改,刪除,搜索 | 搜索 |
在使用時元組與列表區別并不大,那么為什么要使用元組呢?主要是因為元組是不可變
的,操作速度比列表快,而且因為它不可以修改,數據要更加安全,所以要根據實際情況決
定是使用元組還是列表,使程序更加高效合理? ? ? ? ? ? ? ? ? ? ?
元組的操作
元組具有不可變性,所以相比列表的操作要少,其中取值操作與列表是完全相同的
>>> num = ('001',002','003')
>>> print(num[0])
001
>>> print (num[2])
003
與列表的取值操作完全相同,都是使用方括號、索引獲取指定位置的數值?
元組不允許刪除元組中的元素值,但是可以刪除整個元組? 語法 del 元組名
>>>num = ('001',002,,003')
>>>delnum[0]
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item cdeletion
>>> print (num)
('001', '002', "003")
>>>del num
>>>print (num)
Traceback (most recent call last): File "<stdin>", line 1, in <module>
NameError:name'num'isnotdefined
?>>>num = ['001,,002', 003']
>>> tupleNum = tuple(num)
>>> print (type(num))
<class 'list'>
>>> print (type(tupleNum))
<class 'tuple'>
字典
字典(dict)是Python中重要的數據類型,字典是由"鍵健-值"對組成的集合,字典中的值通過鍵來引用
字典的創建
字典的每個元素是鍵值對(key-value)組成,鍵值之間使用冒號分隔,"鍵值對"之間用 逗號隔開,并且被包含在一對花括號中。鍵是唯一的,不能存在多個相|同的值,且它的值是無序的,鍵可以是數字、字符串、元組,一般用字符串作為鍵。定義的語法如下
語法
字典名 =?{鍵1:值1,鍵2:值2, ....)
>>> mobile = {'Tom': 19911111111', 'Alice': 1992222222','Bob': '19933333333'}
>>> print (mobile)
{'Alice': '199222222222', 'Bob': '199333333', 'Tom': '19911111111'}
>>> print (type(mobile))
<class 'dict'>
字典的取值操作
字典的取值與元組和列表有所不同,元組和列表都是通過數字索引獲取對應位置的值,
而字典是通過鍵獲取對應的值
>>> mobile = {'Tom': '199111111', "Alice': '19922222222','Bob': '19933333333'
>>> print (mobile["Tom"])
199111111111
>>> print (mobile["Bob"])
19933333333
字典的添加,修改,刪除操作
字典添加新元素只需要對新鍵進行賦值即可,字典中不存在的鍵,會自動進行添加
>>> mobile = {'Tom':'19911111111', 'Alice': 1992222222'
>>> mobile['Bob'] = '1993333333"
>>> print (mobile)
{'Tom': '1991111111', 'Alice': '19922222222",'Bob':'199333333333'}
?字典鍵值對的鍵名是區分大小寫的。同一個單詞,如果大小寫不同,!則被視為不同的鍵
mobile = {'Tom': '199111111', tom': '1992222222222'}
print (mobile)
'tom': '19922222222', 'Tom': '1991111111'}
修改字典中的元素,直接使用存在的鍵賦值
>>> mobile = {'Tom':'19911111111', Alice':'19922222222'
>>> mobile['Tom'] = '199333333"
>>> print (mobile)
"Tom': '19933333333', Alice': '1992222222"}
刪除字典中的元素,使用 del函數
>>> mobile = {'Tom':'19911111111', Alice': 199222222222'}
>>>del mobile['Tom']
>>> print (mobile)
{'Alice': '199222222222"}
字典常見的問題
字典不能使用"+"運算符執行連接操作
>>> mobile1 = {'Tom':'1991111111','Alice':'199222222222'
>>> mobile2 = {'Tom2': 1991111111', 'Alice2': 199222222222
>>> print (mobile1 + mobile2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'odict' and 'dict
?