python集合类型的操作符_Python 语言学习 第一篇:数据类型(数字,集合,布尔类型,操作符)...
Python語言最常用的對象是變量和常量,常量的值是字面意思,變量的值是可變的,例如,123,"上海"是常量,而a=1,a=2,其中a是變量名。內(nèi)置的核心數(shù)據(jù)類型有:數(shù)字、字符串、列表、字典、元組、文件、集合、None和布爾類型。Python是強類型的語言,變量的數(shù)據(jù)類型是由初始化的常量來指定的,其類型根據(jù)賦值是可變的,這就是Python的動態(tài)類型模型。
一,變量的動態(tài)類型
在Python中,類型是在運行過程中動態(tài)決定的,而不是通過代碼聲明的,這意味著沒有必要事先聲明變量。
當在Python中運行賦值語句:a = 3 時,Python自動把a作為整數(shù)對象來使用。變量名不和類型關(guān)聯(lián),變量名只不過是對象的一個引用而已,數(shù)據(jù)類型是和對象相關(guān)聯(lián)的。當變量出現(xiàn)在表達式中時,它會馬上被當前引用的對象所代替。
總之,變量在賦值的時候創(chuàng)建,可以引用任何數(shù)據(jù)類型的對象,并且必須在初始化之后才能引用。
二,數(shù)字類型
Python的數(shù)字類型包括:整數(shù)、浮點數(shù)和復(fù)數(shù)
整數(shù):在Python3.0中支持無窮精度的整數(shù),可以通過內(nèi)置函數(shù)int(n)來創(chuàng)建整數(shù),整數(shù)是精確的,
浮點數(shù):類似于C語言中的雙精度,可以通過內(nèi)置函數(shù)float(n)來創(chuàng)建浮點數(shù),浮點數(shù)可能存在誤差,
復(fù)數(shù):虛部以j或J結(jié)尾,可以通過內(nèi)置函數(shù)complex(real,image)來創(chuàng)建復(fù)數(shù)
二進制,八進制和十六進制:可以通過內(nèi)置函數(shù)bin(n),oct(n),hex(n)來分別創(chuàng)建二進制數(shù),八進制數(shù)和十六進制數(shù)
1,基數(shù)為2,8和16的整數(shù)
二進制,八進制和十六進制只能表示整數(shù):
二進制(binary):以0b或0B開頭,后面接0-1的數(shù)字
八進制(octal):以0o或0O開頭,后面接0-7的數(shù)字,
十六進制(hex ):以0x或0X開頭,后面接十六進制的數(shù)字0-9和A-F,字符編寫成大寫或小寫都行
各個進制的常量表示:
常量0o10 是指十進制的8,使用oct(8)來表示
常量0b10是指十進制的2,使用bin(2)來表示
常量ox10是指十進制的16,使用hex(16)來表示
2,除法
Floor除法是指:把結(jié)果向小舍入到最近的整數(shù),例如,小于2.5最小的整數(shù)是2,小于-2.5最小的整數(shù)是-3
>>>import math>>> math.floor(2.5)2
>>> math.floor(-2.5)-3
在Python 2.6 版本中:
/ 表示傳統(tǒng)除法:如果兩個操作數(shù)都是整數(shù)類型,執(zhí)行截斷的整數(shù)除法,返回的結(jié)果是整數(shù);如果任意一個操作數(shù)是浮點數(shù),則返回小數(shù)。
// 表示Floor除法:總是截斷余數(shù),當兩個操作數(shù)都是整數(shù)時,結(jié)果是整數(shù)(n);如果有任何一個操作數(shù)是浮點類型,則返回一個浮點數(shù)(n.0)。
在Python 3.0 版本中:
/ 表示真除法:不管操作數(shù)的類型,都返回包含小數(shù)的結(jié)果;
// 表示Floor除法:對于整數(shù)執(zhí)行截斷除法,對于浮點數(shù)執(zhí)行浮點除法。
例如,在Python 3.0 版本中:
>>> 5//2.0
2.0
>>> 5//-2.0
-3.0
3,位操作
把整數(shù)當作二進制位串來對待,使用位操作符進行位移操作
>>> x=1 #0b0001
>>> x<<2
4
>>> x|2
3
>>> x&1
1
4,內(nèi)置的數(shù)學(xué)工具
導(dǎo)入內(nèi)置的math模塊,常用的數(shù)學(xué)工具:
pow(a,b),求a的b次冪
round(seed):求隨機數(shù)
math.sqrt(x),求x的平方根
math.floor(x):向下取最小的整數(shù)
math.trunc(x):截斷小數(shù)點,保留整數(shù)
5,精確小數(shù)
精確小數(shù)是有固定精度的浮點數(shù),通常情況下,浮點數(shù)缺乏精確性,這是因為用來存儲數(shù)值的空間有限,例如,下面的計算應(yīng)該得到0,但是結(jié)果卻沒有等于0,而是結(jié)果接近于0:
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
不過使用精確小數(shù),結(jié)果能夠修正:
>>> from decimalimport Decimal>>> Decimal('0.1') + Decimal('0.1') - Decimal('0.2')
Decimal('0.0')
設(shè)置精確小數(shù)對象的精度:
decimal.getcontext().prec = 4
6,分數(shù)
分數(shù)是指帶有分子和分母的表達式,分數(shù) 1/2的表示方法是:
>>> fromfractions import Fraction>>> x=Fraction(1,2)
三,集合
集合(set)是一些唯一的、不可變的對象的無序集合,這些對象支持集合操作。集合的特點是:
根據(jù)定義,一個項(元素,item)在集合中只能出現(xiàn)一次,不管把它添加多少次。
集合是無序的
1,創(chuàng)建集合
集合的三種定義方式,使用內(nèi)置函數(shù)set創(chuàng)建集合
>>> set([1,2,3,4])
{1, 2, 3, 4}>>> set('abcd')
{'d', 'b', 'a', 'c'}
或者使用大括號創(chuàng)建集合:
>>> {1,2,3,4}
{1, 2, 3, 4}
2,集合操作
in :項是否存在于集合中
>>> x={1,2,3,4}>>> 1 inx
True
- :集合的差集
>>> y={2,3,4,5}>>> x-y
{1}
|:集合的交集,等價于x.union(y)
>>> x|y # x.union(y)
{1, 2, 3, 4, 5}
&:集合的并集,等價于 x.intersection(y)
>>> x&y # x.intersection(y)
{2, 3, 4}
^:集合的異或
>>> x ^y
{1, 5}
>, < :集合的子集,等價于x.issubset(y)
>>> xy #x.issubset(y), y.issubset(x)
(False, False)
3,集合的修改
add()用于添加集合元素,remove()用于移除集合元素,update()用于歸并集合元素
>>> x.add(6)>>>x
{1, 2, 3, 4, 6}>>> x.remove(1)>>>x
{2, 3, 4, 6}>>> x.update({2,5})>>>x
{2, 3, 4, 5, 6}
四,布爾類型
bool數(shù)據(jù)類型的值是:True和False,顯示的是True和False,其行為跟整數(shù)1和0是相同的。
布爾類型常用于條件表達式中,用于控制循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)。
五,操作符
特殊的操作符
=? :賦值
==? :相等
!=? :不等
is? ?:檢查對象的同一性,如果兩個變量名指向同一個對象,返回True
1,邏輯運算符
and? :邏輯與
or? :邏輯或
not? :邏輯非
2,邏輯表達式
>,=,<=? :大于,小于,大于或等于,小于或等于
3,算術(shù)操作符
+? :加
-? :減
*? :乘
**? :冪乘,例如,a**b,是指a的b次方
/? :除,在Python3.0中,是真除法,無論任何類型都會保持小數(shù)部分
//? :Floor除法,省略掉結(jié)果的小數(shù)部分
%? :求模
4,位運算符
&? :按位與
|? :按位或
^? :異或
5,移位符
<
>>? :向右移位
總結(jié)
以上是生活随笔為你收集整理的python集合类型的操作符_Python 语言学习 第一篇:数据类型(数字,集合,布尔类型,操作符)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组元素的修改会影响到转换过来的结合_数
- 下一篇: python非递归前序遍历二叉树_Lin