python常用变量名_python基础知识整理
Python
Python開發
Python語言
python基礎知識整理
序言:本文簡單介紹python基礎知識的一些重要知識點,用于總結復習,每個知識點的具體用法會在后面的博客中一一補充程序:
一組計算機能識別和執行的指令,是實現某種需求的軟件。
操作系統:
管理和控制計算機軟件與硬件資源的程序;
隔離不同硬件的差異,使開發程序簡單化。
例如,Windows,Linux,Unix。
硬件:
主板--計算機的主要電路系統。
CPU?--主要負責執行程序指令,處理數據。
硬盤--持久化存儲數據的記憶設備,容量大,速度慢。
內存--臨時存儲數據的記憶設備,容量小,速度快。
IO設備--鍵盤、鼠標、顯示器。
Python定義
是一個免費、開源、跨平臺、動態、面向對象的編程語言。
Python程序的執行方式
交互式
在命令行輸入指令,回車即可得到結果。
打開終端
進入交互式:python3
編寫代碼:print(“hello world”)
離開交互式:exit()
文件式
將指令編寫到.py文件,可以重復運行程序。
編寫文件。
打開終端
進入程序所在目錄:cd 目錄
執行程序: python3 文件名
Linux常用命令
1.?pwd:查看當前工作目錄的路徑
2.?ls:查看指定目錄的內容或文件信息
3.?cd:改變工作目錄(進入到某個目錄)
練習:
在指定目錄創建python文件.
--目錄:/home/tarena/1905/month01
--文件名:exercise01.py
2. 在文件中寫入:print(“你好,世界!”)
3. 運行python程序
執行過程
計算機只能識別機器碼(1010),不能識別源代碼(python)。
由源代碼轉變成機器碼的過程分成兩類:編譯和解釋。
編譯:在程序運行之前,通過編譯器將源代碼變成機器碼,例如:C語言。
-- 優點:運行速度快
-- 缺點:開發效率低,不能跨平臺。
解釋:在程序運行之時,通過解釋器對程序逐行翻譯,然后執行。例如Javascript
-- 優點:開發效率高,可以跨平臺;
-- 缺點:運行速度慢。
python是解釋型語言,但為了提高運行速度,使用了一種編譯的方法。編譯之后得到pyc文件,存儲了字節碼(特定于Python的表現形式,不是機器碼)。
源代碼 -- 編譯 --> 字節碼 -- 解釋 --> 機器碼
|————1次———|
解釋器類型
CPython(C語言開發)
Jython (java開發)
IronPython (.net開發)移動到本行開頭:home鍵
移動到本行末尾:end鍵盤
注釋代碼:ctrl?+ /
復制行:ctrl +d
選擇列:鼠標左鍵 + alt
移動行:shift?+ alt + 上下箭頭
智能提示:Ctrl + Space
數據基本運算
pycharm常用快捷鍵
注釋
給人看的,通常是對代碼的描述信息。
單行注釋:以#號開頭。
多行注釋:三引號開頭,三引號結尾。
函數
表示一個功能,函數定義者是提供功能的人,函數調用者是使用功能的人。
例如:
print(數據)?作用:將括號中的內容顯示在控制臺中
變量 =?input(“需要顯示的內容”) 作用:將用戶輸入的內容賦值給變量
定義:關聯一個對象的標識符。
命名:必須是字母或下劃線開頭,后跟字母、數字、下劃線。
變量
不能使用關鍵字(藍色),否則發生語法錯誤:SyntaxError: invalid syntax。
建議命名:字母小寫,多個單詞以下劃線隔開。
class_name
賦值:創建一個變量或改變一個變量關聯的數據。
語法:變量名 = 數據
變量名1 = 變量名2 =?數據
變量名1, 變量名2, = 數據1,?數據2
del 語句
語法:
del 變量名1, 變量名2
作用:
用于刪除變量,同時解除與對象的關聯.如果可能則釋放對象。
自動化內存管理的引用計數:
每個對象記錄被變量綁定(引用)的數量,當為0時被銷毀。
核心數據類型
在python中變量沒有類型,但關聯的對象有類型。
通過type函數可查看。
表示不存在的特殊對象。
作用:占位和解除與對象的關聯。
表示整數,包含正數、負數、0。
空值對象None
整形int
如:?-5, 100, 0
字面值:
十進制:5
二進制:0b開頭,后跟1或者1
八進制:0o開頭,后跟0~7
十六進制:0x開頭,后跟0~9,A~F,a~f
小整數對象池:CPython 中整數 -5 至 256,永遠存在小整數對象池中,不會被釋放并可重復使用。
表示小數,包含正數、負數,0.0)。
字面值:
浮點型float
小數:1.0 ??2.5
科學計數法:e/E (正負號) 指數
1.23e-2 (等同于0.0123)
1.23456e5(等同于123456.0)
字符串str
是用來記錄文本信息(文字信息)。
字面值:雙引號
復數complex
由實部和虛部組成的數字。
虛部是以j或J結尾。
字面值:?1j ????1+1j ??1-1j
布爾bool
用來表示真和假的類型
True 表示真(條件滿足或成立),本質是1
False 表示假(條件不滿足或不成立),本質是0
數據類型轉換
轉換為整形: int(數據)
轉換為浮點型:float(數據)
轉換為字符串:str(數據)
轉換為布爾:bool(數據)
結果為False:bool(0) ?bool(0.0) ?bool(None)
混合類型自動升級:
1 + 2.14 ?返回的結果是 3.14
1 + 3.0 ??返回結果是: ?4.0
運算符
算術運算符
+ 加法
- 減法
* 乘法
/ 除法:結果為浮點數
// 地板除:除的結果去掉小數部分
% 求余
** 冪運算
優先級從高到低:?()
**
* ?/ % //
+ ?-
增強運算符
y += x 等同于 y = y + x
y -= x 等同于 y = y - x
y *= x 等同于 y = y * x
y /= x 等同于 y = y / x
y //= x 等同于 y = y // x
y %= x 等同于 y = y % x
y **= x 等同于 y = y ** x
比較運算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
返回布爾類型的值
比較運算的數學表示方式:0 <= x <= 100
邏輯運算符
與and
表示并且的關系,一假俱假。
示例:
True and True # True
True and False # False
False and True # False
False and False # False
或or
表示或者的關系,一真俱真
示例:
True or True # True
True or False # True
False or True # True
False or False # False
非not
表示取反
例如:
not True ??# 返回False
not False ?# 返回True
短路運算
一但結果確定,后面的語句將不再執行。
身份運算符
語法:
x is y
x is not y
作用:
is?用于判斷兩個對象是否是同一個對象,是時返回True,否則返回False。
is not 的作用與is相反
優先級
高到低:
算數運算符
比較運算符
快捷運算符
身份運算符
邏輯運算符
語句
行
物理行:程序員編寫代碼的行。
邏輯行:python解釋器需要執行的指令。
建議一個邏輯行在一個物理行上。
如果一個物理行中使用多個邏輯行,需要使用分號;隔開。
5. ?如果邏輯行過長,可以使用隱式換行或顯式換行。
隱式換行:所有括號的內容換行,稱為隱式換行
括號包括: ?() ?[] ??{} 三種
顯式換行:通過折行符 (反斜杠)換行,必須放在一行的末尾,目的是告訴解釋器,下一行也是本行的語句。
pass 語句
通常用來填充語法空白。
選擇語句
Ifelifelse語句
作用:
讓程序根據條件選擇性的執行語句。
語法:
if 條件1:
語句塊1
elif 條件2:
語句塊2
else:
語句塊3
說明:
elif 子句可以有0個或多個。
else 子句可以有0個或1個,且只能放在if語句的最后。
if 語句的真值表達式
if 100:
print("真值")
等同于
if bool(100):
print("真值")
條件表達式
語法:變量 = 結果1?if 條件?else 結果2
作用:根據條件(True/False) 來決定返回結果1還是結果2。
循環語句
while語句
作用:
可以讓一段代碼滿足條件,重復執行。
語法:
while 條件:
滿足條件執行的語句
else:
不滿足條件執行的語句
說明:
else子句可以省略。
在循環體內用break終止循環時,else子句不執行。
for 語句
作用:
用來遍歷可迭代對象的數據元素。
可迭代對象是指能依次獲取數據元素的對象,例如:容器類型。
語法:
for 變量列表 in 可迭代對象:
語句塊1
else:
語句塊2
說明:
else子句可以省略。
在循環體內用break終止循環時,else子句不執行。
range 函數
作用:
用來創建一個生成一系列整數的可迭代對象(也叫整數序列生成器)。
語法:
range(開始點,結束點,間隔)
說明:
函數返回的可迭代對象可以用for取出其中的元素
返回的數字不包含結束點
開始點默認為0
間隔默認值為1
跳轉語句
break 語句
跳出循環體,后面的代碼不再執行。
可以讓while語句的else部分不執行。
continue 語句
跳過本次,繼續下次循環。
容器類型
通用操作
數學運算符
+:用于拼接兩個容器
+=:用原容器與右側容器拼接,并重新綁定變量
*:重復生成容器元素
*=:用原容器生成重復元素, 并重新綁定變量
< <= > >= == !=:依次比較兩個容器中元素,一但不同則返回比較結果。
語法:
成員運算符
數據 in 序列
數據 not in 序列
作用:
如果在指定的序列中找到值,返回bool類型。
索引index
作用:訪問容器元素
語法:容器[整數]
說明:
正向索引從0開始,第二個索引為1,最后一個為len(s)-1。
反向索引從-1開始,-1代表最后一個,-2代表倒數第二個,以此類推,第一個是-len(s)。
切片slice
作用:
從容器中取出相應的元素重新組成一個容器。
語法:
容器[(開始索引):(結束索引)(:(步長))]
說明:
小括號()括起的部分代表可省略
結束索引不包含該位置元素
步長是切片每次獲取完當前元素后移動的偏移量
內建函數
len(x) 返回序列的長度
max(x) 返回序列的最大值元素
min(x) 返回序列的最小值元素
sum(x) 返回序列中所有元素的和(元素必須是數值類型)
字符串 str
定義
由一系列字符組成的不可變序列容器,存儲的是字符的編碼值。
編碼
字節byte:計算機最小存儲單位,等于8 位bit.
字符:單個的數字,文字與符號。
字符集(碼表):存儲字符與二進制序列的對應關系。
編碼:將字符轉換為對應的二進制序列的過程。
解碼:將二進制序列轉換為對應的字符的過程。
編碼方式:
--ASCII編碼:包含英文、數字等字符,每個字符1個字節。
--GBK編碼:兼容ASCII編碼,包含21003個中文;英文1個字節,漢字2個字節。
--Unicode字符集:國際統一編碼,舊字符集每個字符2字節,新字符集4字節。
--?UTF-8編碼:Unicode的存儲與傳輸方式,英文1字節,中文3字節。
相關函數
ord(字符串):返回該字符串的Unicode碼。
chr(整數):返回該整數對應的字符串。
單引號內的雙引號不算結束符
雙引號內的單引號不算結束符
換行會自動轉換為換行符n
三引號內可以包含單引號和雙引號
作為文檔字符串
改變字符的原始含義。
字面值
單引和雙引號的區別
三引號作用
轉義字符
’ ?” ?””” ?n ?\ ?t ? ?空字符
原始字符串:取消轉義。
a = r”C:newfiletest.py”
字符串格式化
定義:
生成一定格式的字符串。
語法:
字符串%(變量)
"我的名字是%s,年齡是%s" % (name, age)
類型碼:
%s 字符串 ????%d整數 ????%f 浮點數
列表 list
定義
由一系列變量組成的可變序列容器。
基礎操作
創建列表:
列表名 = []
列表名 =?list(可迭代對象)
添加元素:
列表名.append(元素)
列表.insert(索引,元素)
定位元素:
索引、切片
遍歷列表:
正向:
for?變量名 in?列表名:
變量名就是元素
反向:
for 索引名 in?range(len(列表名)-1,-1,-1):
列表名[索引名]就是元素
刪除元素:
列表名.remove(元素)
del?列表名[索引或切片]
深拷貝和淺拷貝
淺拷貝:復制過程中,只復制一層變量,不會復制深層變量綁定的對象的復制過程。
深拷貝:復制整個依懶的變量。
列表VS字符串
列表和字符串都是序列,元素之間有先后順序關系。
字符串是不可變的序列,列表是可變的序列。
字符串中每個元素只能存儲字符,而列表可以存儲任意類型。
列表和字符串都是可迭代對象。
函數:
將多個字符串拼接為一個。
result = "連接符".join(列表)
將一個字符串拆分為多個。
列表?= “a-b-c-d”.split(“分隔符”)
列表推導式
定義:
使用簡易方法,將可迭代對象轉換為列表。
語法:
變量?= [表達式?for 變量?in 可迭代對象]
變量?= [表達式?for 變量?in 可迭代對象?if 條件]
說明:
如果if真值表達式的布爾值為False,則可迭代對象生成的數據將被丟棄。
列表推導式嵌套
語法:
變量 = [表達式?for 變量1 in 可迭代對象1 for 變量2 in可迭代對象2]
傳統寫法:
result = []
for r in ?["a", "b", "c"]:
for c in ["A", "B", "C"]:
result.append(r + c)
推導式寫法:
result = [r + c for r in list01 for c in list02]
元組tuple
定義
由一系列變量組成的不可變序列容器。
不可變是指一但創建,不可以再添加/刪除/修改元素。
創建空元組:
基礎操作
元組名 =?()
元組名 =?tuple()
創建非空元組:
元組名?= (20,)
元組名?= (1, 2, 3)
元組名?= 100,200,300
元組名 =?tuple(可迭代對象)
獲取元素:
索引、切片
遍歷元組:
正向:
for?變量名 in?列表名:
變量名就是元素
反向:
for 索引名 in?range(len(列表名)-1,-1,-1):
元祖名[索引名]就是元素
作用
元組與列表都可以存儲一系列變量,由于列表會預留內存空間,所以可以增加元素。
元組會按需分配內存,所以如果變量數量固定,建議使用元組,因為占用空間更小。
應用:
變量交換的本質就是創建元組:x, y = y, x
格式化字符串的本質就是創建元祖:"姓名:%s, 年齡:%d" ?% ("tarena", 15)
字典dict
定義
由一系列鍵值對組成的可變映射容器。
映射:一對一的對應關系,且每條記錄無序。
鍵必須惟一且不可變(字符串/數字/元組),值沒有限制。
創建字典:
基礎操作
字典名 =?{鍵1:值1,鍵2:值2}
字典名 =?dict (可迭代對象)
添加/修改元素:
語法:
字典名[鍵]?=?數據
說明:
鍵不存在,創建記錄。
鍵存在,修改映射關系。
獲取元素:
變量?= 字典名[鍵] ?# 沒有鍵則錯誤
遍歷字典:
for?鍵名 in?字典名:
字典名[鍵名]
for?鍵名,值名 in?字典名.items():
語句
刪除元素:
del?字典名[鍵]
字典推導式
定義:
使用簡易方法,將可迭代對象轉換為字典。
語法:
{鍵:值?for 變量?in 可迭代對象}
{鍵:值?for 變量?in 可迭代對象?if 條件}
字典VS 列表
都是可變容器。
獲取元素方式不同,列表用索引,字典用鍵。
字典的插入,刪除,修改的速度快于列表。
列表的存儲是有序的,字典的存儲是無序的。由一系列不重復的不可變類型變量組成的可變映射容器。
相當于只有鍵沒有值的字典(鍵則是集合的數據)。
創建空集合:
集合set
定義
基礎操作
集合名 =?set()
集合名 =?set(可迭代對象)
創建具有默認值集合:
集合名 =?{1, 2, 3}
集合名 =?set(可迭代對象)
添加元素:
集合名.add(元素)
刪除元素:
集合名.discard(元素)
運算
交集&:返回共同元素。
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 & s2 ?# {2, 3}
并集:返回不重復元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 | s2 ?# {1, 2, 3, 4}
補集-:返回只屬于其中之一的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1 - s2 ?# {1}?屬于s1但不屬于s2
補集^:返回不同的的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 ^ s2 ?# {1, 4} ?等同于(s1-s2 | s2-s1)
子集<:判斷一個集合的所有元素是否完全在另一個集合中
超集>:判斷一個集合是否具有另一個集合的所有元素
s1 = {1, 2, 3}
s2 = {2, 3}
s2 < s1 ?# True
s1 > s2 ?# True
相同或不同== !=:判斷集合中的所有元素是否和另一個集合相同。
s1 = {1, 2, 3}
s2 = {3, 2, 1}
s1 == s2 ?# True
s1 != s2 ?# False
子集或相同,超集或相同?<= ?>=
集合推導式
定義:
使用簡易方法,將可迭代對象轉換為集合。
語法:
{表達式?for 變量?in 可迭代對象}
{表達式?for 變量?in 可迭代對象?if 條件}
固定集合 frozenset
定義
不可變的集合。
作用
固定集合可以作為字典的鍵,還可以作為集合的值。
基礎操作
創建固定集合:frozenset(可迭代對象)
運算
等同于set
函數 function
pycharm相關設置
“代碼自動完成”時間延時設置
File -> Settings?-> Editor -> General -> Code Completion?-> Autopopup in (ms):0
快捷鍵:
Ctrl + P 參數信息(在方法中調用參數)
Ctrl + Q 快速查看文檔
Ctrl + Alt + M 提取方法
定義
用于封裝一個特定的功能,表示一個功能或者行為。
函數是可以重復執行的語句塊, 可以重復調用。
作用
提高代碼的可重用性和可維護性(代碼層次結構更清晰)。
定義函數
語法:
def 函數名(形式參數):
函數體
說明:
def 關鍵字:全稱是define,意為”定義”。
函數名:對函數體中語句的描述,規則與變量名相同。
形式參數:方法定義者要求調用者提供的信息。
函數體:完成該功能的語句。
函數的第一行語句建議使用文檔字符串描述函數的功能與參數。語法:函數名(實際參數)
說明:根據形參傳遞內容。
定義:
調用函數
返回值
方法定義者告訴調用者的結果。
語法:
return?數據
說明:
return后沒有語句,相當于返回 None。
函數體沒有return,相當于返回None。
可變/不可變類型在傳參時的區別
不可變類型參數有:
數值型(整數,浮點數,復數)
布爾值bool
None 空值
字符串str
元組tuple
固定集合frozenset
可變類型參數有:
列表 list
字典 dict
集合 set
傳參說明:
不可變類型的數據傳參時,函數內部不會改變原數據的值。
可變類型的數據傳參時,函數內部可以改變原數據。
函數參數
實參傳遞方式argument
位置傳參
定義:實參與形參的位置依次對應。
序列傳參
定義:實參用*將序列拆解后與形參的位置依次對應。
關鍵字傳參
定義:實參根據形參的名字進行對應。
字典關鍵字傳參
定義:實參用**將字典拆解后與形參的名字進行對應。
作用:配合形參的缺省參數,可以使調用者隨意傳參。
語法:
形參定義方式parameter
缺省參數
def 函數名(形參名1=默認實參1, 形參名2=默認實參2, ...):
函數體
說明:
缺省參數必須自右至左依次存在,如果一個參數有缺省參數,則其右側的所有參數都必須有缺省參數。
缺省參數可以有0個或多個,甚至全部都有缺省參數。
位置形參
語法:
def 函數名(形參名1, 形參名2, ...):
函數體
星號元組形參
語法:
def 函數名(*元組形參名):
函數體
作用:
收集多余的位置傳參。
說明:
一般命名為'args'
形參列表中最多只能有一個
命名關鍵字形參
語法:
def 函數名(*, 命名關鍵字形參1, 命名關鍵字形參2, ...):
函數體
def 函數名(*args, 命名關鍵字形參1, 命名關鍵字形參2, ...):
函數體
作用:
強制實參使用關鍵字傳參
雙星號字典形參
語法:
def 函數名(**字典形參名):
函數體
作用:
收集多余的關鍵字傳參
說明:
一般命名為'kwargs'
形參列表中最多只能有一個
參數自左至右的順序
位置形參?--> 星號元組形參?-->?命名關鍵字形參?--> 雙星號字典形參
作用域LEGB
作用域:變量起作用的范圍。
Local局部作用域:函數內部。
Enclosing ?外部嵌套作用域 :函數嵌套。
Global全局作用域:模塊(.py文件)內部。
Builtin內置模塊作用域:builtins.py文件。
由內到外:L -> E -> G -> B
在訪問變量時,先查找本地變量,然后是包裹此函數外部的函數內部的變量,之后是全局變量,最后是內置變量。
定義在函數內部的變量(形參也是局部變量)
只能在函數內部使用
調用函數時才被創建,函數結束后自動銷毀
定義在函數外部,模塊內部的變量。
在整個模塊(py文件)范圍內訪問(但函數內不能將其直接賦值)。
作用:
變量名的查找規則
局部變量
全局變量
global 語句
在函數內部修改全局變量。
在函數內部定義全局變量(全局聲明)。
語法:
global 變量1, 變量2, …
說明
在函數內直接為全局變量賦值,視為創建新的局部變量。
不能先聲明局部的變量,再用global聲明為全局變量。
nonlocal 語句
作用:
在內層函數修改外層嵌套函數內的變量
語法
nonlocal 變量名1,變量名2, ...
說明
在被嵌套的內函數中進行使用
內容來源于網絡,如有侵權請聯系客服刪除
總結
以上是生活随笔為你收集整理的python常用变量名_python基础知识整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白日放歌曲纵酒下一句是什么啊?
- 下一篇: python如何创建一个类_python