①編譯型:
一個整體先編譯為一個半成品文件,重復性高
例:C/C++
②解釋型:
一行一行地去編譯代碼
例:Python
(Python是偏解釋型的,但其實是半解釋半編譯型的)
①靜態語言
需要實現定義好再去使用
例:C/C++
②動態語言(又叫腳本語言)
不需要在編程時定義變量地數據類型
例:Python
源代碼m.py —(Python解釋器)> 字節碼m.pyc —(運行時PVM)>結果
①先把源代碼通過Python解釋器編譯成字節碼
②把編譯好的字節碼轉發到Python虛擬機(PVM)中執行
①單行注釋
python中的單行注釋以#開頭
②多行注釋
多行注釋使用三引號作為開頭和結束符號
①縮進是指每一行代碼開始前的空白區域,用來表示代碼之間的包含和層次關系
②Python中采用嚴格的縮進來表明程序的格式框架。
③代碼縮進需注意:嚴格明確、所屬關系、長度一致
python通常是一行寫完一條語句,但如果語句很長需要換行時,可以使用\來實現
需注意:
在[]、{}、()中的語句,不需要使用反斜槓進行換行
Python是動態語言,變量不需要先定義,隨那隨用,類似於一個標簽
①變量是用來保存和表示數據的占位符號
②python中的變量用來存儲數據,變量采用標識符(名字)來表示,
關聯標識符的過程叫做命名
③變量的定義必須命名規則
④可以使用賦值符號=向變量賦值,揮著修改變量的值
①命名是給變量或其他程序元素關聯名稱或標識符的過程
②命名規則:
大小寫字母、數字、下劃線和漢字及其組合進行命名
③注意:
區分大小寫
首字符不能是數字
不能與保留字相同
中間不能出現空格
長度沒有限制
即命名,命名規則與變量的命名規則相同
又叫保留字,指被編程語言內部定義並保留使用的標識符
①與數學中的整數概念一致,沒有取值范圍的限制
②進制間的運算結果默認以十進制方式顯示
①浮點型與數學中的實數的概念一致,表示帶有小數的數值,必須有小數部分,小數部分可以是0
②E或e表示基是10,後面的整數表示指數,指數的正負使用±表示
③整數的運算精度比浮點數更高
(因為python中的值都是轉化為二進制直接計算的,如果是浮點數二進制進行運算,結果可能取近似值)
①Python中復數可以看做是二元有序實數對(a,b),表示a+bj
其中a是實數部分,b是虛數部分
②實部和虛部都是浮點型
①布爾型數據只有兩個取值:True和False
②bool值沒有操作
③所有的空都是False,所有的非空都是True
以下布爾值都是False:
None、False、0、0.0、0.0+0.0j、空字符串、空列表、空元組、空字典
①type(x)
對變量x進行類型判斷,適用於任何數據類型
②int(x)
將x轉換為一個整數
注意:浮點數類型轉換為整數類型時,小數部分會被直接捨棄(不使用四捨五入)
③float(x)
將x轉換為一個浮點數,默認為六位小數
④complex(a,b)
創建一個復數
(1)算數運算符
x//y:取整除,返回商的整數部分
x**y:冪,返回x的y次冪
(2)賦值運算符
同步賦值語句:
x,y=y,x
(3)復合賦值運算符
(4)比較賦值運算符
(5)邏輯運算符
and、 or、 not
(6)成員運算符
in 、 not in
運算符優先級
(Python中6個與數值運算相關的內置函數)
(1)abs(x): 絕對值
求x的絕對值
x也可以是復數,但由於實部和虛部都是浮點數,所以復數的絕對值也是浮點數
abs(-3+4j) #5.0
(2)divmod(x,y): 除余
(x//y,x%y),輸出為二元組形式(也稱元組類型)
計算x和y的除余結果,返回兩個值,分別是x和y的乘除商x//y,以及x與y的余數x%y
(3)pow(x,y)或pow(x,y,z):冪運算
x** y或x ** y%z ,冪運算
(4)round(x)或round(x,d):四捨五入
對x四捨五入,保留d位小數,無參數d則返回四捨五入的整數值
注意:
並非所有的.5都會進位,將所有x.5的情況分為兩類:
采用“奇進偶不進”的方式運算,即當x為偶數時,x.5並不進位;當x為奇數時,x.5進位
(5)max(x1,x2…xn):最大值
返回裡面的最大值,n沒有限定
(6)min(x1,x2…xn):最小值
返回裡面的最小值,n沒有限定
(1)input() 輸入函數
①格式:
A.變量=input()
B.變量=input(“提示性文字”)
②返回結果:
字符串類型
③注意:
input()是通過換行來讀取數據結果的,所以不能同時多行輸入
要想實現同時輸入多個換行的值,要通過循環+input語句結合實現
④格式轉換:
s=int(input())#強制類型轉換
s=eval(input())
(2)eval() 評估函數
①作用:
把字符串外的引號去掉,將字符串自動識別評估為類型
eval(‘hello’) #出錯
eval(‘“hello”’) #輸出hello
②注意:
eval()處理字符串內容進行運算的結果可以用變量保存
hello=5
eval(‘hello’)
③如果用戶希望輸入一個數字並計算,可以采用以下組合實現
變量=eval(input(“提示性文字”))
即當需要對字符串進行強制類型轉換時,一般不直接使用強制類型轉換,而是用eval()評估函數
(3)print() 輸出函數
①作用:
輸出運算結果
有兩種輸出格式:默認輸出格式和特定格式輸出
②默認格式輸出:
A.僅用於輸出字符串
print(“中國夢,我的夢”) #中國夢,我的夢
print() #輸出空行
B.僅用於輸出一個或多個變量
value=123.456
print(value,value)
C.默認下:
print(,sep="',end=“_”)
sep:指定在同一個print()語句中,變量與變量之間的分隔符,不寫則默認為空格
end:指定多個print()語句之間的分隔符,不寫則默認為換行
③特定格式輸出:
print(‘文字描述%_’ %(變量,…))
(1)字符串的定義:
字符串是一種表示文本的數據類型,根據字符串內容的多少,分為:
①單行字符串:用一對單引號或雙引號包圍的是單行字符串,二者作用相同
②多行字符串:用一對三單引號或三雙引號包圍的是多行字符串,二者作用相同
注意:為什麼Python中會有單引號與雙引號並行的情況?
print(‘今天真是’美好’的一天’)#錯誤,會把美好看作變量
print(‘今天真是"美好"的一天’)#正確,今天真是"美好"的一天
(2)轉義字符
轉義字符由反斜槓\引導,與後面相鄰的字符組成了新的含義
(1)含義:
對字符串中某個字符的檢索成為索引
(2)形式:
<字符串>[序號]
(3)分類:
字符串中每個字符都有一個對應下標,下標編號方式有兩種:正向遞增和反向遞減
如果字符串的長度為L:
正向遞增:0~L-1 向右依次遞增
反向遞減:-1~-L 向左依次遞減
(1)含義:
對字符串中某個子串或區間的檢索稱為切片
(2)形式:
s[start : end : step]
默認從前往後切,正向遞增
step:正負代表方向,大小代表步長
(3)注意:
①切片區間是左閉右開型區間,即獲取的字符串從start到end的子字符串,不包含索引end
②切片的索引序號可以混合使用正向遞增和反響遞減序號
①x+y:連接兩個字符串x與y
②xn或nx :復制n次字符串x
③x in s :如果x是s的字串,返回True,否則返回False
①len(x):返回字符串x的長度
②str(x):返回任意類型x所對應的字符串形式
③chr(x):返回unicode編碼x對應的字符串
④ord(x):返回單字符表示的unicode編碼
⑤oct(x):返回整數x對應的八進制編碼數的小寫形式字符串
⑥hex(x):返回整數x對應的十六進制編碼數的小寫形式字符串
①find方法
作用:檢測字符串是否包含子字符串
形式:str.find(sring,beg=0,end=len(ser))
str指定檢索的字符串
beg開始索引,默認為0
end結束索引,默認為字符串的長度
如果找到,返回索引,如果找不到,結果是-1
②index方法
作用:檢測字符串中是否包含子字符串
形式:str.index(sring,beg=0,end=len(ser))
str指定檢索的字符串
beg開始索引,默認為0
end結束索引,默認為字符串的長度
返回索引,如果找不到,報錯
③replace方法
作用:將舊字符串替換為新字符串
形式:str.replace(old,new[max])
old將被替換的字符串
new新字符串,用於替換old字符串
max可選字符串,替換不超過max次
④split方法
作用:通過指定分隔符對字符串進行切片
形式:str.split(string=“”,num=str.count(string))
string以string為分隔符切片str
num分割次數,可選參數,如果num有指定值,則僅分割num+1個字符串
結果生成列表(可以實現字符串轉列表)
注意:
如果string不在在str中,則不會切片,還是原串
⑤join方法
作用:將括號中所有的元素合並為一個新的字符串
形式:str.join(seq)
seq要連接的元素序列
str連接符
返回通過指定字符連接序列中元素後生成的新字符串
注意:
當seq為字符串類型時,會以每個字符分隔
當seq為列表類型時,會以列表中每個逗號隔開,因為列表中是以逗號隔開最小單元
⑥count方法
作用:統計字符串中某個字符的個數
形式:
str.count(sub,start=0,end=len(str))
sub搜索的字符串
start字符串開始搜索的位置
end字符串中結束搜索的位置
⑦upper方法
作用:將小寫字母轉化為大寫字母
形式:str.upper()
⑧lower方法
作用:將大寫字母轉為小寫字母
形式:str.lower()
format方法:格式化字符串
形式:
<模板字符串>.format(<逗號分隔的參數>)
模板字符串:由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果
槽:用大括號{}表示,相當於占位符,對應format()方法中逗號分隔的參數
說明:
①f-string方法:格式化字符串常量
②f-string本質上並不是字符串常量,而是一個在運行時運算求值的表達式
③對於Python3.6及以後的版本,推薦使用f-string對字符串進行格式化
形式:
f-string在形式上是以f或F修飾符引領的字符串(f’xxx’或 F’xxx’),以大括號{}標明被替換的字段
f"{content:format}"
content:替換並填入字符串的內容,可以是變量、表達式或函數等
{:format}:與format方法類似
注意:
①引號:
f-string大括號內所用的引號不能和大括號外的引號定界符沖突,可根據情況靈活切換
②反斜槓:
大括號外的引號還可以使用\轉義,但大括號內不能使用\轉義
③大括號:
f-string大括號外如果需要顯示大括號,則應輸入連續兩個大括號{ {和}}
(1)簡單分支結構:if語句
(2)選擇分支結構:if…else語句
注意:
雙分支中還有一種更簡潔的表達式:
<表達式1>if<條件>else<表達式2>
適合語句塊中都只包含簡單表達式的情況。
(3)多分支結構:if…elif…else
(4)分支的嵌套
分支的嵌套是指分支中還存在分支的情況,即if語句中還包含著if語句
①形式:
for <循環變量> in <遍歷結構>:
<語句塊>
②遍歷結構可以是字符串、文件、range()函數、組合數據類型
③range()函數的三種用法:
生成一個數字序列
A.range(N): 0~N-1
B.range(start,end): start~end-1
C.range(start,end,step): start~end-1,但有步長:隔step個數取一個
④for語句中的邏輯結構:
將遍歷結構中的每一項拿出來賦值給循環變量,每一項循環變量來執行語句塊,遍歷結構遍歷完成時循環結束
①形式:
while <條件>:
<語句塊>
②當條件不滿足時,循環結束;
當條件表達式永遠為true時,無線循環
③while循環可用於實現多行輸入的情況
無論是while循環還是for循環,其中都可以再包含一個循環,從而構成了循環的嵌套
緊接著執行下一次循環
不起任何作用,用作占位,保持程序結構的完整性
①當for循環、while循環正常執行之後 ,程序會繼續執行else語句中的內容。
else語句只在循環正常執行之後才執行並結束
②else語句中常放置判斷循環執行情況的語句
③else獎勵:可以把循環中的else想象成一種獎勵,只有程序完整執行循環,才執行else語句裡的內容
循環中使用了break或者return之後不會在執行else,continue對else語句沒有影響
當Python中程序報錯時會有異常信息,異常信息中最重要的就是異常類型。
它表明了異常發生的原因,也是程序處理異常的依據
①形式:
try:
要運行的程序語句
except+異常類型:
該異常想輸出的語句
except:
其他異常錯誤想輸出的語句
②和if-else語句的區別:
else語句後不能直接跟內容,而except後可以緊跟內容,但是該內容必須是異常類型名稱
③注意:
平時如果不加try-except語句,如果有異常,編輯器會自動幫我們識別,返回異常,也可以人為修改
①列表是Python中的一種數據結構,可以用於存儲不同類型的數據
②列表索引是從0開始的,可以通過下標索引的方式訪問列表中元素的值
③列表中的元素類型可以不同,列表可以包含列表,列表沒有長度限制
A.以一定的形式存儲一定的數據(列表中的元素之間存在先後順序)
B.存儲一組長度為L的數據(長度為0—L,長度可變)
④注意:
可變數據類型:
隨著程序的修改數據類型定義的元素本身可以修改 的數據類型為可變數據類型
否則,為不可變數據類型
字符串、元組為不可變數據類型
列表、字典、集合為可變數據類型
①[]
s=[]#創建空列表
s=[1,2,3,4,5]
②list()
s=list()#創建空列表
s=list(“12345”)
s=list(12345)#錯誤,list()中要跟序列類型或者range()
①使用for循環遍歷列表
A.值遍歷
for i in s:
print(i)
B.下標遍歷
for i in range(len(s)):
print(s[i])
②使用while循環遍歷列表
(4)列表是一種序列類型,所以擁有序列通用的使用方法
序列類型只有三種:字符串、列表、元組
相同點:
①切片
②索引
③+(拼接)、*(重復)
④in、not in 存不存在
⑤len() 求序列長度
①append()
append(單一元素x):向列表中最後增加一個元素x
②insert()
insert(待插入到i的下標位置,單一元素x):向列表的第i位增加元素x
③extend()
extend(序列):向列表中最後增加一段序列(不僅是列表)中的元素
①del
用保留字方式,結合切片刪除
②s.pop(i)
i是被刪除元素的下標,不加默認刪除最後一位
③s.remove(x)
x是想要刪除元素的值,重復的話只會刪除第一個
④s.clear()
不需要加參數,清空整個列表,變為空列表,但列表還存在
①通過索引切片賦值的方式進行修改
s=[0,1,2,3,4,5]
s=s[0:3]
print(s) #[0, 1, 2]
注意:
如果切片的位置後元素更多,會多增少補
如果切片的位置後元素更少,會正常切,然後補進這些元素(先把左邊元素切掉,再把右邊的元素補進來)
②copy()
將列表復制一份
注意:為什麼不直接用=呢?
因為在python中變量名可以看作是標簽,隨拿隨用
b=a: 賦值相當於變量名賦值,實際空間沒有改變
b=a[:]或b=a.copy() :會單獨開辟一段空間
①in、not in
in(存在):如果存在結果為True,否則為False
not in(不存在):如果不存在結果為True,否則為False
②index(x)
查找列表中元素x第一次出現下標值
(如果不存在,會報錯,可進行異常處理)
③count(x)
查找列表中元素x出現的次數
排序:
①reverse()
反轉列表
②sort()
默認升序排序
s.sort(reverse=True)降序排序
s.sort(key=)key後要跟一個函數,必須是一種排序規則,按照特定順序排序
①常用操作符:列表連接符+、列表復制符*
②常用函數:
min()
max()
sum()
使用時要求列表中的元素必須為同一數據類型
類似於雙分支選擇結構,使用其他列表來創建一個新列表
①普通寫法:
s=[x2 for x in range(1,11)]
等價於:
s=[]
for x in range(1,11):
s.append(x2)
②開放寫法:
s=[x2 for x in range(1,11) if x%20]
等價於:
s=[]
for x in range(1,11):
if x%20:
s.append(x2)
①含義:
元組是不可變的,相當於是不可變的列表
②創建:
使用()小括號或者tuple()函數
①因為元素中的元素值不能被修改,所以元組本身不能進行增、刪、改等操作
只能進行索引、切片、和求長度等序列操作
②如果想修改元組中的值,可以將元組轉換為列表,修改完後,再轉換為元組
③del 關鍵字。元組中不能刪除某一元素值,但能刪除一整個元組
a=(1,2,3,4,5)
del a
#這個元組a就刪除掉了,在內存中就沒有了
①常用操作符:元組連接符+、元組復制符*
②常用函數:
min(tuple)
max(tuple)
sum(tuple)
使用時要求元組中的元素必須為同一數據類型
len(tuple):計算元組中元素的個數
tuple(seq):將列表轉化為元組
元組中只包含一個元素時,需要在元素後面加逗號,否則括號會被當做運算符使用
tup1=(12)
tup2=(12,)
print(tup1,tup2)
①含義:
字典是另一種可變容器模型,且可存儲任意類型對象。
②形式:
字典的每個鍵值 key:value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
③注意:
A.dict 作為 Python 的關鍵字和內置函數,變量名不建議命名為 dict。
B.鍵key一般是唯一的,如果重復最後的一個鍵值對會替換前面的,值value不需要唯一。
C.值value可以取任何數據類型,但鍵key必須是不可變類型的,如字符串,數字或元組。
D.列表與字典的區別:
列表: 下標——值 ,下標索引有大小范圍,所以是有序的順序結構
字典:鍵——值 , 鍵是無序的不能重復的,所以字典裡的元素是無序的,不能通過下標來查找,也不能切片
E.
a=[] #定義列表
a=() #定義元組
a={} #定義字典
①創建字典
A.{}
B.dict()函數
②檢索字典元素
A.使用in運算符檢索 key in dicts
B.使用關鍵字檢索 dict[“key”]
③添加與修改字典元素
利用鍵索引+賦值:dicts[key]=value
④刪除字典元素
A.del
可以用於刪除整個字典,也可以刪除其中某一元素
B.clear()方法
只會清空字典中的數據,但字典還存在,變為空字典
①cmp(dict1, dict2)
比較兩個字典元素。
②len(dict)
計算字典元素個數,即鍵的總數。
③str(dict)
輸出字典可打印的字符串表示。
④type(variable)
返回輸入的變量類型,如果變量是字典就返回字典類型。
⑤sorted(dict)
以key值對字典進行排序,默認為unicode編碼大小
①dict.clear()
刪除字典內所有元素
②dict.copy()
返回一個字典的淺復制
③dict.fromkeys(seq[, val])
創建一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應的初始值
④dict.get(key, default=None)
返回指定鍵的值,如果值不在字典中返回default值
⑤dict.has_key(key)
如果鍵在字典dict裡返回true,否則返回false
⑥dict.items()
以列表返回可遍歷的(鍵, 值) 元組數組
⑦dict.keys()
以列表返回一個字典所有的鍵
⑧dict.setdefault(key, default=None)
和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
⑨dict.update(dict2)
把字典dict2的鍵/值對更新到dict裡
⑩dict.values()
以列表返回字典中的所有值
①①pop(key[,default])
刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。
①②popitem()
返回並刪除字典中的最後一對鍵和值。
①含義:
Python中的集合set是包含0個或多個不重復數據項的無序組合
②使用場景:
因為集合中元素不可重復,可用於當需要對一維數據進行去重或者進行數據重復處理時
③創建:
可以使用{ }或者set()函數創建一個集合
注意創建一個空集合必須使用set()而不是{},因為{}是用來創建一個空字典
①s.add(x)
將元素x添加到集合s中,如果已存在,則不會進行任何操作
②s.update(x)
更新集合,將元素x添加到集合s中,x可以是列表,元組,字典
①s.pop()
從集合s中隨機刪除一個元素,集合為空時返回異常
②s.remove(x)
從集合s中刪除元素x,如果x不在集合中,返回異常
③s.discard(x)
從集合s中刪除元素x,如果x不在集合中,不會返回異常
s.copy()
復制集合,返回集合的一個副本
①s.isdisjoint(t)
判斷集合s和集合t中是否存在相同元素,如果沒有相同元素,返回True
②len(s)
len函數返回集合s中元素的個數
(Python中的集合與數學中集合概念是一致的,方法現用現查即可)
交&
差-
並|
補^
(1)什麼是函數?
函數是組織好的,可重復使用的代碼段
(2)函數的定義
Python定義函數使用def關鍵字,格式:
def 函數名(參數列表):
函數體
return 返回值列表
(3)函數的調用
定義了函數之後,如果想使用函數,就需要調用函數,格式:
函數名(<實參列表>)
注意:函數要先定義後使用
(1)位置參數
函數調用時,默認情況下,實參將按照位置順序傳遞給形參
(2)賦值參數
按照形參名稱輸入實參的方式
(3)默認參數(又叫可選參數)
定義函數時,可以給函數的形式參數設置默認值,這種參數被稱為默認參數
注意:
①如果默認參數沒有傳入值,則直接使用默認值;如果默認參數傳入了值,則使用傳入的新值替代
②帶有默認值的參數一定要位於參數列表的最後面,否則程序運行時會報異常
(4)可變參數(又叫不定長參數)
在函數定義時可以接受任意個參數,可以是0個,1個或者多個
形式:
參數名稱前加星號*,或者加兩個星號**
注意:
①加一個星號的變量:會存放所有未命名的變量參數,為元組
②加兩個星號的變量:會存放命名參數,為字典
(1)函數的返回值是使用return語句來完成的
(2)return語句可以同時返回0個、1個或多個函數運算結果
注意:返回多個值時以元組類型保存,不帶參數值的return語句返回None
(1)無參數,無返回值的函數
(2)無參數,有返回值的函數
(3)有參數,無返回值的函數
(4)有參數,有返回值的函數
函數與函數之前可以嵌套使用
(1)命名空間
①目的:
為了避免變量的名稱發生沖突,Python引入了命名空間的概念
②含義:
命名空間是指名稱到對象的映射,類似於字典:鍵名是變量的名字,值是變量的值。
(2)作用域
命名空間是相互獨立存在的,將命名空間這些層次結構組合起來就是作用域
(3)局部變量
①含義:
在函數內部定義的變量
②作用域:
局部變量的作用域是在函數內部。
只在定義它的函數內有效,一旦函數結束就會消失
(4)全局變量
①含義:
定義在函數外的擁有全局作用域
②作用域:
全局變量可以在整個程序范圍內訪問
③注意:
如果全局變量和局部變量名字相同的情況,則在函數中訪問的是局部變量
④語法形式:
globa <全局變量>
①含義:
形式上匿名函數就是沒有名稱的函數。
但匿名函數並非真的沒有名字,而是將函數名作為函數的結果返回
②形式:
<函數名>=lambda [形參列表]:函數返回值的表達式
③例:以下兩個等價
def s(a,b):
return a+b
print(s(2,3))
s=lambda a,b:a+b
print(s(2,3))
④什麼時候使用lambda函數?
A.定義簡單的,能在一行內表示的函數,返回一個函數類型
B.可以與map、sorted、filter結合使用
⑤注意:
A.lambda表達式中不能包含分支或循環語句
B.lambda函數只能返回一個表達式的值,匿名函數不能直接調用print
C.可以將lambda表達式作為列表的元素,從而實現跳轉表的功能,也就是函數的列表
①作用:
對指定的序列做映射。
即以參數序列中的每個元素分別調用function函數,把每次調用後返回的結果保存為對象
②定義:
map(函數名,迭代器)
③例:
func=lambda x:x+2
result=map(func,[1,2,3,4,5])
print(list(result))
①作用:
對指定序列進行過濾操作
②定義:
filter(函數名,序列或迭代器)
③例:
func=lambda x:x%2
result=filter(func,[1,2,3,4,5])
print(list(result))
①含義:
程序調用自身
②形式:
在函數定義時直接或間接的調用自己
③解決問題的思想:
if 問題足夠簡單:
直接解決問題
返回解
else:
將問題分解為與原問題同構的一個或多個更小的問題
逐個解決這些更小的問題
將結果組合為,獲得最終解
返回解
(現用現查即可)
①時間戳
通常來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量
②格式化的時間字符串
③時間元組
(1)時間函數
(使用time庫)
(2)日期函數
(使用calendar庫)
random庫中的函數主要用於產生各種分布的偽隨機數序列
隨機數是由隨機種子決定的,其概率是確定的、可見的,被稱為偽隨機數
(1)random.random()
隨機生成一個[0,1.0]之間的浮點數,閉區間
(2)random.seed(隨機種子)
初始化偽隨機數生成器,如果未提供或者隨機種子=None,默認用當前的系統時間戳為隨機種子
隨機種子必須是一個整數
(3)random.uniform(a,b)
隨機返回[a,b]或[b,a]之間的浮點數
(4)random.randint(a,b)
隨機返回[a,b]之間的一個隨機整數,這裡必須要保證b>a
(5)random.randrang([start],stop,[step])
隨機返回[start,stop)之間的一個整數,參數step為步長
(6)random.choice(seq)
從非空序列seq中隨機選取一個元素
(7)random.shuffle(x,[random])
隨機打亂可變序列x內元素的排序順序,俗稱"洗牌"
(8)random.sample(seq,k)
從指定序列seq中隨機獲取k個元素作為片段返回
(1)內部函數和外部函數
Python是支持嵌套的,如果在一個函數內部定義了另外一個函數,
外部的函數叫做外部函數,內部的函數叫做內部函數
注意:
①內部函數的本質就是局部變量(函數就是一個變量)
②內部函數在函數外部不可以直接調用,內部函數在函數內部調用
(2)閉包
定義:
如果一個內部函數引用了外部函數作用域中的變量,那麼這個內部函數就被稱為閉包
(將局部變量(內部函數)引入到全局環境中使用,這就是閉包操作)
注意:
①閉包是一個可以由另一個函數動態生成的函數,並且可以創建和改變函數外創建的變量值
②函數閉包會記得外層函數的作用域
使用條件:
①閉包必須有嵌套函數
②嵌套函數需要引用外部函數中的變量(包括外部函數的參數)
③外部函數需要將嵌套函數名作為返回值返回
例:
def outer(a,b):
def inner(c,d):
return c+d+a+b
return inner
print(outer(1,2)(2,4))
根據文件的存儲格式不同,可以分為文本文件和二進制文件
(1)文件處理的步驟:打開->操作->關閉
(2)文件的打開:
<變量名>=open(<文件名>,<打開模式>)
文件名:可以寫絕對路徑,寫相對路徑要保證在同一源文件下
打開模式:文本文件or二進制文件 讀or寫
(3)文件的關閉:
<文件名>.close()
使用內存緩沖區緩存文件數據
(1)讀:
①read():讀取全部文件內容
②readline():讀取一行文件內容
③readlines():讀取文件的所有行
(2)寫:
①write(str):將字符串str寫入文件
②writelines(seq_of_str):寫多行到文件中,參數seq_of_str可迭代的對象
(3)seek()方法:
文件的指針—就是那個光標
調用seek()方法可以手動移動指針的位置
CSV文件主要用於數據的組織和處理,將數據劃分為三種類型:
①一維數據:線性(列表、集合、元組)
②二維數據:也稱關系,行列矩陣(表格)
③多維數據:二維數據的擴展(常用字典鍵值對表示)
模塊的概念:
你寫的程序就稱為模塊
導入模塊
①import 語句
②from…import 語句
③from…import* 語句
_name_屬性:
自定義模塊測試時常用
if name==‘main’
每一層目錄一般包含一個 int.py文件
(版權所屬,創作不易)