Python 學習 第一篇:數據類型(數字,布爾類型,操作符)


Python語言最常用的對象是變量和常量,常量的值是字面意思,其值是不可變的,變量的值是可變的,例如,123,"上海"是常量,而a=1,a=2,其中a是變量名。內置的核心數據類型有:數字、字符串、列表、字典、元組、文件、集合、None和布爾類型。變量的數據類型是由初始化的常量來指定的,其類型根據賦值是可變的,這就是Python的動態類型模型。

Python語言的特點是:

  • Python是強類型的語言,只能對一個對象進行適合該類型的操作。
  • Python是動態類型的,自動檢測到變量的類型。
  • Python語言是大小寫敏感的,變量a和變量A是不同的變量名,'abc' 和'Abc'是不同的字符串。

一,變量的動態類型

在Python中,類型是在運行過程中動態決定的,而不是通過代碼聲明的,這意味着沒有必要事先聲明變量。

當在Python中運行賦值語句:a = 3 時,Python自動把a作為整數對象來使用。變量名不和類型關聯,變量名只不過是對象的一個引用而已,數據類型是和對象相關聯的。當變量出現在表達式中時,它會馬上被當前引用的對象所代替。

總之,變量在賦值的時候創建,可以引用任何數據類型的對象,並且必須在初始化之后才能引用。

二,數字類型

 Python的數字類型包括:整數、浮點數和復數

  • 整數:在Python3.0中支持無窮精度的整數,可以通過內置函數int(n)來創建整數,整數是精確的,
  • 浮點數:類似於C語言中的雙精度,可以通過內置函數float(n)來創建浮點數,浮點數可能存在誤差,
  • 復數:虛部以j或J結尾,可以通過內置函數complex(real,image)來創建復數
  • 二進制,八進制和十六進制:可以通過內置函數bin(n),oct(n),hex(n)來分別創建二進制數,八進制數和十六進制數

1,基數為2,8和16的整數

二進制,八進制和十六進制只能表示整數:

  • 二進制(binary):以0b或0B開頭,后面接0-1的數字
  • 八進制(octal):以0o或0O開頭,后面接0-7的數字,
  • 十六進制(hex ):以0x或0X開頭,后面接十六進制的數字0-9和A-F,字符編寫成大寫或小寫都行

各個進制的常量表示:

  • 常量0o10 是指十進制的8,使用oct(8)來表示
  • 常量0b10是指十進制的2,使用bin(2)來表示
  • 常量ox10是指十進制的16,使用hex(16)來表示

2,除法

Floor除法是指:把結果向小舍入到最近的整數,例如,小於2.5最小的整數是2,小於-2.5最小的整數是-3

>>> import math
>>> math.floor(2.5)
2
>>> math.floor(-2.5)
-3

在Python 2.6 版本中:

/ 表示傳統除法:如果兩個操作數都是整數類型,執行截斷的整數除法,返回的結果是整數;如果任意一個操作數是浮點數,則返回小數。

// 表示Floor除法:總是截斷余數,當兩個操作數都是整數時,結果是整數(n);如果有任何一個操作數是浮點類型,則返回一個浮點數(n.0)。

在Python 3.0 版本中:

/ 表示真除法:不管操作數的類型,都返回包含小數的結果;

// 表示Floor除法:對於整數執行截斷除法,對於浮點數執行浮點除法。

例如,在Python 3.0 版本中:

>>> 5//2.0
2.0
>>> 5//-2.0
-3.0

3,位操作

把整數當作二進制位串來對待,使用位操作符進行位移操作

>>> x=1  #0b0001
>>> x<<2
4
>>> x|2
3
>>> x&1
1

4,內置的數學工具

導入內置的math模塊,常用的數學工具:

  • pow(a,b),求a的b次冪
  • round(seed):求隨機數
  • math.sqrt(x),求x的平方根
  • math.floor(x):向下取最小的整數
  • math.trunc(x):截斷小數點,保留整數

5,精確小數

精確小數是有固定精度的浮點數,通常情況下,浮點數缺乏精確性,這是因為用來存儲數值的空間有限,例如,下面的計算應該得到0,但是結果卻沒有等於0,而是結果接近於0:

>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17

不過使用精確小數,結果能夠修正:

>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') - Decimal('0.2')
Decimal('0.0')

設置精確小數對象的精度:

decimal.getcontext().prec = 4

6,分數

分數是指帶有分子和分母的表達式,分數 1/2的表示方法是:

>>> from fractions import Fraction
>>> x=Fraction(1,2)

三,布爾類型

bool數據類型的值是:True和False,顯示的是True和False,其行為跟整數1和0是相同的。

布爾類型常用於條件表達式中,用於控制循環結構和分支結構。

對於bool值可以進行邏輯運算(and,or,not)。

1,Python的真值規則

  • 數字0、0.0、空字符串、空值None、空對象(空的元組,空的集合,空的列表)都是False;
  • 其他值都是True

2,布爾and和or運算符返回對象,而不是值True或False

and 和 or運算符總會返回對象,不是運算符左側的對象,就是右側的對象。

對於or運算符而言,Python會由左至右求操作對象,然后返回第一個為真的操作對象。or運算符是短路計算,Python會在其找到第一個True的操作數就停止。如果沒有遇到True的對象,那么返回最后一個假的對象。

>>> 1 or []
1
>>> [] or 1
1
>>> [] or {}
{}

對於and運算符而言,Python會由左至右求操作對象,然后返回第一個為假的操作對象。and運算符是短路計算,Python會在其找到第一個False的操作數就停止。如果沒有遇到False的對象,那么返回最后一個True的對象。

>>> 1 and 2 and 3
3
>>> [] and {}
[]
>>> 1 and []
[]

四,空值

空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。在真值測試中,表現為False。

五,操作符

特殊的操作符

  • =  :賦值
  • ==  :相等
  • !=  :不等
  • is   :檢查對象的同一性,如果兩個變量名指向同一個對象,返回True

1,邏輯運算符

  • and  :邏輯與
  • or  :邏輯或
  • not  :邏輯非

2,邏輯表達式

  • >,<,>=,<=  :大於,小於,大於或等於,小於或等於
  • ==:相等
  • !=:不等

3,算術操作符

  • +  :加
  • -  :減
  • *  :乘
  • **  :冪乘,例如,a**b,是指a的b次方
  • /  :除,在Python3.0中,是真除法,無論任何類型都會保持小數部分
  • //  :Floor除法,省略掉結果的小數部分
  • %  :求模

4,位運算符

  • &  :按位與
  • |  :按位或
  • ^  :異或

5,移位符

  • <<  :向左移位
  • >>  :向右移位

參考文檔:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM