開啟掘金成長之旅!這是我參與「掘金日新計(jì)劃 · 12 月更文挑戰(zhàn)」的第11天,點(diǎn)擊查看活動(dòng)詳情
1 六大數(shù)據(jù)類型
- Number(數(shù)字)
- String(字符串)
- Tuple(元組)
- List(列表)
- Dictionary(字典)
- Set(集合)
- 不可變數(shù)據(jù)(3 個(gè)):Number(數(shù)字)、String(字符串)、Tuple(元組)
- 可變數(shù)據(jù)(3 個(gè)):List(列表)、Dictionary(字典)、Set(集合)
2 Number(數(shù)字)
三種不同的數(shù)值類型:
- int(整型) :通常被稱為是整型或整數(shù),是正或負(fù)整數(shù),不帶小數(shù)點(diǎn)。布爾(bool)是整型的子類型。
- float(浮點(diǎn)型):浮點(diǎn)型由整數(shù)部分與小數(shù)部分組成,浮點(diǎn)型也可以使用科學(xué)計(jì)數(shù)法表示(2.5e2 = 2.5 x 102 = 250)
- complex(復(fù)數(shù)):復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型
數(shù)字類型轉(zhuǎn)換:
int(x) :將x轉(zhuǎn)換為一個(gè)整數(shù)。
float(x) :將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)。
complex(x) :將x轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 0。
complex(x, y) :將 x 和 y 轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達(dá)式
常用數(shù)學(xué)函數(shù):
函數(shù) | 描述 |
---|
abs(x) | 返回?cái)?shù)字的絕對值,如abs(-10) 返回 10 | fabs(x) | 返回?cái)?shù)字的絕對值,如math.fabs(-10) 返回10.0 | ceil(x) | 返回?cái)?shù)字的上入整數(shù),如math.ceil(4.1) 返回 5 | floor(x) | 返回?cái)?shù)字的下舍整數(shù),如math.floor(4.9)返回 4 | max(x1, x2,...) | 返回給定參數(shù)的最大值,參數(shù)可以為序列。 | min(x1, x2,...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列。 | pow(x, y) | x**y 運(yùn)算后的值。 | round(x [,n]) | 返回浮點(diǎn)數(shù) x 的四舍五入值,如給出 n 值,則代表舍入到小數(shù)點(diǎn)后的位數(shù)。 |
隨機(jī)數(shù)函數(shù):
函數(shù) | 描述 |
---|
choice(seq) | 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。 | randrange ([start,] stop [,step]) | 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)默認(rèn)值為 1 | random() | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。 | shuffle(lst) | 將序列的所有元素隨機(jī)排序 | uniform(x, y) | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi)。 |
3 String(字符串)
Python中的字符串用單引號(hào) ' 或雙引號(hào) ' 括起來,同時(shí)使用反斜杠 \ 轉(zhuǎn)義特殊字符。
常用字符串運(yùn)算符:
操作符 | 描述 | 實(shí)例 |
---|
+ | 字符串連接 | a + b 輸出結(jié)果: ab | * | 重復(fù)輸出字符串 | a*2 輸出結(jié)果:aa | [] | 通過索引獲取字符串中字符 | a='Hello’,a[1] 輸出結(jié)果:e | [ : ] | 截取字符串中的一部分,遵循左閉右開原則,str[0:2] 是不包含第 3 個(gè)字符的 | a='Hello’,a[1:4] 輸出結(jié)果 ell | in | 成員運(yùn)算符 - 如果字符串中包含給定的字符返回 True | 'H' in Hello 輸出結(jié)果 True | not in | 成員運(yùn)算符 - 如果字符串中不包含給定的字符返回 True | 'M' not in Hello 輸出結(jié)果 True |
字符串格式化:
name = '小袁'
age = 20
# 語法一:%
print('我的名字是:%s ,年齡是:%d' % (name,age)) # 我的名字是:小袁 ,年齡是:20
#語法二:f'{表達(dá)式}'
print(f'我的名字是:{name},我的年齡是:{age}') # 我的名字是:小袁,我的年齡是:20
復(fù)制代碼
4 Tuple(元組)
元組創(chuàng)建很簡單,只需要在括號(hào)() 中添加元素,并使用逗號(hào)隔開即可,并且==元組中的元素不能改變!==
tup1 = ('hello', 'world', 1, 2)
print(tup1) # ('hello', 'world', 1, 2)
print(type(tup1)) # <class 'tuple'>
復(fù)制代碼
遍歷元組:
tup1 = ('hello', 'world', 1, 2)
for i in tup1:
print(i,end=' ')
# hello world 1 2
復(fù)制代碼
常用運(yùn)算符:
操作符 | 描述 | 實(shí)例 |
---|
len() | 計(jì)算元素個(gè)數(shù) | len(tup1),輸出結(jié)果:4 | + | 連接 | tup1 + (3,4),輸出結(jié)果:('hello', 'world', 1, 2, 3, 4) | * | 復(fù)制 | ('Hi!',) * 4 ,輸出結(jié)果:('Hi!', 'Hi!', 'Hi!', 'Hi!') | in | 元素是否存在 | 3 in (1, 2, 3),輸出結(jié)果:True | [] | 讀取第幾個(gè)元素 | [0],輸出結(jié)果:hello | [ : ] | 截取字符串中的一部分,遵循左閉右開原則 | [0:2],輸出結(jié)果:('hello', 'world') |
5 List(列表)
列表是寫在方括號(hào) [] 之間、用逗號(hào)分隔開的元素列表。列表中元素的類型可以不相同,它支持?jǐn)?shù)字,字符串甚至可以包含列表(所謂嵌套)。==列表中的元素是可以改變的!==
修改列表:
a = [1, 2, 3, 4, 5]
# 下表索引的方式修改
a[0] = 9
print(a) # [9, 2, 3, 4, 5]
# append()方法:追加列表
a.append(6)
print(a) # [9, 2, 3, 4, 5, 6]
# del 語句來刪除列表的的元素
del a[0]
print(a) # [2, 3, 4, 5, 6]
復(fù)制代碼
嵌套列表:
a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c']
x = [a, b]
print(x) # [[1, 2, 3, 4, 5], ['a', 'b', 'c']]
print(x[0]) # [1, 2, 3, 4, 5]
print(x[0][1]) # 2
復(fù)制代碼
遍歷列表:
a = [1, 2, 3, 4, 5]
for i in a:
print(i,end=' ')
# 1 2 3 4 5
復(fù)制代碼
==常用運(yùn)算符同元組!==
常用方法:
方法名 | 描述 |
---|
list.append(obj) | 在列表末尾添加新的對象 | list.count(obj) | 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) | list.index(obj) | 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 | list.insert(index, obj) | 將對象從對應(yīng)索引位置插入列表 | list.pop([index=-1]) | 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值 | list.reverse() | 反轉(zhuǎn)列表中元素 | list.sort( key=None, reverse=False) | 對原列表進(jìn)行排序 | list.clear() | 清空列表 | list.copy() | 復(fù)制列表 |
6 Dictionary(字典)
字典的每個(gè)鍵值 key=>value 對用冒號(hào) : 分割,每個(gè)對之間用逗號(hào)(, )分割,整個(gè)字典包括在花括號(hào) {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
復(fù)制代碼
==鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字==
訪問字典的值:
dict = {'Name': '小明', 'Age': 20}
print(dict) # {'Name': '小明', 'Age': 20}
print (dict['Name']) # 小明
print (dict['Age']) # 20
復(fù)制代碼
修改字典:
dict = {'Name': '小明', 'Age': 20}
dict['Name'] = '小黑'
dict['Age'] = 22
print(dict) # {'Name': '小黑', 'Age': 22}
復(fù)制代碼
遍歷字典:
dict = {'Name': '小明', 'Age': 20}
#遍歷鍵
for key in dict.keys():
print(key)
'''
Name
Age
'''
# 遍歷值
for value in dict.values():
print(value)
'''
小明
20
'''
復(fù)制代碼
7 Set(集合)
集合可以使用大括號(hào) {} 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來創(chuàng)建一個(gè)空字典。==集合是一個(gè)無序的不重復(fù)元素序列,集合內(nèi)的元素可以改變!==
兩種創(chuàng)建格式:
set1 = {'小黑',20,20}
print(set1) # {'小黑', 20} ;元素不重復(fù)只顯示一個(gè)20
set2 = set('abcd')
print(set2) # {'c', 'b', 'd', 'a'} ; 元素沒有順序
復(fù)制代碼
修改集合:
set1 = {'小黑',20,20}
#add():添加方法
set1.add('大學(xué)生')
print(set1) # {'大學(xué)生', '小黑', 20}
# update():也可以添加元素,且參數(shù)可以是列表,元組,字典等
set1.update([1,2],[3,4])
print(set1) # {1, '大學(xué)生', 2, 3, 4, 20, '小黑'}
# remove():移除元素
set1.remove('大學(xué)生')
print(set1) # {1, 2, 3, 4, 20, '小黑'}
復(fù)制代碼
遍歷集合:
set1 = {'小黑',20,20}
for i in set1:
print(i,end=' ')
# 20 小黑
復(fù)制代碼
8 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
int()
將float、bool、str類型的數(shù)據(jù)轉(zhuǎn)換為int類型。==float類型轉(zhuǎn)換為int類型時(shí)去除小數(shù)點(diǎn)后面的數(shù);bool類型轉(zhuǎn)換為int類型時(shí)False變?yōu)?、True變?yōu)?;str類型直接轉(zhuǎn)換為int類型==
案例:
# 定義float變量
f = 9.99
# 定義bool類型變量
b1 = False
b2 = True
# 定義str類型變量
s = '111'
# 使用int()函數(shù)
int1 = int(f)
int2 = int(b1)
int3 = int(b2)
int4 = int(s)
print('int1:',int1)
print('int1的類型是:',type(int1))
print('-'*10)
print('int2:',int2)
print('int2的類型是:',type(int2))
print('int3:',int3)
print('int3的類型是:',type(int3))
print('-'*10)
print('int3:',int4)
print('int3的類型是:',type(int4))
'''
int1: 9
int1的類型是: <class 'int'>
----------
int2: 0
int2的類型是: <class 'int'>
int3: 1
int3的類型是: <class 'int'>
----------
int3: 111
int3的類型是: <class 'int'>
'''
復(fù)制代碼
bool()
將int、float、str類型的數(shù)據(jù)轉(zhuǎn)換為bool類型。==int類型轉(zhuǎn)換為bool類型時(shí)0變?yōu)镕alse、其他數(shù)據(jù)變?yōu)門rue;float類型轉(zhuǎn)換為bool時(shí)0.0變?yōu)镕alse、其他數(shù)據(jù)變?yōu)門rue;str類型轉(zhuǎn)換為bool類型時(shí)不存在數(shù)據(jù)變?yōu)镕alse、存在數(shù)據(jù)變?yōu)門rue。==
案例:
# 定義int變量
i1 = 0
i2 = -1
i3 = 1
# 定義float變量
f1 = 0.0
f2 = -1.0
f3 = 1.0
# 定義str變量
s1 = ''
s2 = '0'
s3 = '-1'
s4 = '1'
s5 = 'A'
# 使用bool()函數(shù)
b1 = bool(i1)
b2 = bool(i2)
b3 = bool(i3)
b4 = bool(f1)
b5 = bool(f2)
b6 = bool(f3)
b7 = bool(s1)
b8 = bool(s2)
b9 = bool(s3)
b10 = bool(s4)
b11 = bool(s5)
print('b1:',b1)
print('b1的類型是:',type(b1))
print('b2:',b2)
print('b2的類型是:',type(b2))
print('b3:',b3)
print('b3的類型是:',type(b3))
print('-'*10)
print('b4:',b4)
print('b4的類型是:',type(b4))
print('b5:',b5)
print('b5的類型是:',type(b5))
print('b6:',b6)
print('b6的類型是:',type(b6))
print('-'*10)
print('b7:',b7)
print('b7的類型是:',type(b7))
print('b8:',b8)
print('b8的類型是:',type(b8))
print('b9:',b9)
print('b9的類型是:',type(b9))
print('b10:',b10)
print('b10的類型是:',type(b10))
print('b11:',b11)
print('b11的類型是:',type(b11))
'''
b1: False
b1的類型是: <class 'bool'>
b2: True
b2的類型是: <class 'bool'>
b3: True
b3的類型是: <class 'bool'>
----------
b4: False
b4的類型是: <class 'bool'>
b5: True
b5的類型是: <class 'bool'>
b6: True
b6的類型是: <class 'bool'>
----------
b7: False
b7的類型是: <class 'bool'>
b8: True
b8的類型是: <class 'bool'>
b9: True
b9的類型是: <class 'bool'>
b10: True
b10的類型是: <class 'bool'>
b11: True
b11的類型是: <class 'bool'>
'''
復(fù)制代碼
float()
將int、bool、str類型的數(shù)據(jù)轉(zhuǎn)換為float類型數(shù)據(jù)。==int類型轉(zhuǎn)換為float時(shí)在末尾添加小數(shù)位;bool類型轉(zhuǎn)換為float時(shí)False變?yōu)?.0,、True變?yōu)?.0;str類型直接轉(zhuǎn)換為float類型。==
案例:
# 定義int變量
i1 = 1
i2 = -1
# 定義bool變量
b1 = False
b2 = True
# 定義str變量
s1 = '99'
# 使用float()函數(shù)
f1 = float(i1)
f2 = float(i2)
f3 = float(b1)
f4 = float(b2)
f5 = float(s1)
print('f1:',f1)
print('f1的類型是:',type(f1))
print('f2:',f2)
print('f2的類型是:',type(f2))
print('-'*10)
print('f3:',f3)
print('f3的類型是:',type(f3))
print('f4:',f4)
print('f4的類型是:',type(f4))
print('-'*10)
print('f5:',f5)
print('f5的類型是:',type(f5))
'''
f1: 1.0
f1的類型是: <class 'float'>
f2: -1.0
f2的類型是: <class 'float'>
----------
f3: 0.0
f3的類型是: <class 'float'>
f4: 1.0
f4的類型是: <class 'float'>
----------
f5: 99.0
f5的類型是: <class 'float'>
'''
復(fù)制代碼
str()
將int、float、bool、list、tuple、set、dict類型的數(shù)據(jù)轉(zhuǎn)換為str類型
案例:
# 定義int類型變量
i1 = 1
# 定義float類型變量
f1 = 9.99
# 定義bool類型變量
b1 = False
b2 = True
# 定義list類型變量
l1 = [1, 2, 'a', 'b']
# 定義tuple類型變量
t1 = (1, 2, 'a', 'b')
# 定義set類型變量
s1 = {1, 2, 'a', 'b'}
# 定義dict類型變量
d1 = {'name': '小白', 'age':18}
# 使用str()函數(shù)
str1 = str(i1)
str2 = str(f1)
str3 = str(b1)
str4 = str(b2)
str5 = str(l1)
str6 = str(t1)
str7 = str(s1)
str8 = str(d1)
print('str1:',str1)
print('str1的類型是:',type(str1))
print('-'*10)
print('str2:',str2)
print('str2的類型是:',type(str2))
print('-'*10)
print('str3:',str3)
print('str3的類型是:',type(str3))
print('str4:',str4)
print('str4的類型是:',type(str4))
print('-'*10)
print('str5:',str5)
print('str5的類型是:',type(str5))
print('-'*10)
print('str6:',str6)
print('str6的類型是:',type(str6))
print('-'*10)
print('str7:',str7)
print('str7的類型是:',type(str7))
print('-'*10)
print('str8:',str8)
print('str8的類型是:',type(str8))
'''
str1: 1
str1的類型是: <class 'str'>
----------
str2: 9.99
str2的類型是: <class 'str'>
----------
str3: False
str3的類型是: <class 'str'>
str4: True
str4的類型是: <class 'str'>
----------
str5: [1, 2, 'a', 'b']
str5的類型是: <class 'str'>
----------
str6: (1, 2, 'a', 'b')
str6的類型是: <class 'str'>
----------
str7: {'b', 1, 2, 'a'}
str7的類型是: <class 'str'>
----------
str8: {'name': '小白', 'age': 18}
str8的類型是: <class 'str'>
'''
復(fù)制代碼
list()
將tuple、set、dict類型的數(shù)據(jù)轉(zhuǎn)換為list類型。==其中dict類型轉(zhuǎn)換為list類型時(shí),獲取的列表中存儲(chǔ)的值是dict類型變量的key值。==
案例:
# 定義tuple變量
t1 = (1, 2, 'a', 'b')
# 定義set變量
s1 = {1, 2, 'a', 'b'}
# 定義dict變量
d1 = {'name': '小白', 'age':18}
# 使用list()函數(shù)
l1 = list(t1)
l2 = list(s1)
l3 = list(d1)
print('l1:',l1)
print('l1的類型是:',type(l1))
print('-'*10)
print('l2:',l2)
print('l2的類型是:',type(l2))
print('-'*10)
print('l3:',l3)
print('l3的類型是:',type(l3))
'''
l1: [1, 2, 'a', 'b']
l1的類型是: <class 'list'>
----------
l2: [1, 2, 'b', 'a']
l2的類型是: <class 'list'>
----------
l3: ['name', 'age']
l3的類型是: <class 'list'>
'''
復(fù)制代碼
tuple()
將list、set、dict類型的數(shù)據(jù)轉(zhuǎn)換為tuple類型。==其中dict類型轉(zhuǎn)換為tuple類型時(shí)獲取的元祖中存儲(chǔ)的值是dict類型變量的key值。==
案例:
# 定義list變量
l1 = [1, 2, 'a', 'b']
# 定義set變量
s1 = {1, 2, 'a', 'b'}
# 定義dict變量
d1 = {'name': '小白', 'age':18}
# 使用tuple()函數(shù)
t1 = tuple(l1)
t2 = tuple(s1)
t3 = tuple(d1)
print('t1:',t1)
print('l1的類型是:',type(t1))
print('-'*10)
print('t2:',t2)
print('t2的類型是:',type(t2))
print('-'*10)
print('t3:',t3)
print('t3的類型是:',type(t3))
'''
t1: (1, 2, 'a', 'b')
l1的類型是: <class 'tuple'>
----------
t2: (1, 2, 'b', 'a')
t2的類型是: <class 'tuple'>
----------
t3: ('name', 'age')
t3的類型是: <class 'tuple'>
'''
復(fù)制代碼
set()
將list、tuple、dict類型的數(shù)據(jù)轉(zhuǎn)換為set類型。==其中dict類型轉(zhuǎn)換為set類型時(shí)獲取的元祖中存儲(chǔ)的值是dict類型變量的key值。==
案例:
# 定義list變量
l1 = [1, 2, 'a', 'b']
# 定義tuple變量
t1 = (1, 2, 'a', 'b')
# 定義dict變量
d1 = {'name': '小白', 'age':18}
# 使用set()函數(shù)
s1 = set(l1)
s2 = set(t1)
s3 = set(d1)
print('s1:',s1)
print('s1的類型是:',type(s1))
print('-'*10)
print('s2:',s2)
print('s2的類型是:',type(s2))
print('-'*10)
print('s3:',s3)
print('s3的類型是:',type(s3))
'''
s1: {1, 2, 'b', 'a'}
s1的類型是: <class 'set'>
----------
s2: {1, 2, 'b', 'a'}
s2的類型是: <class 'set'>
----------
s3: {'age', 'name'}
s3的類型是: <class 'set'>
'''
復(fù)制代碼
dict()
==因?yàn)閐ict字典類型是鍵值對對應(yīng),所以list、tuple、set類型沒法轉(zhuǎn)換==
# 創(chuàng)建空的字典
d1 = dict()
print('d1:',d1)
print('d1的類型是:',type(d1))
'''
d1: {}
d1的類型是: <class 'dict'>
'''
復(fù)制代碼
|