1. 程式人生 > 遊戲攻略 >《天命奇御2》雙暴擊出生天賦選擇參考 出生天賦怎麼選

《天命奇御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不支援