




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
python3學(xué)習(xí)手冊
簡介:
Python由GuidovanRossum廣1989年底發(fā)明,于1991年發(fā)行第一版
Python是一種解釋型、面向丸象、動(dòng)態(tài)數(shù)據(jù)類型、可交互的語言
Python源代碼遵循GPL協(xié)議,Python官網(wǎng):
python2.0于2000-10-16發(fā)布,支持Unicode;python3.0于2008-12-03發(fā)布
官方于2020年1月1日停止更新2.x版本,Python2.7成為最后一個(gè)py2.x版本
python安裝路徑:
操作系統(tǒng)python版本安裝路徑
windows2.7C:\Python27
windows3.10C:\Users\用戶^\AppData\Local\Programs\Python\Python310
centos72.7.5/usr/bin/python->/usr/bin/python2->
/usr/bin/python2.7(可執(zhí)行文件)
centos83.6.8/usr/bin/python3>/etc/alternatives/python3
/usr/bin/python3.6(可執(zhí)行文件)
python各版本發(fā)布時(shí)間:
2.0.12001-C63.62016-12-23
2.72010-C7-033.6.82018-12-24
2.7.52013-C5-153.72018-06-27
2.7.182020-C4-203.82019-10-14
3.0.12009-C2-133.102021-10-04
版權(quán)聲明;
本文檔以開源的形式發(fā)布,所有條款如下:
1.無擔(dān)保:作者不保證文檔內(nèi)容的準(zhǔn)確無誤,亦不承擔(dān)市于使用此文檔所導(dǎo)致的任何后果
2.自由使用:任何人可以出于任何目的而自由地閱讀/鞋接/打印/抬載/引用/再創(chuàng)作此文檔,無需任何附加條件
若您閱讀/鏈接/打印/轉(zhuǎn)載/引用/再創(chuàng)作本文檔,則說明接受以上2個(gè)條款。
作者:李茂福
2022-03-26~2023-02-13
第。章、linux執(zhí)行python腳本的方式
①進(jìn)入交互模式
#python3#輸入python3回車
?>#這里可執(zhí)行python代碼,類似shell腳本
?>print("hello")
?>exit()#退出交互模式
②執(zhí)行一次性代碼
#python3-c"要執(zhí)行的代碼,語句用;分號(hào)隔開"
③執(zhí)行腳本
#vitest.py#內(nèi)容如下3行
#!/usr/bin/envpython3
#coding=utf-8
print("hellow")
#chmod+xtest.py#添加可執(zhí)行權(quán)限
#腳本文件里要指定以下2行
#!/usr/bin/envpython3
#coding=utf-8
#./test.py#執(zhí)行腳本
#或者
#python3test.py
第1章、PyCharm常用設(shè)置
PyCharm官網(wǎng):
★PyCharm快捷鍵
Alt+Shift列選擇模式,可同時(shí)選擇多列
Ctrl+Alt+L重新格式化代碼,ReformatCode
Ctrl+B跳轉(zhuǎn)到鼠標(biāo)指定的函數(shù)定義處
Shift+F10運(yùn)行程序
Ctrl+R查找替換
★設(shè)置字體顏色
File—Settings—Editor-*ColorScheme—LanguageDefauts—選中目標(biāo)Scheme
dSettings
Editor>ColorScheme>LanguageDefaults
>Appearance&Behavior
Scheme:Darcula▼d
Keymap
vBadcharacter
EditorBoldItalic
>BracesandOperators
>General
>ClassesJForeground
CodeEditing▼Comments
FontBlockcommentBackground
v>Doccomment
ColorSchemeErrorstripemark
General
>IdentifiersEffects
>Inlinehints
★顯示空白字符
File-*SettingsEditor-*General-*Appearance-*選中Showwhitespaces
口Settings
Editor>General>Appearance
>Appearance&BehavioryCaretblinking(ms):500
Keymap
Useblockcaret
yEditor
,Showhardwrapandvisualguides(configuredinCodeStyle
▼General
JShowlinenumbers
AutoImport
AppearanceShowmethodseparators
Breadcrumbs,Showwhitespaces
CodeCompletion,Leading
CodeFolding
VInner
Console
VTrailing
EditorTabs
第2章、Centos7源碼安裝python3
Centos7默認(rèn)自帶python2.7.5版本,無pip
先去官網(wǎng)下載源碼包:
或者直接wget
PythonSourceReleases
■LatestPython3Release-Python3.10.3
?LatestPython2Release-Python2.7.18
StableReleases
?Python3.10.3-March16,2022
■Dov/nloaJGzippedsourcetarball
?DownloadXZcompressedsourcetarball
?Python3.9.11March16,2022
?DownloadGzippedsourcetarball
下載目標(biāo)版本源碼包,并上傳到目標(biāo)linux服務(wù)器上
安裝依賴:
#yuminstall-yzlib-develbzip2-developenssl-develncurses-develsqlite-devel\
readline-develtk-develgccgcc-c++makepatchlibffi-develpython-devel\
gdbm-develxz-develbccc
#tar-xvfPython-3.x.x.tgz#解壓源碼包
#cdPython-3.x.x#進(jìn)入解壓目錄
#./configureprefix=/usr/local/python3#設(shè)置要安裝的路徑
#make&&makeinstall
創(chuàng)建軟鏈接:
#In-s/usr/local/python3/bn/python3/usr/bin/python3
#In-s/usr/local/python3/bn/pip3/usr/bin/pip3
#默認(rèn)安裝無需指定prefix,也無需創(chuàng)建鏈接,默認(rèn)安裝路徑:
#python2-c"importsys;printsys.path"
#程序當(dāng)前路徑
7usr/lib64/python27.zip',
7usr/lib64/python2.7',
7usr/lib64/python2.7/plat-linu>2',
7usr/lib64/python2.7/lib-tk',
7usr/lib64/python2.7/lib-old',
7usr/lib64/python2.7/lib-dynload',
7usr/lib64/python2.7/site-packages'z
7usr/lib/python2.7/site-packages']
#python3-c"importsys;print(sys.path)"
[",#程序當(dāng)前路徑
7usr/local/python3/lib/python37.zip',
7usr/local/python3/lib/python3.7',
'/usr/local/pythonS/lib/pythonS.y/lib-dynload',
7usr/local/python3/lib/python3.7/site-packages']
#python3-version#查看版本
#python3-V#查看版木
第3章、基礎(chǔ)語法
★保留字(關(guān)鍵字)
TrueFalseNoneasnonlocal
andexecnotassertfinallyor
breakforpassclassfromprint
continueglobalraisedefifreturn
delimporttryelifinwhile
elseiswithexceptlambdayiel
★標(biāo)準(zhǔn)數(shù)據(jù)類型
numberintboolfloatcomplex(l+2j)(python3無long長整型)
True=l,False=0
string有序strx=,xxxx,stry="xxx"不區(qū)別單引號(hào)與雙引號(hào),單個(gè)字符也是string
list有序列表,數(shù)組
tuple有序元組
set無序不重復(fù)(芻動(dòng)刪除重復(fù)項(xiàng))集合py3新增
dictionary無序字典{鍵值對(duì)集合}關(guān)鍵字必須互不相同
bytes字節(jié)數(shù)組,其元素值不可變,其元素類型為int(0~255)py3新增
bytearray字節(jié)數(shù)組,其元素值可變,其元素類型為int(0~255)py3新增
不可變類型:NumberStringTuplebytes
可變類型:ListDictionarySetbytearray
set集合是由若干個(gè)元素組成的,基本功能是進(jìn)行成員關(guān)系測試和刪除重復(fù)元素
set可以進(jìn)行數(shù)學(xué)上的集合運(yùn)算(差集,并集,交集等)
可用{...}和set()函數(shù)創(chuàng)建集合,創(chuàng)建空集合必須使用set()而不能用(}
例,
a=set("fldsaj")
b=set("fdslj")
a-b#a和b的差集
a|b#a和b的并集
a&b#2和6的交集
aAb#a和b中不同時(shí)存在的元素
★判斷變量類型
type(x)#返回x的類型,如<class'int'>
isinstance(x,int)#返回True或False
type。不會(huì)認(rèn)為子類是父類的一種類型
isinstance(x,int)會(huì)認(rèn)為子類是父類的一種類型
★類型轉(zhuǎn)換
map(type,listxx)將字符串str型list轉(zhuǎn)為int型list
,',',',#元素類型為
strlist=[23"z15"/"6,44"]str
strnn=list(map(int,strlist))#map()將strlist的元素都轉(zhuǎn)為int型,
map()返回的是map類型,需要再使用list()轉(zhuǎn)為list型
tuple(mcp(int,strlist))#返回tuple型
int(x)將x輸出為10進(jìn)制的整型,這里的x為number
int(x,base=n)將x輸出為10進(jìn)制的整型,這里的x必須是n進(jìn)制的string型
如返回值為
int('A"zbase=16)10
chr(n)輸入0?255內(nèi)的整數(shù),返回對(duì)應(yīng)ascii字符,輸入可為10進(jìn)制,也可
為16進(jìn)制,python3的chr()支持unicode(0x00到OxlOFFFF)
unichr()輸入任意unicode編碼值,返回對(duì)應(yīng)unicode字符,python3的unichr()
沒了,合并到chr()了
ord('x')輸入為?個(gè)字符,ascii及unicode字符都行,輸出為對(duì)應(yīng)的int編碼值
hex()將一個(gè)整型數(shù)字轉(zhuǎn)為16進(jìn)制字符串,Oxnn
oct()將一個(gè)整型數(shù)字轉(zhuǎn)為8進(jìn)制字符串,Oonn
bin()將一個(gè)整型數(shù)字轉(zhuǎn)為2進(jìn)制字符串,Obnn
★str字符串大小寫轉(zhuǎn)換及替換過濾拆分拼接
strx="whatcAndWfdssfjdsD"
strx.lower{)#全轉(zhuǎn)為小寫,返回新的字符串,不改變原字符串
strx.upper()#全轉(zhuǎn)為大寫,返回新的字符串,不改變原字符串
strx.capitalize()#句首字母大寫
strx.title()#將每單詞首字母大寫
strx.swapcase()#全部大小寫翻轉(zhuǎn),互換
strx.replace("old","new")#把strx中的old替換成new
strx.rstrip()#過濾抻換行符及行尾的所有空白符
strx.lstrip()#過濾掉行首的所有空白符
strx.strip()#過濾位于6首以及行尾的所有空白字符以及換行符
strx.split()#將strx拆分,默認(rèn)以空白符(含換行符)為拆分符
strx.split("")#將strx拆分,"”之間指定拆分符
strx.split("",1)#將strx拆分,""之間指定拆分符,且只拆分1次,即分成2部分
strx.isdigit()#判斷strx是否為純數(shù)字字符,是則返回True,否則返回False
lists=[,,abc","def\"what"l
strx="”.join(lists)#默認(rèn)直接拼接可遍歷的對(duì)象,元素只可為str,中間不會(huì)加入其他字符或刪除其他字
符
siry=-.”.join(lists)#拼接時(shí)在2元素sir間添力口"”引號(hào)中指定的符號(hào),這里是添加逗號(hào)
strx="hello"
newslrc=strx.center(30."*")#輸出總字符數(shù)30,strx顯示為居中對(duì)齊,其余空位使用"”引號(hào)中指定
的*補(bǔ)全
newstrl=slrx.ljust(30,"*")#左對(duì)齊,*補(bǔ)全
newstrr=strx.ijust(30,"*")#右對(duì)齊,*補(bǔ)全
★print輸出帶顏色的字linux
此種方法僅linux命令行下有效
print("\033[0m帶顏色的文字\033[0m")
#\0331和m之間的數(shù)字為顯示效果及顏色的數(shù)字代碼
數(shù)字代碼效果顏色前景色代碼背景色代碼
0默認(rèn),灰白里3040
1粗體紅3141
4下劃線綠3242
5閃爍黃3343
7反白顯示藍(lán)3444
紫3545
青3646
灰白,同。默認(rèn)3747
效果+顏色用;分號(hào)隔開
print("\O33[m這是帶下劃線紅色的字\033[m)
★print輸出帶顏色的字windows
此種方法僅windows命令行卜有效
importctypes
STD_INPUT_HANDLE=-10
STD_OUTPUT_HANDLE=-11
STD_ERROR_HANDLE=-12
FOREGROUND-BLACK=0x0
FOREGROUND_BLUE=0x01#textcolorcontainsblue.
FOREGROUND_GREEN=()x()2#textcolorcontainsgreen.
FOREGROUND_RED—0A04#icxlculuiuuiiluinsicd.
FOREGROUNDJNTENSITY=0:<08#textcolorisintensified.
BACKGROUND_BLUE=0x1()#backgroundcolorcontainsblue.
BACKGROUND_GREEN=0x20#backgroundcolorcontainsgreen.
BACKGROUND_RED=0x40#backgroundcolorcontainsred.
BACKGROUNDJNTENSITY=0x80#backgroundcolorisintensified.
-'.I'....I..IC?-I'.I<II-C:K-l:■.(i!;:'I.IcSII>()iII:I\\l)lI
clypcs.windll.kcnicl32.Scl('ons<)lcrextAltribiHc(stti_oui_handle.
FOREGROUNDRED|F()REGROUND_GREEN|FOREGROUNDBLUE)#reset
cl\11.c11..-?ciI-r.c.i\.ic\])RLI)
I'II
HHH
cl;HAryxui:iul.'2.Sui(..-is,:,clc\-X;;:J'.r.cI()KI.(:N()1M)(>R1.IX
printC'sreen")
-i..<?,-I,■■??.???
FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE)#reset
(venv)D:\myPython3\testChaoD:\myPython3\testChar\venv\Scripts\python.exeD:/myPython3/testChar/nain.py
red
green
(venv)D:\myPython3\testChar>
★二維list
直接定義:
matrix=((0,0,0],(0,0,0],(0,0,0]]
間接定義:
matrix=([0foriinrange(3)]foriinrange(4)]#4個(gè)小list.每小list為3元素
三維類推:
matrix=[[[0foriinrange(3)]foriinrange(4)]foriinrange(2)]
★運(yùn)算符
①算術(shù)運(yùn)算符
+■*/
%取模,取余數(shù)
**富,如A**4表示A的4次事
//取整除,取商的整數(shù)部分,向下取整,去尾法;若運(yùn)算數(shù)為float,則結(jié)果為n.O
②比較運(yùn)算符
==等于!=不等于
>大于>=大于等于
<小于<=小于等于
③邏輯運(yùn)算
notandor
④成員運(yùn)算
in#ainListx;a在Listx中則返回True
notin#anotinListx;a不在Listx中則返但I(xiàn)True
⑤身份運(yùn)算符
is#aisb;判斷a和b是否引用自同一個(gè)對(duì)象,是則返回True
isnot
#aisb同id(a)==id(b)#id(x)用于獲取對(duì)象x的內(nèi)存地址
⑥位運(yùn)算符
&與運(yùn)算人異或
|或?左位移
~取反?右位移
★運(yùn)算符優(yōu)先級(jí):
指數(shù)**>位運(yùn)算>乘除>加減>比較>賦值>身份>成員>邏輯
★條件語句(python不支持switch)
if判斷句:
語句體
elif判斷句:
語句體
else:
語句體
★循環(huán)語句
①for循環(huán)
foriinxx#xx為可遍歷的數(shù)據(jù),如list,tuple,bytes,bytearray
break#跳出當(dāng)前循環(huán),跳出for
#使用索引:
foriinrange(lO):#生成10個(gè)數(shù),從0開始,。到9
#ToDo
#range(l,9)#從1開始,1到8
#range(l,9,2)#從1開始,步長為2,即1,3,5,7
②while循環(huán)
while判斷:
循環(huán)體
continue/continue跳過剩下的循環(huán)體,進(jìn)入下一輪loop,break跳出整個(gè)循環(huán)
★整除
在python2中,/如果參與運(yùn)算的數(shù)為int,就是整除,只取整數(shù)
如果/參與運(yùn)算的數(shù)為float,則返回float,不再是整數(shù)
在python3中,/不論參與運(yùn)算的數(shù)為int還是float,不是整除,都返回float
若參與運(yùn)算的數(shù)只有int,則可用〃運(yùn)算符,取整數(shù)商
若參與運(yùn)算的數(shù)為float,則返回float
也可用importmath;math.t,uncfxx/yy)來取整,(xx/yy)可為float,結(jié)果也是整數(shù)商
★小數(shù)取整
①內(nèi)置函數(shù)round。為四舍五入,n.5則靠偶數(shù)取整ROUND_HALF_EVEN
round(2.5)#返何2
round(3.5)#返回4
②math.ceil。進(jìn)一法
importmath
math.ceil(3.1)#返回4
③math.floor()去尾法
importmath
math.floor(3.99)#返回3
★遍歷字典dictionary
①遍歷key
dictx={"kl":"vl",”k2":"v2","k3":"v3")
forkeyindictx.keys():
print(key,".......>",dictx[key])
②遍歷value
dictx={"kl":“k2":"v2","k3":"\3"}
forvalueindictx.valuesf):
prini(value)
③遍歷item
dictx={"kl":"vl“,”k2":"v2","k3":"v3")
fork.vindictx.items():
print(k."—v)
★序列數(shù)據(jù)增刪改查操作
①list數(shù)據(jù)操作(有序,數(shù)值可重復(fù))
listxx.append(x)#把元素x追加到列表的末尾
listxx.insert(i.x)#在索引i指定位置插入元素x,原listxx[i]后移一位
lisixx.extend(li$tyy)#把lislyy追加到列表的末尾
listxx.remove(x)#刪除列表中第一個(gè)值為x的元素,若無這樣的元素則返回一個(gè)error
lisixx.pop(i)#從列表的指定索引位置移除元素,并返回此元素值,如果不指定i,則移除并返回戰(zhàn)后
一個(gè)元素
listxx.poplefxT#移除列表頭元素并返回其值
listxx.index(x)#返回列表中第一個(gè)值為x的元素的索引
lislxx.count(x)#返回x在列表中出現(xiàn)的次數(shù)
listxx.sort(r高麗表中的蒜排點(diǎn),改變列表本身,返回值為None或error,不返回新的lisl,默認(rèn)
升序,從小到大
iislxx.sort(reverse=True)#排序,降序,從大到小
listxx.reverse()#反轉(zhuǎn)列表,頭變尾,尾變頭
dellislxx[l:3]#切割操作,刪除列表的這一段,含頭不含尾
newlist=sortcd(listxx)#,且排好序了,升序,原lislxx不變
②set數(shù)據(jù)操作(無序,數(shù)值不重復(fù))
★若在創(chuàng)建set時(shí),有多個(gè)重豆的元素,則只會(huì)存儲(chǔ)其一,元素只能是不可變對(duì)象
t=("wh"J曳js”,[kds「)
setyy=frozenset(t)#創(chuàng)建不可變set.無addremoveupdate操作
setxx.add("xxx")#新增元素
setxx.removeC'bb")#刪除元素,若元素不存在則返回KeyError,存在則返回None
sctxx.updale(itcrablexx)#添加多個(gè)元素,這些元素是ilcrablcxx里的,itcrablcxxnJlist,sct,tuple
③dictionary數(shù)據(jù)操作(無序,key不重復(fù))
dictxx['newkey"]="new_value"#新增鍵值對(duì),如果已存在則更新情
diclxx.updaie(lx)#添加多個(gè)鍵值對(duì),lx為另一diclionary
valuc2=dictxx("k2"]#取指定key對(duì)應(yīng)的值
k,v=dictxx.popitem()#隨機(jī)返回并刪除一個(gè)鍵值對(duì)
deldictxx["k2"]#刪除指定key的這對(duì)鍵值對(duì)
★string和bytes轉(zhuǎn)換
strxx="這是w"#類型為str長度3
bytcsxx-codc(ui:8")#將sti編碼為utf8,返回類型bytes.長度7
print(type(bytesxx[O]))#返回int,bytesxx本身為bytes類型,其元素則為int
★string的元素仍為str
stryy=bytesxx.decode("utf8")#將bytes類暇解嗎為字符,返回str
★bytes和bytearray
bytes字節(jié)數(shù)組各元素值不可變,bytearray各元素值可變
bytes和bytearray的各元素值都是int類型,取值范圍0~255
①創(chuàng)建bytes數(shù)組
bl=b'abcd\xfr#在字符前加修飾符b直接創(chuàng)建,只可以是ASCII字符
b2=bytes(3)#表示創(chuàng)建長度為3的字節(jié)數(shù)組「默認(rèn)使用0填充
b3=bytes(lis(x)#將可遍歷對(duì)象轉(zhuǎn)為字節(jié)數(shù)組,該對(duì)象各元素皆為ini(0~255)
b4=bytes("slrxx'.;="uif8")#將str轉(zhuǎn)為bylcs,等價(jià)于codo;"ulf8")
print(b3.hex())#輸出16進(jìn)制字符串,如AC0B,默認(rèn)是b*\xll\xl6c\x耐這種
②創(chuàng)建bytearray數(shù)組
bal=bytearray(3)#表示創(chuàng)建K度為3的字節(jié)數(shù)組,使用0填充
ba2=bylearray(lis【x)#將可遍歷對(duì)象轉(zhuǎn)為字節(jié)數(shù)組,該對(duì)象各元素皆為in〔(O~255)
ba3=bytearray("strxxencoding=,utf8")#將str轉(zhuǎn)為bytearray,str.encode("ulf8")默認(rèn)返回的是
bytes
print(ba2.hex())#輸出16進(jìn)制字符串,默認(rèn)是bylearray(b'\xll\xl6c'xfe')
★bytes和bytearray都可以使用.decode("utf8")方法轉(zhuǎn)為string
第4章、python推導(dǎo)式
推導(dǎo)式表示從一個(gè)數(shù)據(jù)序列構(gòu)建成另一個(gè)新的數(shù)據(jù)序列
①list推導(dǎo)式
newlist,表達(dá)式for變量in源列表if條件]#直接返回list類型
例:
names=("abc"/"xdfjl","fdklsaj"]
new_names=[name.upper()fornameinnamesiflen(name)>3]
②dictionary推導(dǎo)式
newdic={key表達(dá)式:value表達(dá)式for變量in列表if條件}#直接返回dictionary
③set集合推導(dǎo)式
newset={表達(dá)式for變量in列表/元組}#直接返回set
④tuple元組推導(dǎo)式
newtuple,表達(dá)式for變量in列表)#直接返回的是生成器對(duì)象,不是tuple
例:
xx=tuple(xforxinrange(l,10))#tuple(推導(dǎo)式)可得元組
第5章、函數(shù)def
1.定義函數(shù)
deffun_name(參數(shù)):
"描述"
語句
returnxx#若無指定return,則默認(rèn)返回None
2.參數(shù)傳遞
①不定長參數(shù)
deffunc(*var):#參數(shù)以tuple形式傳入,var為tuple
#或者傳參數(shù)時(shí)直接傳入多個(gè)售,以逗號(hào),隔開
#若傳入的變量為tuple時(shí),不帶*號(hào)則表示只有一個(gè)參數(shù),就是tuple本身,
帶*號(hào)則表示把tuple解開,變成多個(gè)參數(shù),每個(gè)元素為一個(gè)參數(shù)
②定長參數(shù)加不定長參數(shù)
deffunc(varl,var2,*var_args_tuple):
樣前面2個(gè)為固定參數(shù),后面可傳入若下個(gè)可選參數(shù),調(diào)用函數(shù)時(shí),不可省略前面的定參
③默認(rèn)參數(shù)
deffunc(varl,var2=10,var3=40):
#調(diào)用時(shí)若未傳入?yún)?shù)var2和var3,則使用默認(rèn)值10,40
④傳參是否可變
不可變類型:numberstringtuplebytes傳遞的是值
可變類型:listdictionarysetbytearray傳遞的是引用
將不可變類型參數(shù)傳入函數(shù)后,函數(shù)里面對(duì)參數(shù)的修改,不會(huì)改變函數(shù)外的變量值
將可變類型參數(shù)傳入函數(shù)后,函數(shù)里面對(duì)參數(shù)的修改,會(huì)改變函數(shù)外的變量值
第6章、python3內(nèi)置函數(shù)
內(nèi)置函數(shù)是指不用import導(dǎo)入任何模塊就能直接使用的函數(shù)
①算術(shù)相關(guān)
abs(x)#返回x的絕對(duì)值
min(xl,x2,x3)#返回最小值
hex{x)#將x轉(zhuǎn)換成16進(jìn)制數(shù),帶Ox
oct(x)#將*轉(zhuǎn)換成8進(jìn)制數(shù),帶0。
bin(x)#將*轉(zhuǎn)換成2進(jìn)制數(shù),帶0b
int(x)#將x轉(zhuǎn)換成10進(jìn)制數(shù),默認(rèn)認(rèn)為x為10進(jìn)制數(shù)/str,base=16指定x字符串為
16進(jìn)制數(shù)
divmod()函數(shù)接收兩個(gè)數(shù)字類型(非復(fù)數(shù))參數(shù),返回一個(gè)包含商和余數(shù)的元組(a〃b,a%
b)
②生成器
dict()#用于生成一個(gè)dictionary
enumerate。函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為個(gè)索引序
列,同時(shí)列出下標(biāo)和數(shù)據(jù),一般用在for循環(huán)當(dāng)中
slice()函數(shù)實(shí)現(xiàn)切片對(duì)象,主要用在切片操作函數(shù)里的參數(shù)傳遞
sorted()函數(shù)對(duì)■所有可迭代的對(duì)象進(jìn)行排序操作,默認(rèn)升序,reverse=True則降序,返回新
的list;list的sort方法返回的是對(duì)已經(jīng)存在的列表進(jìn)行操作
③查看幫助類
help()查看目標(biāo)對(duì)象的幫助信息
dir()函數(shù)不帶參數(shù)時(shí).返回當(dāng)前范圍內(nèi)的變量、方法和定義的類型列表;帶參數(shù)時(shí),
返回參數(shù)的屬性、方法列表。如果參數(shù)包含方法_dir_(),該方法將被調(diào)用。如果參數(shù)不包
含該方法將最大限度地收集參數(shù)信息
④設(shè)置,獲取
setatrrO設(shè)置對(duì)象的屬性
getattr()獲取對(duì)象的屬性
a=A()
?>getattr(a,'bar')#獲取屬性bar值
1
?>setattr(a,'bar',5)#設(shè)置屬性bar值
?>a.bar
5
next()返回迭代器的下個(gè)項(xiàng)目。
next()函數(shù)要和生成迭代器的iter()函數(shù)一起使用
id()函數(shù)返回對(duì)象的唯一標(biāo)識(shí)符,標(biāo)識(shí)符是一個(gè)整數(shù)。CPython中id()函數(shù)用于獲取對(duì)象
的內(nèi)存地址
input()函數(shù)接受?個(gè)標(biāo)準(zhǔn)輸入數(shù)據(jù),返回為string類型
staticmethod()返回函數(shù)的靜態(tài)方法
⑤判斷
all()函數(shù)用于判斷給定的可迭代參數(shù)iterable中的所有元素是否都為TRUE,如果是返
回True,否則返回False(元素除了是0、空、None.False外都算True)
any()函數(shù)用于判斷給定的可迭代參數(shù)iterable是否全部為False,則返回False,如果有一
個(gè)為True,則返回True。元素除了是0、空、FALSE外都算TRUE
⑥其他
eval()函數(shù)用來執(zhí)行一個(gè)字符串表達(dá)式(為python表達(dá)式),并返回表達(dá)式的值
open()函數(shù)用于打開一個(gè)文件,并返回文件對(duì)象
ascii()函數(shù)類似repr()函數(shù),返回一個(gè)表示對(duì)象的字符串,但是對(duì)于字符串中的非ASCII
字符則返回通過repr()函數(shù)使用\x,\u或\U編碼的字符
str()函數(shù)將對(duì)象轉(zhuǎn)化為適于人閱讀的形式
內(nèi)看畫改
典)拄)國JmmO時(shí)5郵)
純0hex()nwt()Sb?O
即口)OMIKMX)objectOsortedO
但)cnumcfatotlaeyioMslaticrndhodO
百)nu)QQfiQO取0
9S3SA)2210
byleewavt)issutxitassOpow(>super。
R3)dfi££)oomtUQ^O
皿?reeo
彌)W更愴曲愴tt)
9ela?K)皿以)ffiCK)ZSA)
gtotoaHOWrev&rsedQ_酸K_0
comotexf)founOO
mcfnoryvwwO匈
第7章、輸入輸出
★標(biāo)準(zhǔn)輸入函數(shù)input()
內(nèi)置函數(shù)input。為標(biāo)準(zhǔn)輸入函數(shù),執(zhí)行到此函數(shù)時(shí)程序會(huì)哲停住,讓用戶從console輸入,
讀到換行符結(jié)束,返回string,返回內(nèi)容不含換行符
stdin=input()
stdin2=input("提示:")
在linux命令行執(zhí)行程序腳本時(shí),可使用|管道符輸入到標(biāo)準(zhǔn)輸入,這時(shí)就不會(huì)暫停住了
#echo"inputarg"|./test.pv
★標(biāo)準(zhǔn)輸入列表sys.stdin.readlines
sys.stdin有2個(gè)方法:
importsys
sys.stdin.readline()#讀取一行,讀到換行符結(jié)束,內(nèi)容包含換行符,返回<str>
sys.stdin.readlinesf)#讀工又所有行,讀到Ctrl+D結(jié)束,內(nèi)容包含換行符,返回每
行作為一個(gè)元素<str>
★命令行輸入列表sys.argv
importsys
print("以卜為命令行參數(shù):",sys.argv)#sys.argv為命令行輸入的參數(shù)list
在linux命令行執(zhí)行程序腳本時(shí),可直接跟在腳本后的參數(shù)稱為命令行參數(shù)
#./test.pyarglarg2#直接傳入命令行參數(shù)
#echo"argl"|xargs./test.py#xargs將標(biāo)準(zhǔn)輸入轉(zhuǎn)為命令行參數(shù)
★標(biāo)準(zhǔn)輸出print()
①不指定格式
print(argl,arg2,arg3)#輸出時(shí)3個(gè)參數(shù)之間默認(rèn)使用空格隔開
print(argl,arg2,sep="")#輸出時(shí)不使用任何字符隔開,乜可在""內(nèi)指定分隔符
print。默認(rèn)是帶換行的,即默認(rèn)結(jié)尾符為\n,可用end=""指定結(jié)尾符為空(不帶換行)
如print(argx,argv,end="")
②print。舊式字符串格式化
同C語言的sprintf()的格式化字符串用法,用%操作符
print("這是第%2d號(hào),體重%5.2f公折"%(num,wei))
%-6.3f表示左對(duì)齊,共6位寬,3位小數(shù),浮點(diǎn)型(默認(rèn)左對(duì)齊)
類型碼含義類型碼含義
%c字符%s字符串
%d十進(jìn)制整數(shù)%u無符號(hào)整數(shù)
%o八進(jìn)制數(shù)%x小寫十六進(jìn)制數(shù)
%X大寫十六進(jìn)制數(shù)%f浮點(diǎn)數(shù)
%e科學(xué)計(jì)數(shù)法,小寫e%g自動(dòng)采用最短的%£或%6
%F同%八會(huì)把inf,nan寫成INF,NAN%E同%6,大寫E
%G同%8,會(huì)大寫%b二進(jìn)制數(shù),print。不支持
★字符串.format。格式化函數(shù)
建議使用"字符H;".format(argxx)的新式字符串格式化函數(shù),返回格式化后的字符串
.format。通過將strxx字符串中的{}來識(shí)別替換字段
{字段名!轉(zhuǎn)換字段:格式說明}
print("我叫{},年齡{}歲”.format。李,20))
①字段名
★可省,就寫{},默認(rèn)從左到右對(duì)應(yīng)后面.format。里的arg
★寫數(shù)字,0,1,2可重復(fù)用右邊的字段,如0,1,1,1
★寫變量名XXX
.format。里傳入tuple參數(shù)時(shí),得帶上*號(hào),如:
cof=(*20)
print("我叫{0},年齡{l}”.format(*cof))
傳入dictionary時(shí),得帶上**雙星號(hào)
傳入類的對(duì)象時(shí),不帶星號(hào),在{}里取對(duì)象的屬性
a=classx("李",20)
print("我叫{0.name},今年{0.age}”.format(a))
傳入list,tuple,dictionary時(shí),若不想按順序取值,可用.「]按下標(biāo)取值
a=[l,23]
print("我{0.出},在。⑼}里".format(a))
②轉(zhuǎn)換字段
1s把參數(shù)str()一下,即調(diào)用str()去格參數(shù)
!rrepr()
!a返回ascii(),或\jnnnn\xnnnn
③格式說明:
前面有:冒號(hào)
順序?yàn)椋禾畛鋵?duì)齊方式正位號(hào)#窗?度.精度類型碼
對(duì)齊方式
<左對(duì)齊
>右對(duì)齊
A居中
后面必須指定寬度
print(”我在{:<6}號(hào)".format(n))
填充
在:后,對(duì)齊符前寫指定符號(hào),如用0填充
print("我在{:0>6}號(hào)”.format(n;)
正負(fù)號(hào)
讓正數(shù)帶上十號(hào)
print("我在{:0>+6}號(hào)”.format(n))#0填充默認(rèn)在+號(hào)與后面數(shù)字之間了,這不是我們想
要的,這時(shí)得用=指定對(duì)齊方式,默認(rèn)右對(duì)齊
print(哦在{:0=+6}號(hào)".format(r))
數(shù)字形式帶前綴
#b輸出帶0b前綴
#o輸出帶0。前綴
#x輸出帶Ox前綴
,數(shù)字分組分隔
讓數(shù)字以3個(gè)?組帶上逗號(hào)分隔符
,d僅對(duì)應(yīng),d,不可用,f,x之類
_d_o_x_b可對(duì)應(yīng)這4個(gè),以每4個(gè)字符為一組帶—下劃線輸出
%百分比形式
{:%)自動(dòng)將數(shù)字乘以100帶上%號(hào),浮點(diǎn)數(shù)表示了,默認(rèn)6位小數(shù)
{:.2%)指定2位小數(shù)精度
類型碼
最后是類型碼,同print()l日式字符串格式化里的類型碼
d十進(jìn)制整數(shù)
第8章、面向?qū)ο?/p>
類是由數(shù)據(jù)結(jié)構(gòu)及對(duì)數(shù)據(jù)進(jìn)行的操作方法組成的
①創(chuàng)建類
class類名稱:
”類的幫助信息,描述“
類的內(nèi)容
class類名稱(基類1,基類2):#派生類
類的內(nèi)容
②類的方法
類的方法即類里的函數(shù),python的類方法必須有一個(gè)額外的第一個(gè)參數(shù),類方法第一個(gè)參
數(shù)名為self,表示類的實(shí)例(對(duì)象),而非類本身
定義時(shí)有self,但在使用類方法時(shí),不用再寫這個(gè)參數(shù)!
對(duì)象:通過類定義的數(shù)據(jù)結(jié)構(gòu)實(shí)例
③構(gòu)造函數(shù)_init_(self)#init前后各2個(gè)下劃線
classMyClassA:
xxx=4#類變量,它的值在這個(gè)類的所有實(shí)例間共.享,可在內(nèi)部/外部使用W
def(self,namex,agex):#構(gòu)造函數(shù),初始化方法
self,name=namex
sclf.age=agcx
④創(chuàng)建對(duì)象,對(duì)象屬性
類的實(shí)例化
對(duì)象名=類名(x)#x參數(shù)是傳給_init_()方法的
#對(duì)象可直接添加/刪除/修改屬性
對(duì),象名.newAttr=value
del對(duì)象名.xxAttr
使用函數(shù)來訪問屬性
getattrfobj,attrName)#獲取對(duì)象的屬性
hasattrfobj,attrName)#檢查對(duì)象是否存在這個(gè)屬性
setattr(obj,attrName,valuex)#設(shè)置屬性的值,若屬性不存在,則創(chuàng)建
delattr(obj,attrName)#刪除屬性
⑤內(nèi)置類屬性
_dict_#類的屬性,一個(gè)字典,由類的數(shù)據(jù)屬性組成____________________________________
_doc_#類的文檔字符串
_name-#類名
module__#類定義所在的模塊________________________________________________________
_bases_#類的所有父類,一個(gè)元組
⑥析構(gòu)函數(shù)
#析構(gòu)方法,在對(duì)象銷毀時(shí)被調(diào)用
⑦特殊屬性
_protedAttr#以單下劃線開頭表示protected變量,只允許其本身與子類進(jìn)行訪問
.privateAttr#以雙下劃線開頭表示private變量,只允許這個(gè)類本身訪問
_privateMethod#以雙下劃線開頭的方法為private方法
_xxx_()#特殊方法,以雙下劃線開頭及雙下劃線結(jié)尾
對(duì)象不可訪問類的私有變量(以雙下劃線開頭),但可用以下形式來訪問:
對(duì)象名.一類名_私有屬性名
第9章、異常處理
異常是python對(duì)象,表示一個(gè)錯(cuò)誤,當(dāng)程序發(fā)生異常時(shí),需要捕獲處理它,否則程序會(huì)終
止執(zhí)行。
①捕獲異??捎胻ry,except語句
try:
#要執(zhí)行的語句
excepixx類:#可以不匹配具體的錯(cuò)誤類
#要執(zhí)行的語句
excepiyy類as數(shù)據(jù):
#要執(zhí)行的語句
else:
#如果沒有異常發(fā)生時(shí)執(zhí)行的語句
finally:
#不管有無異常星終都要執(zhí)行的語句
②觸發(fā)異常
可以使用raise語句自己觸發(fā)異常
defmyFunc(varx):
ifvarx<10;
raiseException("提示儲(chǔ)息",varx)
#觸發(fā)異常后,后面的代碼不會(huì)再執(zhí)行
#使用
iry:
myFunc(n)
exceptExceptionaserr:
#區(qū)執(zhí)行的語句,err
自定義異常類,創(chuàng)建一個(gè)新類,繼承自Exception類
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 天然植物提取項(xiàng)目可行性研究報(bào)告
- 2025年EMI屏蔽材料項(xiàng)目合作計(jì)劃書
- 不為打翻的調(diào)色盤哭泣
- 電纜故障探測儀行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報(bào)告
- 中國汽車倒車?yán)走_(dá)行業(yè)市場全景分析及投資戰(zhàn)略規(guī)劃報(bào)告
- 鋼管拆除合同范本
- 中國耳掛口罩項(xiàng)目投資可行性研究報(bào)告
- 2025年成品漿板包裝輸送系統(tǒng)項(xiàng)目合作計(jì)劃書
- 代理外貿(mào)合同范本
- 2020-2025年中國深圳網(wǎng)約車行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略研究報(bào)告
- 有溫度的護(hù)理人
- 1《挑戰(zhàn)第一次》第1課時(shí) 說課稿 -2023-2024學(xué)年道德與法治二年級(jí)下冊統(tǒng)編版
- 預(yù)防性試驗(yàn)四措一案及施工方案
- 第十八屆“地球小博士”全國地理知識(shí)科普競賽題庫(附答案)
- 第13課《 擴(kuò)音系統(tǒng)的控制》說課稿 2023-2024學(xué)年 浙教版六年級(jí)下冊信息科技
- 高校國有資產(chǎn)管理的三個(gè)維度與內(nèi)部控制
- 2025甘肅省事業(yè)單位聯(lián)考招聘(3141人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- JJF 1176-2024(0~2 300) ℃鎢錸熱電偶校準(zhǔn)規(guī)范
- 8.4+同一直線上二力的合成課件+2024-2025學(xué)年人教版物理八年級(jí)下冊
- 2024年河北省邢臺(tái)市公開招聘警務(wù)輔助人員(輔警)筆試專項(xiàng)訓(xùn)練題試卷(2)含答案
- 家政公司服務(wù)員考試題庫單選題100道及答案解析
評(píng)論
0/150
提交評(píng)論