python3學(xué)習(xí)手冊資料_第1頁
python3學(xué)習(xí)手冊資料_第2頁
python3學(xué)習(xí)手冊資料_第3頁
python3學(xué)習(xí)手冊資料_第4頁
python3學(xué)習(xí)手冊資料_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論