Python 基礎資料型別 (Elementary Data Type)

來源:互聯網
上載者:User

標籤:取值   就是   更新   copy   變數   內容   多少   isa   狀態   

前言

1.Python使用物件模型來儲存資料,每一個資料類型都有一個內建的類,每建立一個資料,實際就是一個對象,即所有資料都是對象。

2.對象的3個特性:

  • 身份:即記憶體位址,可以用id()來擷取
  • 類型:決定了該對象儲存的類型,需要遵循什麼規則,可用type()來擷取該資料類型
  • 值:對象的儲存的的真實資料

3.標準的資料類型:

數字、字串、列表、元祖、字典

4.其他類型:

Null、檔案、集合、函數、類、模組

數字

數字類型分為:int()整型、long()長整型、float()浮點型、 complex()複數、bool()布爾值

注意:Python2區分整型,長整型  ; Python3中無長整型一說,都叫整型。

數字類型的轉換:

數字類型的轉換:

  • int(x, base=None) 將x轉換為一個整數。base為按照多少進位進行轉換

  • float(x) 將x轉換到一個浮點數。

  • complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。

  • complex(x, y) 將 x 和 y 轉換到一個複數,實數部分為 x,虛數部分為 y。x 和 y 是數字運算式。

>>> int(‘101‘,2)5>>> int(‘101‘)101>>> float(‘101‘)101.0>>> complex(3)(3+0j)>>> complex(3,4)(3+4j)

數值運算

加(+)、減(-)、乘(*)、除(/)、取餘(%)、乘方(**):

print(9 / 4)   # 返回 2.25print(9 // 4)  # 返回 2print(2 ** 3)  # 返回 8

注意:數值的除法(/)總是返回一個浮點數,要擷取整數使用(//)操作符。

相關數學函數:

函數 傳回值 ( 描述 )
abs(x) 返回數位絕對值,如abs(-10) 返回 10
ceil(x) 返回數位上入整數,如math.ceil(4.1) 返回 5

cmp(x, y)

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已廢棄 。使用 使用 (x>y)-(x<y) 替換。
exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回數位絕對值,如math.fabs(-10) 返回10.0
floor(x) 返回數位下舍整數,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0
max(x1, x2,...) 返回給定參數的最大值,參數可以為序列。
min(x1, x2,...) 返回給定參數的最小值,參數可以為序列。
modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。
pow(x, y) x**y 運算後的值。
round(x [,n]) 返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位元。
sqrt(x) 返回數字x的平方根,數字可以為負數,傳回型別為實數,如math.sqrt(4)返回 2+0j

三角函數:

函數 描述
acos(x) 返回x的反餘弦弧度值。
asin(x) 返回x的反正弦弧度值。  
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回給定的 X 及 Y 座標值的反正切值。
cos(x) 返回x的弧度的餘弦值。
hypot(x, y) 返回歐幾裡德範數 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 將弧度轉換為角度,如degrees(math.pi/2) , 返回90.0
radians(x) 將角度轉換為弧度

數字常量:

常量 描述
pi 數學常量 pi(圓周率,一般以π來表示)
e 數學常量 e,e即自然常數(自然常數)。

比較運算

運算子 描述符 樣本
== 檢查,兩個運算元的值是否相等,如果是則條件變為真。 (a == b) 不為 true.
!= 檢查兩個運算元的值是否相等,如果值不相等,則條件變為真。 (a != b) 為 true.
<> 檢查兩個運算元的值是否相等,如果值不相等,則條件變為真。 (a <> b) 為 true。這個類似於 != 運算子
> 檢查左運算元的值是否大於右運算元的值,如果是,則條件成立。 (a > b) 不為 true.
< 檢查左運算元的值是否小於右運算元的值,如果是,則條件成立。 (a < b) 為 true.
>= 檢查左運算元的值是否大於或等於右運算元的值,如果是,則條件成立。 (a >= b) 不為 true.
<= 檢查左運算元的值是否小於或等於右運算元的值,如果是,則條件成立。 (a <= b) 為 true.

 

賦值運算

運算子 描述符 樣本
= 簡單的賦值運算子,賦值從右側運算元左側運算元 c = a + b將指定的值 a + b 到 c
+= 加法AND賦值操作符,它增加了右運算元左運算元和結果賦給左運算元 c += a 相當於 c = c + a
-= 減AND賦值操作符,它減去右邊的運算元從左邊運算元,並將結果賦給左運算元 c -= a 相當於 c = c - a
*= 乘法AND賦值操作符,它乘以右邊的運算元與左運算元,並將結果賦給左運算元 c *= a 相當於 c = c * a
/= 除法AND賦值操作符,它把左運算元與正確的運算元,並將結果賦給左運算元 c /= a 相當於= c / a
%= 模量AND賦值操作符,它需要使用兩個運算元的模量和分配結果左運算元 c %= a is equivalent to c = c % a
**= 指數AND賦值運算子,執行指數(功率)計算操作符和賦值給左運算元 c **= a 相當於 c = c ** a
//= 地板除,並分配一個值,執行地板除對操作和賦值給左運算元 c //= a 相當於 c = c // a

位元運算

按位元運算符是把數字看作二進位來進行計算的。Python中的按位元運算法則如下:

變數 a 為 60,b 為 13

>>> a = 60            # 60 = 0011 1100>>> b = 13            # 13 = 0000 1101>>> a & b12>>> a ^ b49>>> a | b61>>> ~a-61>>> a << 2240>>> a >> 215

邏輯運算

運算子 描述 樣本
and 所謂邏輯與運算子。如果兩個運算元都是真的,那麼則條件成立。 (a and b) 為 true.
or 所謂邏輯OR運算子。如果有兩個運算元都是非零然後再條件變為真。 (a or b) 為 true.
not 所謂邏輯非運算子。用於反轉運算元的邏輯狀態。如果一個條件為真,則邏輯非運算子將返回false。 not(a and b) 為 false.

String(字串)

字串:是一個有序的字元的集合,用於儲存和表示的基本的文本資訊。

‘內容‘或 "內容" 中間包含的內容稱為字串

特性:

  • 只能存放一個值
  • 不可變
  • 按照從左至右的順序定義字元集合,下標從0開始順序訪問,有序

字串方法:

 

序號 方法及描述
1

capitalize()
將字串的第一個字元轉換為大寫

2

center(width, fillchar)

返回一個指定的寬度 width 置中的字串,fillchar 為填充的字元,預設為空白格。
3

count(str, beg= 0,end=len(string))

返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數
4

bytes.decode(encoding="utf-8", errors="strict")

Python3 中沒有 decode 方法,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象可以由 str.encode() 來編碼返回。
5

encode(encoding=‘UTF-8‘,errors=‘strict‘)

以 encoding 指定的編碼格式編碼字串,如果出錯預設報一個ValueError 的異常,除非 errors 指定的是‘ignore‘或者‘replace‘
6

endswith(suffix, beg=0, end=len(string))
檢查字串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,如果是,返回 True,否則返回 False.

7

expandtabs(tabsize=8)

把字串 string 中的 tab 符號轉為空白格,tab 符號預設的空格數是 8 。
8

find(str, beg=0 end=len(string))

檢測 str 是否包含在字串中 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回-1
9

index(str, beg=0, end=len(string))

跟find()方法一樣,只不過如果str不在字串中會報一個異常.
10

isalnum()

如果字串至少有一個字元並且所有字元都是字母或數字則返 回 True,否則返回 False
11

isalpha()

如果字串至少有一個字元並且所有字元都是字母則返回 True, 否則返回 False
12

isdigit()

如果字串只包含數字則返回 True 否則返回 False..
13

islower()

如果字串中包含至少一個區分大小寫字元,並且所有這些(區分大小寫)字元都是小寫,則返回 True,否則返回 False
14

isnumeric()

如果字串中只包含數字字元,則返回 True,否則返回 False
15

isspace()

如果字串中只包含空格,則返回 True,否則返回 False.
16

istitle()

如果字串是標題化的(見 title())則返回 True,否則返回 False
17

isupper()

如果字串中包含至少一個區分大小寫字元,並且所有這些(區分大小寫)字元都是大寫,則返回 True,否則返回 False
18

join(seq)

以指定字串作為分隔字元,將 seq 中所有的元素(的字串表示)合并為一個新的字串
19

len(string)

返回字串長度
20

ljust(width[, fillchar])

返回一個原字串靠左對齊,並使用 fillchar 填充至長度 width 的新字串,fillchar 預設為空白格。
21

lower()

轉換字串中所有大寫字元為小寫.
22

lstrip()

截掉字串左邊的空格
23

maketrans()

建立字元對應表的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字串,表示需要轉換的字元,第二個參數也是字串表示轉換的目標。
24

max(str)

返回字串 str 中最大的字母。
25

min(str)

返回字串 str 中最小的字母。
26

replace(old, new [, max])

把 將字串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。
27

rfind(str, beg=0,end=len(string))

類似於 find()函數,不過是從右邊開始尋找.
28

rindex( str, beg=0, end=len(string))

類似於 index(),不過是從右邊開始.
29

rjust(width,[, fillchar])

返回一個原字串靠右對齊,並使用fillchar(預設空格)填充至長度 width 的新字串
30

rstrip()

刪除字串字串末尾的空格.
31

split(str="", num=string.count(str))

num=string.count(str)) 以 str 為分隔字元截取字串,如果 num 有指定值,則僅截取 num 個子字串
32

splitlines([keepends])

按照行(‘\r‘, ‘\r\n‘, \n‘)分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含分行符號,如果為 True,則保留分行符號。
33

startswith(str, beg=0,end=len(string))

檢查字串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查。
34

strip([chars])

在字串上執行 lstrip()和 rstrip()
35

swapcase()

將字串中大寫轉換為小寫,小寫轉換為大寫
36

title()

返回"標題化"的字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle())
37

translate(table, deletechars="")

根據 str 給出的表(包含 256 個字元)轉換 string 的字元, 要過濾掉的字元放到 deletechars 參數中
38

upper()

轉換字串中的小寫字母為大寫
39

zfill (width)

返回長度為 width 的字串,原字串靠右對齊,前面填充0
40

isdecimal()

檢查字串是否只包含十進位字元,如果是返回 true,否則返回 false。
name = ‘I\‘am LiChengGuang‘print(name)                    # 輸出字串,列印:I‘am LiChengGuangprint(len(name))               # 輸出字串長度print(name[0])                 # 輸出第 1 個字元print(name[0: - 1])            # 輸出下標第 1 個位置到倒數第 2 位置的所有字元,列印:I‘am LiChengGuanprint(name[5: 15])             # 輸出下標從第 5 個到第 14 個位置的字元,列印:LiChengGuaprint(name[5:])                # 輸出下標從第 5 個起後面所有的字元,列印: LiChengGuanprint(name * 2)                # 輸出 2 次字串print(‘Hello,‘ + name)         # 字串拼接,列印:Hello,I‘am  LiChengGuanprint(‘Li‘ in name)            # Trueprint(name.find(‘Li‘))         # 尋找,列印 5,即返回開始的索引值,否則返回-1print(name.index(‘Li‘))        # 尋找,列印 5,即返回開始的索引值,沒有則拋異常print(‘Li‘ not in name)        # Falseprint(name.upper())            # 全部轉大寫print(name.lower())            # 全部轉小寫print(name.capitalize())       # 把字串的第一個字元大寫print(name.isspace())          # 是否包含空格print(name.replace(‘Li‘, ‘‘))  # 替換操作print(name.split(‘m‘))         # 分割操作,列印: ["I‘a", ‘ LiChengGuan‘]print(name.strip())            # 去掉字串的左右空格print(name.lstrip())           # 去掉字串的左空格print(name.rstrip())           # 去掉字串的右空格

預留位置

和 Java 一樣,Python 也有預留位置。

%d 表示那個位置是整數;%f 表示浮點數;%s 表示字串。

print(‘Hello,%s‘ % ‘Python‘) print(‘Hello,%d%s%.2f‘ % (666, ‘Python‘, 9.99)) # 列印:Hello,666Python10.00

其中:

1、 % 是轉換開始的標誌;

2、如果不止一個預留位置,要寫在一個圓括弧內,中間用逗號(半形)隔開;

3、%.2f 代表兩位小數,不是兩位會四捨五入。

字串換行

1、三個單引號

Python 三個單引號允許一個字串跨多行,字串中可以包含分行符號、定位字元以及其他特殊字元。

2、三個雙引號

3、\結尾

List(列表)

列表是寫在方括弧 [] 之間、用逗號分隔開的元素列表,列表中元素的類型可以是不相同。如:

s = [100, 100.0, ‘lcg‘, True, ‘I\‘am LiChengGuang‘]

訪問元素

print(s)       # 輸出 list,列印:[100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang"]print(len(s))  # 輸出 list 長度print(s[0])    # 輸出 list 第 1 個元素print(s[2:5])  # 輸出 lsit 下標從第 2 個到第 4個元素,列印:[‘lcg‘, True, "I‘am LiChengGuang"]print(s[2:])   # 輸出 lsit 下標從第 2 個起後面所有元素,列印:[‘lcg‘, True, "I‘am LiChengGuang"]

添加元素

s1 = [False]print(s + s1)                       # [100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False] # 在列表末尾一次性追加另一個列表s.extend(s1)print(‘extend 添加 = ‘ + str(s))     # [100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False] # append 方法拼接,列表末尾添加新的對象s.append(‘測試拼接‘)print(‘append 方法拼接 = ‘ + str(s))  # [100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False, ‘測試拼接‘] s.insert(0, ‘測試拼接‘)  # 指定位置插入元素print(‘insert 插入 = ‘ + str(s))      # [‘測試拼接‘, 100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False, ‘測試拼接‘]

更新元素

s[0] = ‘1024‘print(‘更新元素 = ‘ + str(s))  # 更新元素 = [‘1024‘, 100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False, ‘測試拼接‘]

刪除元素

s.pop()   # pop 方法刪除,可指定位置,預設最後一個print(s)  # 列印:[‘1024‘, 100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False] s.pop(0)  # pop 指定位置刪除print(s)  # 列印:[[100, 100.0, ‘lcg‘, True, "I‘am LiChengGuang", False] del s[0]print(s)  # 列印:[100.0, ‘lcg‘, True, "I‘am LiChengGuang", False] # 移除列表中某個值的第一個匹配項,沒有會拋異常s.remove(‘lcg‘)print(s)

其他

print(s * 2)    # 列印兩次 s.reverse()     # 反向列表中元素print(s) s2 = s.copy()   # 複製print(s2) s.clear()       # 清空print(s)
Tuple(元組)

元組寫在小括弧 () 裡,元素之間用逗號隔開,元組的元素不能修改,沒有 append(),insert() 這樣的方法。

可以通過索引切片來取值,可以使用len()求長度。

Dictionary(字典)

字典用 { } 標識或者 dict() 方法建立字典,它是一個無序的鍵 (key) : 值 (value) 對集合。鍵 (key) 必須使用不可變類型。在同一個字典中,鍵 (key) 必須是唯一的(如果不唯一,將只取最後一個值,但是不建議這樣寫)。{ } 是用來建立一個空字典。

dic = {‘name‘: ‘lcg‘, ‘site‘: ‘http://lcgsmile.cn/‘, ‘code‘: 1024}

訪問元素

print(dic) print(dic[‘site‘])  # 輸出鍵為 site 的值

修改元素

dic[‘code‘] = 520   # 修改元素print(dic[‘code‘])  # 列印:520

新增元素

dic[‘id‘] = 1314  # 新增元素print(dic)  # 列印:{‘name‘: ‘lcg‘, ‘site‘: ‘http://lcgsmile.cn/‘, ‘code‘: 520, ‘id‘: 1314}

刪除元素

dic.pop(‘code‘)  # 刪除 code 鍵print(dic)       # 列印:{‘name‘: ‘lcg‘, ‘site‘: ‘http://lcgsmile.cn/‘, ‘id‘: 1314} dic.clear()      # 清空print(dic)       # 列印:{}# del dic        # 刪除

其他

# dict() 方法建立字典d = dict(id=1024, name=‘lcg‘, site=‘http://lcgsmile.cn/‘)print(d)print(d.copy())        # 淺複製 print(dic.keys())      # 輸出所有鍵,列印:dict_keys([‘name‘, ‘site‘, ‘code‘])print(dic.values())    # 輸出所有值,列印:dict_values([‘lcg‘, ‘http://lcgsmile.cn/‘, 1024])
Sets(集合)

集合是一個無序不重複元素的序列,用大括弧 { } 或者 set() 函數建立。建立一個空集合必須用 set(),因為 { } 是用來建立一個空字典。

s = {‘name‘, ‘site‘, ‘code‘, 1, 1}print(s)  # 輸出集合,重複的元素被自動去掉
空值

空值是 Python 裡一個特殊的值,用 None 表示。

補充

--沒完待續--

Python 基礎資料型別 (Elementary Data Type)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.