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