1. 程式人生 > 其它 >初識python(2)

初識python(2)

引言

小夥伴們昨天已經講了一點python的資料型別了,今天我們來講講python剩下的資料型別以及運算子,一些小夥伴已經可以開始嘗試寫點簡單的小程式了。堅持就是勝利同志們,fighting!!!


資料型別

字典

相比於列表,字典可以精準的找到儲存的資料,字典使用花括號括起來的,括號記憶體放的是鍵值對,鍵值對之間用逗號隔開,鍵即key是用來描述值的。值即value是真正的資料,value可以是任意資料型別。因為字典是無序的,不能用索引來查詢資料,需要靠鍵(key)來進行引用資料,所以鍵是唯一的,當有多個同名鍵的時候,最後的會代替掉前面,值可以不唯一。

tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}  # 字典
tinydict['Name']  # 字典取值

字典鍵的特性

  1. 不允許同一個鍵出現兩次及以上。建立時如果同一個鍵被賦值兩次,最後面的那個會被記住。
  2. 鍵必須不可變。因此,鍵只能用字串、數字、元組來當。

集合

集合的功能很單一基本上是用來去重和關係運算,使用頻率很低。集合是用大括號括起來的,括號裡面裝的不是鍵值對。集合是一個無序不重複的元素序列,如果大括號定義空的資料那麼這個資料集的型別就是字典,建立空集合是用set()。

s = {1, 2, 3, 4 ,5}  # 集合
s = set()  # 空集合

元組

元組和列表相似,使用的是小括號,元組儲存的資料一般是隻給看不能改的。任意無符號的物件,以逗號隔開,預設為元組。小括號括起來,裡面可以放一個或多個元素,元素之間用逗號分隔,元素可以是任意資料型別。
注意:

當元組中只有一個元素時要在元素後面加個逗號,不加逗號就不是元組而是其它單個的資料型別。

t = (1, 2, 3, 4, 5)  # 元組
t = 1, 2, 3, 4, 5  # 預設為元組

布林值

布林值只有兩種狀態,True意為正確,False意為錯誤。布林值是被用來在邏輯判斷中描述事物對錯的。除了0、None、一些空的資料集等外都是True。同時,布林值的變數名是以is開頭的,比如is_right、is_delete等。

使用者互動

與使用者互動主要是涉及到輸入和輸出,使用input來獲取使用者的輸入資料,在python3.x中,input獲取的資料都會轉換成字串型,而python2.x中只有raw_input和input幾乎一樣外,python2.x中的input在使用者輸入資料時,使用者輸入的是什麼資料型別,就是什麼資料型別。用print在計算機中將輸入資料打印出來。

age = input("請輸入你的年齡:")  # 輸入18
print(type(age))  # str   python3.x
age = input("請輸入你的年齡:")  # 輸入18
print(type(age))  # int   python2.x
age = raw_input("請輸入你的年齡:")  # 輸入18
print(type(age))  # str   python2.x

格式化輸出

格式化輸出主要知識就是佔位符,%s可以給任意資料佔位,%d只能給數字佔位。

name = 'king'
age = 18
gender = 'male'
print("我的名字叫%s,今年%s歲,性別%s" % (name, age, gender))  # 第一種格式化輸出
print(f"我的名字叫{name},今年{age}歲,性別{gender}")  # 第二種格式化輸出,要求python3.6及以上。

運算子

乘 ==> *
除 ==> /
整除 ==> //
取餘 ==> %
等於 ==> ==

增量賦值

增值賦值是為了少寫一個變數名,增值賦值相比一般賦值在記憶體中具有空間佔用優勢,數學賦值計算中,+有合併的用法,list1 = list1 + list2會改變list1的地址,但list1 += list2不會改變list1的地址。

x += 100  # x = x + 100
x -= 100  # x = x - 100
x /= 100  # x = x / 100
x *= 100  # x = x * 100

鏈式賦值

鏈式賦值沒什麼好講的直接上過程

x = y = z = 100
'''
上述鏈式賦值等價於
x = 100
y = x
z = x
鏈式賦值的原理是,找一箇中間變數先指向變數值,然後讓x,y,z都指向temp指向的變數值。
temp = 100
x = temp
y = temp 
z = temp
'''

交叉賦值

繼續上過程,但是記住交叉賦值可以多個變數,但是為了防止被繞暈,建議數量不要太多。

m = 10
n = 100
m, n = n, m

解壓賦值

在正常情況下,解壓賦值需要注意變數的個數要和列表的元素個數一樣。

ls = [12, 32, 51, 62, 36, 78]
age1, age2, age3, age4, age5,age6 = ls  # 左右數量要一致
'''打破數量限制'''
a, b, *_ = ls  # a, b, *_ ==>12, 32, [51, 62, 36, 78]
a, *_, b = ls  # a, b, *_ ==>12, [32, 51, 62, 36], 78
'''
星號後面可以是任何符合變數命名標準的變數名,當用單獨下劃線作為變數名時意味著,指向的值暫時用不到,星號的意思就是取暫時不要的值賦值給星號後面的變數名,並以列表的形式體現。
'''

邏輯運算子

and即與,連線多個條件必須都滿足才為True,or即或,連線多個條件必須都不滿足才為False,not即非,用來翻轉條件的,True翻轉後為False,False翻轉後為True。
注意:三個邏輯運算子之間是有優先順序的,not>and>or,但是一般情況下,我們在寫邏輯運算時都會用小括號去強制邏輯順序。

3 > 2 and 10 < 100 and 1 > -1  # True
3 < 2 or 10 > 100 or 1 < -1  # False
not True  # False

成員運算子

成員運算子用於判斷個體是否在某個資料群內,用in。是否不在用not in。

ls = ['king', 'guido', 'java', 'JavaScript']
print('king' in ls)  # True
print('king' not in ls)  # False

身份運算子

身份運算子is用於判斷兩個資料在記憶體中的地址是否一樣,即id是否一樣。==用於判斷兩個值是否一樣。python為了避免頻繁的建立和銷燬物件,python採用了快取池技術,[-5,257),在快取池中的數值不管怎麼賦值id都是一樣,當然把大於257的值賦值給一個變數名,再把該變數名指向的變數值賦值給另一個變數名,兩個變數名地址一樣。

a = 1
b = 1
print(a is b)  # True
print(a == b)  # True
a = 257
b = 257
print(a is b)  # False
print(a == b)  # True