日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python核心教程(第二版)读书笔记(三)

發(fā)布時間:2023/12/20 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python核心教程(第二版)读书笔记(三) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第三章Python基礎(chǔ)

2010-04-09

換行

?一行過長的語句可以使用反斜杠‘\’分解成幾行。有兩種例外情況一個語句不使用反斜線也可以跨行。

1、在使用閉合操作符時,單一語句可以跨多行。例如:在含有小括號、中括號、花括號時可以多行書寫。

2、三引號包括下的字符串也可以跨行書寫。

?

?python中,對象是引用傳遞的。在賦值時,不管這個對象是新建的,還是一個已經(jīng)存在的,都是將該對象的引用(并不是值)賦值給變量。

?

專用下劃線標識符

Python用下劃線作為變量前綴和后綴指定特殊變量。對于程序來說,其中的有些變量是非常有用的,而其他的則是未知或無用的。Python中下劃線的特殊用法:

__XXX 不使用'frommodule import *'導(dǎo)入

__XXX__ 系統(tǒng)定義名字

_XXX 類中到私有變量名

?

__doc__

Python提供了一個機制,可以通過__doc__特別變量,動態(tài)獲得文檔字串。在模塊、類聲明、或者函數(shù)聲明中第一個沒有賦值的字符串(Jerry:可能是第一行非空的沒有賦值的字符串)可以使用屬性obj.__doc__來進行訪問。其中obj是一個模塊、類、或函數(shù)的名字。這在運行時也可以進行。

?

?

Python對象

2010-04-10

Python對象

?Python使用對象模型來存儲書籍。構(gòu)建任何類型的值都是對象。

所有的Python對象都擁有三個特性:身份(id),類型(type),值(Value)

身份:每一個對象都有一個唯一的身份標志自己。任何對象的身份都可以用內(nèi)建函數(shù)id()來得到。這個值可以被認為是該對象的內(nèi)存地址。

類型:對象的類型決定了該對象可以保存什么類型的值,可以進行什么樣的操作,以及遵循什么樣的規(guī)則。可以使用內(nèi)建函數(shù)type()查看Python對象的類型。函數(shù)返回的是對象而不是簡單的字符串。

值:對象表示的數(shù)據(jù)項

這三個特性在對象創(chuàng)建時就被賦值,除了值之外,其它兩個特性都是只讀滴。

Python有一系列的基本(內(nèi)建)數(shù)據(jù)類型。必要時也可以創(chuàng)建自定義類型來滿足你對應(yīng)用程序的需求。絕大多數(shù)應(yīng)用程序通常使用標準類型,對特定的數(shù)據(jù)存儲則通過創(chuàng)建和實例化類來實現(xiàn)。

?

None

Python中的特殊類型。他不支持任何運算也沒有任何內(nèi)建方法。

None沒有什么有用的屬性,他的布爾值總是False

?

布爾值

所有標準對象均可用于布爾測試。同類型的對象直接可以比較大小。每個對象天生就具有布爾TrueFalse值。空對象、值為0的任何數(shù)字或者Null對象None的布爾值都是False

下列對象的布爾值都是False

→None

→False(布爾類型)

所有的值為0的數(shù)

→0 (整形)

→0.0 (浮點型)

→0L (長整形)

→0.0 + 0.0j (復(fù)數(shù))

→“” (空字符串)

→[] (空列表)

→() (空元組)

→{} (空字典)

值不是上面列出來的任何值的對象的布爾值都是True。例如:non-emptynon-zero等。

用戶創(chuàng)建的類實例如果定義了nonzero(__nonezero__())或者length(__len__())且值為0,那么他的布爾值就是False

?

?Python支持多個比較在同一行上進行的操作,求值順序為從左到右。

例如:Python支持 3<4<5<1類似的操作。

?

?Python提供了isnotis操作符來測試兩個變量是否指向同一個對象。像下面這樣執(zhí)行一個測試:

A is B

這個表達式等價于下面的表達式:id(a)== id(b)

obj1is obj2 ?測試(obj1obj2是同一個對象),返回布爾值

obj1is not obj2 ?測試(obj1obj2不是同一個對象),返回布爾值

?

標準類型內(nèi)建函數(shù):

Python提供了一些內(nèi)建函數(shù)用于這些基本對象類型:cmp()repr()str()type()和等同于repr()函數(shù)的單反引號操作符。

?

cmp(obj1obj2)

比較objobj2.根據(jù)比較結(jié)果返回整形i

i<0if obj1 < obj2 (Python2.6.4中為-1)

i>0if obj1 > obj2 (Python2.6.4中為1)

i=0 ifobj1 == obj2(Python2.6.4中為0)

repr(obj)

返回一個對象的字符串表示

str(obj)

返回對象適合可讀性好的字符串表示

type(obj)

得到一個對象的類型,并返回相應(yīng)的type對象

?

標準類型的分類

1、按照存儲模型分類

?一個能保存單個字面對象的類型,我們稱之為原子或標量存儲。

?那些可容納多個對象的類型,我們稱之為容器存儲。

?原子類型/標量類型:數(shù)值(所有到數(shù)值類型)、字符串(全部是文字)

?容器類型:列表、元組、字典

?

?2、按照更新模型分類

?可變類型:列表、字典

?不可變類型:數(shù)字、字符串、元組

?

?3、按照訪問模型分類

?根據(jù)訪問我們存儲的數(shù)據(jù)到方式對數(shù)據(jù)類型進行分類。在訪問模型中共有三種訪問方式:直接存取、順序、映射。

?直接訪問類型:數(shù)字

?順序訪問:字符串、列表、元組

?映射訪問:字典

?對非容器類型可以直接訪問,所有的數(shù)值類型都歸到這一類。

?序列類型是指容器內(nèi)的元素按從0開始的索引順序訪問。一次可以訪問一個元素或多個元素。字符串、列表、元組都屬于這一類。

?映射類型類似序列到索引屬性,不過它的索引并不使用順序的數(shù)字偏移量取值,它的元素?zé)o序存放,通過一個唯一的鍵來訪問。這就是映射類型,它容納的是哈希鍵-值對的集合。

4、一覽表

數(shù)據(jù)類型

存儲模型

更新模型

訪問模型

數(shù)值

標量

不可更改

直接訪問

字符串

標量

不可更改

順序訪問

列表

容器

可更改

順序訪問

元組

容器

不可更改

順序訪問

字典

容器

可更改

映射訪問

?

?

?第五章數(shù)字

2010-04-12

Python語言中有關(guān)復(fù)數(shù)的幾個概念:

1、虛數(shù)不能單獨存在,他們總是和一個值為0.0的實數(shù)部分一起來構(gòu)成一個復(fù)數(shù)

2、復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成

3、表示虛數(shù)到語法:real+ imagj

4、實數(shù)部分和虛數(shù)部分都是浮點數(shù)

5、虛數(shù)部分必須有后綴j或者J

?

復(fù)數(shù)到內(nèi)建屬性

?

?

aComplex =-8.33 +1.2j
print aComplex.real #-8.33,復(fù)數(shù)的實部
print aComplex.imag #1.2,復(fù)數(shù)的虛部
print aComplex.conjugate() #-8.33 -1.2j,共軛復(fù)數(shù)

?

?

?

?位操作符中的取反操作符(~),對數(shù)到每一位取反。結(jié)果為-(num+ 1)

?

數(shù)字類型轉(zhuǎn)換工廠函數(shù)

?函數(shù)int()long()float()complex()用于將其他數(shù)值類型轉(zhuǎn)換為相應(yīng)到數(shù)值類型。

?python1.5開始,這些函數(shù)也接受字符串參數(shù)。返回字符串所表示的數(shù)值。

?python1.6開始,int()long()在轉(zhuǎn)換字符串時,接受一個進制參數(shù)。如果是數(shù)字類型之間到轉(zhuǎn)換,這個進制參數(shù)不能使用。

?python2.2開始,有了第五個內(nèi)建函數(shù)bool()。它用來將整型值10轉(zhuǎn)換為標準布爾型TrueFalse

?python2.3開始,Python的標準數(shù)據(jù)類型增加了一個新成員。布爾(Boolean)類型。

Python2.2對類型和類進行了整合。所有這些內(nèi)建函數(shù)現(xiàn)在都轉(zhuǎn)變?yōu)楣S函數(shù)。

?所謂工廠函數(shù),就是指這些內(nèi)建函數(shù)都是類對象,當(dāng)你調(diào)用他們時,實際上是創(chuàng)建了一個類實例。

?

數(shù)值工廠函數(shù)總結(jié):

類(工廠函數(shù))

操作

bool(obj)

返回obj對象的布爾值,也就是obj.__nonzero__()方法

int(obj,base=10)

返回一個字符串或數(shù)值對象的整形表示。

long(obj,base=10)

返回一個字符或數(shù)據(jù)對象的長整形表示

float(obj)

返回一個字符串或數(shù)據(jù)對象的浮點型表示

complex(str) 或者

complex(real,imag=0.0)

返回一個字符串的復(fù)數(shù)表示。或者根據(jù)給定的實數(shù)(及一個可選的虛數(shù)部分)生成一個復(fù)數(shù)對象

?

功能函數(shù)

Python提供了5個內(nèi)建函數(shù)用于數(shù)值運算。

abs()

返回給定參數(shù)的絕對值。

如果參數(shù)是一個復(fù)數(shù),那么返回math.sqrt(num.real**2+ num.imag**2)

coerce()

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)。

如果有一個操作數(shù)是復(fù)數(shù),另一個操作數(shù)則被轉(zhuǎn)換為復(fù)數(shù)。

否則,如果有一個操作數(shù)是浮點數(shù),另一個操作數(shù)被轉(zhuǎn)換為浮點數(shù)

否則,如果有一個操作數(shù)是長整形,另一個操作數(shù)被轉(zhuǎn)換為長整形

否則,兩者必然都是普通整數(shù),無須類型轉(zhuǎn)換。

divmod()

divmod()內(nèi)建函數(shù)把除法和取余操作結(jié)合起來。返回一個包含商和余數(shù)的元組。

對整數(shù)來說,返回值就是地板除和取余操作的結(jié)果

對浮點數(shù)來說,返回的商部分是math.floor(num1/num2)

對復(fù)數(shù)來說,返回的商部分是math.floor((num1/num2).real)

注明:

1math.floormath.ceil函數(shù)的區(qū)別

這兩個函數(shù)都是截斷數(shù)字的函數(shù)。這兩個函數(shù)的用途都是截掉小數(shù)以后部分的位數(shù)。

其中:math.floor總是把數(shù)字變得越來越小,而ceil總數(shù)把數(shù)字變大。

?

?

import math
print math.floor(99.1) #99.0
print math.ceil(99.1) #100.0
print math.floor(-0.1) #-1.0
print math.ceil(-0.1) #-0.0

?

?2python3.1.1下,無法對復(fù)數(shù)進行divmod操作。

>>> divmod(1+2j, 1+0.5j)
Traceback (most recent call last):
File
"<stdin>", line 1, in <module>
TypeError: can
't take floor or mod of complex number.
?

pow()

函數(shù)pow()和雙星號(**)操作符都可以進行指數(shù)運算。不過兩者的區(qū)別并不僅僅在于一個是操作符,一個是內(nèi)建函數(shù)。

python1.5之前,并沒有**操作符。

內(nèi)建函數(shù)pow()還接受第三個可選的參數(shù)。即一個余數(shù)參數(shù)。如果有這個參數(shù),pow()先進行指數(shù)運算,然后將運算結(jié)果和第三個參數(shù)進行取余操作。這個特性主要用于密碼計算。并且比pow(x,y)%z性能更好。

round()

內(nèi)建函數(shù)round()用于對浮點型進行四舍五入運算。他有一個可選的小數(shù)位數(shù)參數(shù)。如果不提供小數(shù)位參數(shù),它返回與第一個參數(shù)最接近的整形(仍然是浮點類型),第二個參數(shù)告訴round函數(shù)將結(jié)果精確到小數(shù)點后指定位。

?

print round(100.124) #100.0
print round(100.124,5) #100.124
print round(100.123,2) #100.12

?

?

僅用于整形的函數(shù)

?1、進制轉(zhuǎn)換函數(shù)

除了十進制,Python整形也支持八進制和十六進制。除此之外,Python還提供兩個內(nèi)建函數(shù)來返回字符串表示的八進制和十六進制整形。他們分別是oct()hex()。他們都接受一個整形(任意進制的)對象,并返回一個對應(yīng)值的字符串對象。

?

2ASCII轉(zhuǎn)換函數(shù)

Python也提供了ASCII碼與其序列值之間的轉(zhuǎn)換函數(shù)。每個字符對應(yīng)一個唯一的整型(0~255)函數(shù)chr()接受一個單字節(jié)整型值,返回一個字符串,其值為對應(yīng)的字符。函數(shù)ord()則相反,它接受一個字符,返回其對應(yīng)的整型值。

?

隨機數(shù)函數(shù)

當(dāng)程序需要隨機數(shù)功能時,random模塊就能派上用場。該模塊包含多個偽隨機數(shù)發(fā)生器,他們均以當(dāng)前的時間戳為隨機種子。這樣只要載入這個模塊就能隨時開始工作。

下面列出了該模塊中最常用的函數(shù)。

randint()

兩個整型參數(shù),返回二者之間的隨機整型

randrange()

它接受和range()函數(shù)一樣的參數(shù),隨機返回range([start,]stop[,step])結(jié)果的一項

uniform()

幾乎和randint()一樣,不過他返回的是二者之間的一個浮點型(不包括范圍上限)

random()

類似于uniform(),只不過下限恒等于0.0,上限恒等于1.0

choice()

隨機返回給定序列的一個元素

轉(zhuǎn)載于:https://www.cnblogs.com/dabiao/archive/2010/04/12/1710617.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Python核心教程(第二版)读书笔记(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。