python创建和控制的实体称为_Python语法基础
Python語法基礎(chǔ)
數(shù)據(jù)對象和組織
對現(xiàn)實世界實體和概念的抽象
簡單類型(表示):整數(shù)—int、浮點數(shù)—float、復(fù)數(shù)—complex、邏輯值—bool、字符串—str
容器類型(組織):列表—list、元組—tuple、集合—set、字典—dict
數(shù)據(jù)類型之間大都可以轉(zhuǎn)換
賦值和控制流
對現(xiàn)實世界處理和過程的抽象
運算語句(處理與暫存):表達(dá)式計算、函數(shù)調(diào)用、賦值
控制流語句(組織語句描述過程):循環(huán)、條件分支、順序
定義語句也用來組織語句,描述一個包含一系列處理過程的計算單元:函數(shù)定義、、類定義
python數(shù)據(jù)類型
整數(shù)int:不受大小限制
浮點數(shù)float:受到17位有效數(shù)字的限制
整數(shù)與浮點數(shù)有常見的運算包括加(+)、減(-)、乘(*)、除(/)、整除(//)、求余(%)、指數(shù)冪等
一些常用數(shù)學(xué)函數(shù)在math模塊中
import math
a=math.sqrt(4)
#a=2
復(fù)數(shù):python內(nèi)置對復(fù)數(shù)的計算
支持所有常見的復(fù)數(shù)計算
對復(fù)數(shù)處理的數(shù)學(xué)函數(shù)在模塊cmath中
import cmath
a=cmath.sqrt(1+2j)
#a的值為復(fù)數(shù)1+2i開根號
邏輯值(bool):邏輯值僅包括True/False兩個
配合if/while等語句做條件判斷
其他數(shù)據(jù)類型可以轉(zhuǎn)化為邏輯值,如0與非0等
bool(0)#False
bool(999)#True
字符串:python中字符串不能修改只能產(chǎn)生新的字符串
用單引號和雙引號都可以表示字符串
多行字符串用三個連續(xù)的單引號表示
特殊字符用轉(zhuǎn)移符號""表示
字符串基本操作:連接(+)、復(fù)制(*)、長度(len)、[start:end:step]用來切片(提取一部分)
高級操作:分割(split)、合并(join)、大小寫相關(guān)(upper/lower/swapcase)、替換字符(replace)等等
>>> 'a b c d'.split(' ')
['a', 'b', 'c', 'd']
>>> 'abc'.upper()
'ABC'
列表和元組
python中有幾種類型是一系列元素組成的序列,以整數(shù)作為索引
字符串str就是一種同類元素的序列
列表list和元組tuple則可以容納不同類型的元素,構(gòu)成序列
元組是不能更新的序列(字符串也是)
列表則可以刪除、添加、替換、重排序列中的元素
image
創(chuàng)建列表:[]或者list()
創(chuàng)建元組:()或者tuple()
用索引[n]獲取元素(列表可變)
+:連接列表/元組
*:復(fù)制n次,生成新列表/元組
len():元素個數(shù)
in:某個元素是否存在
[start:end:step]:切片
方法名稱
使用例子
說明
append
alist.append(item)
列表末尾添加元素
insert
alist.insert(i,item)
列表中i位置插入元素
pop
alist,pop()
刪除最后一個元素
sort
alsit.sort()
將表中元素排序
reverse
alist.reverse()
將列表元素反向排序
del
del.alist[i]
刪除第i個元素
indx
alist.index(item)
找到item的首次出現(xiàn)位置
count
alsit.count(item)
返回item在列表出現(xiàn)的次數(shù)
remove
alist.remove(item)
將item的首次出現(xiàn)刪除
集合set:集合是不重復(fù)元素的無序組合
用set()創(chuàng)建空集
用set()從其他序列轉(zhuǎn)化生成集合
集合的常見操作:
in:判斷元素是否屬于集合、
|,union():并集、
&,intersection():交集
-,difference():差集
^,symmetric_difference():異或
<=,=,>:子集,真子集,超集,真超集
字典dict:
字典是通過鍵值key來索引元素value,而不是像列表是通過連續(xù)的整數(shù)來索引
字典是可變類型
字典中元素value沒有順序,可以是任意類型
字典中的key可以是不可變類型(數(shù)值/字符串/元組)
python變量機(jī)制
引用數(shù)據(jù)對象
賦值語句a=0,實際上是創(chuàng)建了名為a的變量,然后指向數(shù)據(jù)對象“0”
所以變量可以隨時指向任何一個數(shù)據(jù)對象,如True,1.02等(這和靜態(tài)語言完全不同)
變量的類型隨著指向的數(shù)據(jù)對象類型改變而改變。
可變類型的變量引用情況
由變量的引用特性,可變類型的變量操作需要注意的是,多個變量通過賦值引用同一個可變類型對象時,通過任何一個變量改變了可變類型,其他變量也看到了改變
常用的連續(xù)序列生成器:range函數(shù)
range(n):從0到n-1的序列
range(start,end):從start到end-1的序列
range(start,end,step)
range函數(shù)返回range類型的對象,可以直接當(dāng)作序列使用,也可以轉(zhuǎn)換為list或者tuple等容器類型
建立大型數(shù)據(jù)結(jié)構(gòu)
嵌套列表:列表的元素是一些列表,可以通過alsit[i][j]來索引
字典元素可以是任意類型,所以也可以是字典
字典的鍵值可以是任意不可變類型。
>>> alist=[[1,2,3],[True,'ab']]
>>> alist[0][2]
3
>>> adict={'a':['1','2'],'b':[True,'sun']}
>>> adict['b'][0]
True
輸入和輸出:input/print函數(shù)
input(prompt):顯示提示信息prompt,輸入內(nèi)容以字符串形式返回
print(v1,v2,v3,...):打印各變量的值輸出,可以帶參數(shù)end(結(jié)尾)和sep(字符串之間)
格式化字符串:'%d %s' % (v1,v2)
運算語句:表達(dá)式、函數(shù)調(diào)用、賦值
各類型的數(shù)據(jù)對象,可以通過各種運算組織成復(fù)雜的表達(dá)式
調(diào)用函數(shù)或?qū)ο?#xff0c;也可以返回數(shù)據(jù),所有可調(diào)用的事物稱為callable(調(diào)用函數(shù)或?qū)ο?#xff0c;需要在其名稱后加圓括號,有參數(shù),寫在括號里,不加圓括號的函數(shù)或?qū)ο髢H表示自己,而不是調(diào)用)
將表達(dá)式或調(diào)用返回值傳遞給變量進(jìn)行引用,稱為賦值
控制流語句
條件if
if :
elif :#可多個elif
else:#只能一個
while循環(huán)
while :
break #跳出循環(huán)
continue #略過余下循環(huán)語句
else: #條件不滿足推出循環(huán),執(zhí)行下面代碼
for循環(huán)
for in :
break #跳出循環(huán)
continue #略過余下循環(huán)語句
else: #迭代完畢則執(zhí)行下面語句
推導(dǎo)式
可以用來生成列表、字典、集合的語句
[ for in if ]
{: for in if }
{ for in if }
生成式推導(dǎo)式
與推導(dǎo)式一樣語法(但是用的是圓括號)
( for in if )
返回一個生成器對象,也是可迭代對象,但不會立即產(chǎn)生全部元素,僅在要用到元素的時候才生成,可以極大節(jié)省內(nèi)存
例外處理Exception Handing
代碼運行可能出現(xiàn)的錯誤
語法錯誤:Syntax Error
除以0錯誤:ZeroDivionError
列表下標(biāo)越界:IndexError
類型錯誤:TypeError
錯誤會引起一些不必要的麻煩,如果希望掌控意外錯誤,就需要在可能出錯的地方設(shè)置陷阱捕捉錯誤,引入try,except方式
try: #若出錯,則執(zhí)行except后的語句
except: #處理錯誤代碼
else: #沒有出錯執(zhí)行下面的代碼
finally: #無論出錯否,都執(zhí)行的代碼
函數(shù)function
# def語句:
def ():
return
# 調(diào)用函數(shù):
()# 無返回值
v=()# 返回值賦值給變量v
定義函數(shù)的參數(shù):固定參數(shù)/可變參數(shù)
定義函數(shù)時,參數(shù)可以有兩種;一種是參數(shù)表中寫明了參數(shù)名key的參數(shù),固定了順序和數(shù)量
def func(key1,key2,key3=value3....):
一種是定義時還不知道會有多少參數(shù)傳入的可變參數(shù)
def func1(*args): #不帶key的多個參數(shù)
def func2(**kwargs): #帶key=val形式的多個參數(shù)
調(diào)用函數(shù)的參數(shù):位置參數(shù)/關(guān)鍵字參數(shù)
調(diào)用函數(shù)時,可以傳進(jìn)兩種參數(shù);一種是沒有名字的位置參數(shù)(會按前后順序?qū)?yīng)),一種是指定了key值的關(guān)鍵字參數(shù)
如果混用,位置參數(shù)必須在關(guān)鍵字參數(shù)前
面向?qū)ο?#xff1a;類的定義與調(diào)用
類用來實現(xiàn)抽象數(shù)據(jù)類型ADT,封裝實體的屬性和行為
#定義類
class :
def __init__(self,):
def (self,)
#調(diào)用類
obj=()
#返回一個對象實例,類方法中的self指這個對象實例
類定義中的特殊方法
在類定義中實現(xiàn)一些特殊方法,可以方便的使用一些python內(nèi)置操作(所有特殊方法以兩個下劃線開始結(jié)束)
__str__(self): 自動轉(zhuǎn)化為字符串
__add__(self,other): 使用+操作符
__mul__(self,other): 使用*操作符
__eq__(self,other): 使用==操作符
類的繼承機(jī)制
如果有兩個類具有“一般-特殊”的邏輯關(guān)系,那么特殊類就可以作為一般類的“子類”來定義,從“繼承”屬性和方法
class ():#可以繼承多個父類
def (self,...):
子類對象可以調(diào)用父類方法,除非這個方法在子類中重新定義了
總結(jié)
以上是生活随笔為你收集整理的python创建和控制的实体称为_Python语法基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 进入恢复模式(Recovery HD)
- 下一篇: websocket python爬虫_p