成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Learning Python] Chapter 5 Numeric Types

yuxue / 2088人閱讀

摘要:,可以用十進(jìn)制十六進(jìn)制八進(jìn)制二進(jìn)制來表示。由實(shí)數(shù)虛數(shù)組成。,在中,八進(jìn)制可以以開頭,但是在中,不能以開頭,一定要以或者開頭,位的運(yùn)算表示位向左移動表示位向右移動表示或運(yùn)算表示運(yùn)算表示異或運(yùn)算兩者不同為,相同為可以用方法計(jì)算二進(jìn)制數(shù)有多少位。

1, 在Python 2.x 中。Python的integer,有兩種類型,normal和long。Normal通常是32位的。Long表示無限精度,由計(jì)算機(jī)決定。如果數(shù)字后面有l(wèi)或者L,這會強(qiáng)制將該數(shù)字轉(zhuǎn)換為long類型。但其實(shí),用戶不必這樣做,因?yàn)镻ython會在數(shù)值溢出的情況下自動將normal的類型轉(zhuǎn)換為long類型。
然而,在Python 3.x中,normal和long合并了,沒有區(qū)別了。此時不可再在數(shù)字尾部加入l或者L了。

2,integer可以用十進(jìn)制(decimal)、十六進(jìn)制(hexadecimal)、八進(jìn)制(octal)、二進(jìn)制(binary)來表示。后面三種在編程領(lǐng)域很常見。
十六進(jìn)制(hexadecimal):以0x或者0X開頭,接0~9或者A~F,大小寫沒有關(guān)系;
八進(jìn)制(octal):以0o或者0O開頭,接0~7;
二進(jìn)制(binary):以0b或者0B開頭,接0~1.
想要將數(shù)字轉(zhuǎn)換為十進(jìn)制的,可以用int(數(shù)值)方法:如int(0o100)=64;
想要將數(shù)字轉(zhuǎn)換為八進(jìn)制的,可以用oct(數(shù)值)方法,如oct(0x40)= 0o100;
想要將數(shù)字轉(zhuǎn)換為十六進(jìn)制的,可以用hex(數(shù)值)方法,如hex(64)= 0x40;
想要將數(shù)字轉(zhuǎn)換為二進(jìn)制的,可以用bin(數(shù)值)方法,如bin(64)= 0b1000000;

3,使用如下的方法可以將integer I 轉(zhuǎn)換為十六進(jìn)制數(shù)、八進(jìn)制數(shù)、二進(jìn)制數(shù):
hex(I)、oct(I)、bin(I)。

4,復(fù)數(shù) complex numbers。由實(shí)數(shù)+虛數(shù)組成。其中,虛數(shù)要以j或者J結(jié)尾。復(fù)數(shù)可以沒有實(shí)數(shù)部分。

5, str()和repr()這兩個方法都是可以將數(shù)值轉(zhuǎn)換為字符串,不同的是,str()對用戶比較友好,repr()對Python比較友好。但通常情況下,它們都是相同的。

6,在Python中,除法分為三種:
6.1,true:表示真正的除法,返回值包含小數(shù)部分,屬于float型,而不管除數(shù)和被除數(shù)是什么類型的數(shù)據(jù)。跟數(shù)學(xué)里面的除法概念吻合;
6.2,classic:如果除數(shù)或被除數(shù)之一是float類型的數(shù)據(jù),classic除法的商保留小數(shù)部分,為float型數(shù)據(jù)。而如果除數(shù)和被除數(shù)皆為integer,則商會去掉小數(shù)部分,往下取整(比如,本來是2.6,取整后為2。而本來是-2.7,取整后為-3)。
6.3,floor:這種除法的商會去掉小數(shù)部分,向小的方向靠攏。如果除數(shù)和被除數(shù)皆為integer 類型,這商也是integer。而如果除數(shù)和被除數(shù)之一是float型,則商也是float型。

7, 在Python 2.X中,/表示classic型除法,//表示floor型除法。
在Python 3.x中,/表示true型除法,//表示floor型除法。
Python 3.x已經(jīng)沒有classic型除法了。
ps: 如果在Python2.x中想要用到3.x的除法,可以在開頭加入這樣的statement:

from __future__ import division

8,為了讓代碼在Python2.x和3.x中都兼容,如果需要取整的操作,總是用//比較好。

9,在math模塊中,提供了floor和trunc的方法。非常有用:

>>>import math
>>>math.floor(2.5)   # closest number below value
2
>>>math.floor(-2.5)
-3
>>>math.trunc(2.5)  # truncate fractional part
2
>>>math.trunc(-2.5)
-2
注意:int(I)也有truncate的功能。

10, 在Python中,實(shí)部和虛部都是float型的,虛部以j或者J結(jié)尾。

11,在Python 2.x中,八進(jìn)制可以以0開頭,但是在Python 3.x中,不能以0開頭,一定要以0o或者0O開頭!

12,位的運(yùn)算bitwise operations

<<表示位向左移動
>>表示位向右移動
| 表示或運(yùn)算
& 表示AND運(yùn)算
^ 表示異或運(yùn)算(兩者不同為1,相同為0)

可以用bit_lenth()方法計(jì)算二進(jìn)制數(shù)有多少位。或者len(bin())-2。因?yàn)閘en()會包含開頭的0b這兩位。

13,位的運(yùn)算對Python這種高級語言不重要,如果需要做很多位運(yùn)算,應(yīng)該考慮低級語言如C語言。

14,round()方法可以做小數(shù)的四舍五入。如round(3.78)= 4.0, round(3,789, 2) = 3.79, round()里面的第二個參數(shù)表示的是保留多少位小數(shù)。

15,Python中的pow()函數(shù)用來計(jì)算指數(shù)。比如pow(2,4)=16, 和 2 ** 4一樣的結(jié)果。

16,Python中,有自帶的min和max()方法。min和max方法接受任意個多帶帶的參數(shù)。如min(3, 1, 2, 4)= 1.

17,Python中有sum方法,可以將一列數(shù)相加起來,但是這列數(shù)應(yīng)該寫在括號內(nèi)作為一個sequence,比如sum((1,2,3,4)) = 10,也可以是這樣的sum([1, 2, 3, 4])。

18,abs函數(shù)可以取絕對值。

19,在Python中,有三種方法可以計(jì)算平方根:

A, math.sqrt(144)   #Module
B, 144 ** .5        #Expression
C, pow(144, .5)    #Built-in

20, 在Python中,計(jì)算0.1 + 0.1 + 0.1 – 0.3 并不會得到0這個準(zhǔn)確的值。這是由于計(jì)算機(jī)由于缺少精確度而無法精確地保存數(shù)據(jù)引起的。這個時候,decimal模塊很好的解決了這個問題,通過調(diào)用decimal模塊的Decimal構(gòu)造函數(shù),把數(shù)據(jù)轉(zhuǎn)換為str型傳入,再進(jìn)行運(yùn)算,結(jié)果就會返回精確的0,如下:

from decimal import Decimal
print Decimal("0.1") + Decimal("0.1") + Decimal("0.1") - Decimal("0.3")

結(jié)果:0.0
如果傳入的參數(shù)仍然是float型,將無法獲得這個結(jié)果。

21,使用Decimal()函數(shù)的時候。也可以設(shè)定全局精確度:

decimal.getcontext().prec = 4  #設(shè)定全局精確度為4位小數(shù)。

22,使用Fraction()函數(shù),也可以獲得和Decimal()一樣的精確效果。Fraction()函數(shù)位于fractions 模塊中,需要先import才可以使用。
Fraction(numerator, denominator),會自動的簡化分?jǐn)?shù)。
Fraction()還可以將str參數(shù)轉(zhuǎn)換為分?jǐn)?shù),比如Fraction(‘.25’)=Fraction(1, 4)

23, 初始化一個空的set,使用S = set()。創(chuàng)建一個新的set并且賦值,使用 S = {1, 2, 3, 4}。后續(xù)若需再想set里面增加item,可以用S.add(‘…’)

24, set的運(yùn)算,&表示交集,| 表示并集,- 表示差別,> 表示super set,返回布爾值。這些運(yùn)算必須都是set類型。

25,union也可以用來創(chuàng)造出并集運(yùn)算。Union里的參數(shù)可以是list,可以是set,還可以是tuple。
{1,2, 3}.union([3, 4])
{1,2, 3}.union({3, 4})

26,intersection也可以用來計(jì)算交集,參數(shù)可以是list,可以是set,還可以是tuple。

27,issubset()函數(shù)可以判斷某set是否是令一個set的子集

28,set和tuple的區(qū)別:

Set在后續(xù)可以增加值,減少值,但tuple不能
Set里面的值必須是互不相同的,但tuple可以接受相同的值。
Set可以內(nèi)嵌tuple,不能內(nèi)嵌list,dictionary。

http://blog.csdn.net/u0103675...

29,set comprehensions

{x ** 2 for x in [1, 2, 3, 4]}
{16, 1, 4, 9}

30, set可以用來過濾掉重復(fù)的item:

>>> L = [1, 2, 1, 3, 2, 4, 5]
>>> set(L)
{1, 2, 3, 4, 5}

31,set的運(yùn)算:

>>> engineers = {"bob", "sue", "ann", "vic"}
>>> managers = {"tom", "sue"}
>>> "bob" in engineers # Is bob an engineer?
True
>>> engineers & managers # Who is both engineer and manager?
{"sue"}
>>> engineers | managers # All people in either category
{"bob", "tom", "sue", "vic", "ann"}
>>> engineers - managers # Engineers who are not managers
{"vic", "ann", "bob"}
>>> managers - engineers # Managers who are not engineers
{"tom"}
>>> engineers > managers # Are all managers engineers? (superset)
False
>>> {"bob", "sue"} < engineers # Are both engineers? (subset)
True
>>> (managers | engineers) > managers # All people is a superset of managers
True
>>> managers ^ engineers # Who is in one but not both?
{"tom", "vic", "ann", "bob"}
>>> (managers | engineers) - (managers ^ engineers) # Intersection!
{"sue"}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38303.html

相關(guān)文章

  • [Learning Python] Chapter 7 String Fundamentals

    摘要:此時不要在這里面的右邊加入,否則會被當(dāng)做。,這個式子可以將二進(jìn)制數(shù),轉(zhuǎn)換為十進(jìn)制的。需要注意的是,需要加上,表示。下面,表示括號內(nèi)的第一個參數(shù),表示第二個參數(shù)。 1, 字符串的連接concatenate有兩種方式:A:直接寫在一起: >>> title = Meaning of Life # Implicit concatenation >>> title Meaning of L...

    baoxl 評論0 收藏0
  • [Learning Python] Chapter 4. Introducing Python Ob

    摘要:可以連接,可以重復(fù)可以將兩個連接在一起可以重復(fù)任意次數(shù)如中,號作用于表示連接,而作用于數(shù)字表示加法,操作符的作用會根據(jù)其作用的對象而有所適應(yīng)。中的對象被分類為和。針對的核心類型,數(shù)字字符串和都是的。 1, >>> len(str(3)) 結(jié)果是1,len不能對數(shù)字求值,需要先將數(shù)字轉(zhuǎn)換為str 2, math模塊中,有許多工具可以用來計(jì)算數(shù)學(xué)問題。使用math模塊,先導(dǎo)入math: i...

    CHENGKANG 評論0 收藏0
  • [Learning Python] Chapter 6: The Dynamic Typing In

    摘要:,可以對對象進(jìn)行自動地回收。如下,這種情況的發(fā)生表示隨改變了,應(yīng)該意識到這個問題。代表引用相同則返回,否則,返回。這個判斷會更加嚴(yán)格。的值為的兩個量,其必定也是。,和指向了不同的。,由于會存儲一些小的和小的以方便重新利用。 1, 在Python中,類型永遠(yuǎn)跟隨object,而非variable。Variable沒有類型。 2,在下面的三個式子中,a首先被賦予整形3,再被賦予字符串‘sp...

    lily_wang 評論0 收藏0
  • [Learning Python] Chapter 8 Lists and Dictionaries

    摘要:,如何一個方法一使用方法二使用方法方法三使用方法,按升序或降序排列表示升序表示降序和會返回。而僅能刪除一個。使用方法可以避免這樣的錯誤導(dǎo)致程序出現(xiàn)。,在中,的方法返回的不再是。不過可以使用強(qiáng)迫它們組成一個。 Chapter 8 Lists and Dictionaries1, list的concatenation 和 repetition 操作: >>> [1, 2, 3] + [4,...

    gekylin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<