《天命奇御2》雙暴擊出生天賦選擇參考 出生天賦怎麼選
python資料型別
一、數值型
二、字元型
三、容器型資料型別
數值型
1、整型
x = 3 print(id(x)) x = 5 print(id(x)) # id(): 返回一個整數,代表變數在記憶體中的地址 # 以上兩個id返回的值明顯不一樣,說明變數值的地址是不一樣的
2、浮點型
浮點數用來處理實數,即帶有小數的數字。類似於C語言中的double型別
注: 浮點數的取值範圍和精度一般無限制,但是浮點數運算可能存在誤差,也就是可能有不確定尾數
x = 2.23 print(x) d = 4.3 c = d-x print(c)
3、布林型
布林資料型別,簡稱布林型別,在 Python 中用 `bool`表示。 bool 類是 int 類的子類。 布林型別提供了兩個布林值來表示真(對)或假(錯),在 Python 中分別用 `True`(真或對)或`False`(假或錯)來表示。
print(True) # True 首字母要大寫 print(False) # False 首字母要大寫 print(type(True)) # 檢視 True 的型別 print(type(False)) # 檢視 False 的型別
結果:
True False <class 'bool'> <class 'bool'>
字元型
1.字串的表示
(1)用單引號、雙引號或三引號括起來的符號系列稱為字串, 並且單引號、雙引號、三單引號、三雙引號可以互相巢狀,用來表示複雜字串
1 "wyb", 'Hello, World', "python", '''Tom said, "Let's go"'''都是字串
(2)空串表示為'', ""
1 # 下面是空串: 2 msg = '' 3 name = ""
(3)三引號表示的字串可以換行,支援排版較為複雜的字串;三引號還可以在程式中表示較長的註釋
1 msg = ''' 2 我是誰 3 我在哪 4 我在幹什麼 5 ''' 6 print(msg) # 字串換行
1 ''' 2 三引號中可以寫多行註釋 3 這裡可以寫多行註釋 4 '''
(4)不加引號的字串會被系統認為是變數
>>> name = jack Traceback (most recent call last): File"<stdin>", line 1, in <module> NameError: name 'jack' is not defined >>> jack = "wyb" >>> name = jack >>> name 'wyb'
字串常用方法
(1)字串拼接:
+: 直接將兩個字串相加 *: 字串複製多次
join(seq) 以指定字串作為分隔符,將 seq 中所有的元素(的字串表示)合併為一個新的字串
1 >>> name = "wyb" 2 >>> age = "21" 3 >>> name + age 4 'wyb21' 5 >>> name*3 6 'wybwybwyb'
1 >>>''.join("python") 2 'python' 3 >>>'123'.join("python") 4 'p123y123t123h123o123n'
注: 字串只能與字串進行拼接,不能與其他資料型別一起拼接!
1 >>> name = "wyb" 2 >>> age = 21 3 >>> name + age 4 Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> 6 TypeError: must be str, not int
(2)大小寫:
capitalize() 將字串的第一個字元轉換為大寫
swapcase() 將字串中大寫轉換為小寫,小寫轉換成大寫
upper() 轉換字串中所有小寫字母為大寫
lower() 轉換字串中所有大寫字元為小寫
title() 返回"標題化"的字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫
>>> s = "python web framework" >>> s.capitalize() 'Python web framework' >>> s 'python web framework' >>> s.upper() 'PYTHON WEB FRAMEWORK' >>> s.lower() 'python web framework' >>> s.title() 'Python Web Framework' >>> s = "ABCDefg" >>> s.swapcase() 'abcdEFG'
(3)字串填充:
center(width, fillchar) 返回一個指定的寬度 width 居中的字串,fillchar 為填充的字元,預設為空格
ljust(width[, fillchar]) 返回一個原字串左對齊,並使用 fillchar 填充至長度 width 的新字串,fillchar 預設為空格。
rjust(width,[, fillchar]) 返回一個原字串右對齊,並使用fillchar(預設空格)填充至長度 width 的新字串
zfill (width) 返回長度為 width 的字串,原字串右對齊,前面填充0
>>> s = "python" >>> s.center(20, '*') '*******python*******' >>> s.ljust(10, '*') 'python****' >>> s.rjust(10, '*') '****python' >>> s.zfill(10) '0000python'
(4)數值計算:
len(string) 返回字串長度
count(str, beg= 0,end=len(string)) 返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數,str可以是一個字元也可以是多個字元
>>> s = "python" >>> len(s) 6 >>> s = "111222abcdefga" >>> s.count(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be str, not int >>> s.count('1') 3 >>> s.count('1111') 0 >>> s.count('111') 1 >>> s.count('a') 2
容器型資料型別
1、列表
# append() 將引數作為元素新增到列表中去 a = [1, 2] a.append([3, 4]) print(a) # [1, 2, [3, 4]] # extend() 將引數列表逐個新增到列表中去 a = [1, 2] a.extend([3, 4]) print(a) # [1, 2, 3, 4] # insert(index, object) 在指定位置index前插入元素object a = [1, 2, 3, 4] a.insert(1, [3, 4]) print(a) # [1, [3, 4], 2, 3, 4] 複製程式碼 # 修改元素有兩個方法,一個是通過下標,一個是通過切片(切片是左閉右開區間) a = [1, 2, 3, 4] # 方式一:下標修改 a[1] = "中" print(a) # [1, '中', 3, 4] # 方式二:切片修改,也可以實現刪除 a[2:3] = ["天", "下", "大", "同"] # [1, '中', '天', '下', '大', '同', 4] print(a) a[2:3] = [] print(a) # [1, '中', '下', '大', '同', 4] 複製程式碼 # a.index(x,begin,.end) # 在a中的begin和end之間,查詢字元x的下標,沒有會報錯 a = [1, 2, 3] print(a.index(2)) # 1 複製程式碼 列表.count(x, begin, end) # 查詢x在列表中的個數 del 列表[下標值] # 根據下標進行刪除 列表.pop() # 刪除最後一個元素,也可以針對指定的下標刪除,會返回刪除的內容 列表.remove(元素) # 將指定的元素從列表中刪除 列表.sort(reverse=True) # sort方法是將列表按特定順序重新排列,預設為由小到大,引數reverse=True可改為倒序,由大到小。 列表.reverse() # reverse方法是將list逆置。
2、字典
字典表示為dict,使用鍵值對的形式來儲存資料的,使用的時候用花括號({})來對這些鍵值對進行封裝,而且內部也是無序儲存的。相對於list來說,字典的查詢速度快,不會隨著key的增加而變慢,但是需要大量的記憶體。這個通過key計算位置的演算法被稱為雜湊演算法。
如下:
注:鍵可以使用:元組,數字,字串,如果是布林值,會忽略,如果是字典或者列表,會直接報錯。
如果鍵重複,只保留最後一個
常用字典方法
# 取字典值可以用鍵來取,如果寫的是字典中沒有的鍵,會報錯,一般用get來取值,沒有對應的鍵會返回None,get的第二個引數可以設定返回的值 a = {"name": "張三", "age": 18, "sex": "男"} print(a["name"]) # 張三 print(a.get("name")) # 張三 print(a.get("nam")) # None print(a.get("nam", "找不到")) # 找不到 print(a["nam"]) # 報錯 複製程式碼 # 新增一個鍵值對,直接用:字典名["鍵名"] = 值 a = {"name": "張三", "age": 18, "sex": "男"} a["address"] = "北京" print(a) 複製程式碼 # 字典名.keys() 返回字典所有key,並放在一個類似列表的dict_keys類中 # 字典名.values() 返回字典所有value,並放在一個類似列表的dict_values類中 # 字典名.items() 返回所有key和values,所有的鍵值對分別構成一個元組,並放在一個類似列表的dict_values類中 a = {"name": "張三", "age": 18, "sex": "男"} print(a.keys()) print(type(a.keys())) print(a.values()) print(type(a.values())) print(a.items()) print(type(a.items())) # 注:可以在for迴圈中用拆包的方式分別獲取key和value值 複製程式碼 複製程式碼 # 刪除一個鍵值對可以用:del 字典名["鍵名"] # 刪除字典則是:del 字典名 # pop也可以刪除一個鍵值對:字典名.pop(鍵名,引數二),如果沒有對應的鍵,返回第二個引數,不寫的話會直接報錯 # 隨機刪除一個鍵值對:字典名.popitem() # clear是清空字典 a = {"name": "張三", "age": 18, "sex": "男"} del a["name"] print(a) # {'age': 18, 'sex': '男'} print(a.pop("hobby", "沒有")) a.popitem() # {'sex': '男'} print(a) a.clear() print(a) # {} del a print(a) # a被刪除,not defined 複製程式碼 其他: di.setdefault("k111","123") # 設定值,如果鍵存在,則返回原有值,如果不存在,則將第一個引數作為鍵,第二個引數作為值插入到字典中,並返回值 di.update({"k1":"111","k2":"324"}) # 設定值,如果已經存在則覆蓋,不存在則填入,引數中也可以用k1=23,k2="daf"這種格式 根據序列建立字典,di.fromkeys({"k1","k2","k3"],123) # 引數中,第一個列表是所有的key,第二個是指定統一的
3、元組
元組不可以增刪改
元組 (Tuple) 是 Python 中基本資料結構之一,與列表類似,但元組中的元素不允許被修改,因此元組也被稱作 只讀列表 。 元組使用小括號 - () 包裹,元素間使用逗號 - , 分隔,元組中的元素可以是字串、數字、列表、元組等其他資料型別。
a = (1, 2, 3, [4, 5]) a[3][1] = 9 print(a) # (1, 2, 3, [4, 9])
4、集合
集合的兩大功能:
- 集合可以實現去重的功能
- 集合可以實現關係測試:交集;差集;並集;是否子集;是否沒有交集
1. 集合的定義
集合裡面的元素是沒有重複的
定義一個空集合:第一種方法的定義是錯誤的,生成的是一個字典;第二種方法才是正確的定義一個空集合的方法。
2. 集合的特性
集合是無序的,不重複的資料型別,因此不支援索引;切片;重複和連線,只滿足成員操作符和for迴圈。
3. 集合的增刪查
增加:
1. add()—增加單個元素
2. update()—增加多個元素
刪除:
1. pop()—預設刪除集合的第一個元素,這裡與列表剛好相反,尤其注意,不可相互混淆。
2. remove()—刪除指定的元素
3. clear()—清空集合元素
總結
可變資料型別:列表,字典,集合
不可變資料型別:數值型別,字串,元組
可變資料型別實現某個功能,直接改變可變的資料型別;
不可變資料型別實現某個功能,需要將結果賦值給另外一個變數;
是否實現for迴圈
可迭代資料型別:str,list,tuple,dict,set
不可迭代資料型別:數值型別
是否支援索引,切片,重複和連線特性
有序的資料型別:str,list,tuple支援
無序的資料型別:dict,set不支援