# ~ 變量的定義 命名規(guī)則
# ~ 以字母和_ 開頭 小寫字母 空格用下劃線代替 特殊預(yù)留字符不要使用 例 print
# ~ 簡潔 有描述性
# ~ IndentationError:unexpected indent 意外的縮進
# ~ 簡單的數(shù)據(jù)類型
# ~ 字符串 str
# ~ 單引號雙引號都可以
# ~ .title()首字母
# ~ .lower() .upper() 大寫小寫處理
# ~ 拼接 用+相連即可
# ~ .strip() 去掉前后空格? ? lstrip() 去掉前空格? ? rstrip() 去掉后空格
# ~ 整數(shù) int
# ~ + - * / % **(3**2 3的2次方)
# ~ 在Python3 中 3/2 = 1.5? python2 3/2 = 1
# ~ 注字符串拼接整數(shù)?
# ~ 整數(shù)變成字符串str(age)
# ~ 字符串變成整數(shù)int(age)
例:
改正
# ~ 浮點數(shù) float
# ~ 小數(shù)位數(shù)不確定性 0.1+0.2 數(shù)據(jù)量很大 存在誤差
# ~ 布爾類型 bool?
# ~3>2 True False 小寫不識別
使用type()檢查變量的類型
在對變量類型進行轉(zhuǎn)換時可以使用Python的內(nèi)置函數(shù)(準確的說下面列出的并不是真正意義上的函數(shù)添谊,而是創(chuàng)建對象的構(gòu)造方法)。
int():將一個數(shù)值或字符串轉(zhuǎn)換成整數(shù)斩狱,可以指定進制。
float():將一個字符串轉(zhuǎn)換成浮點數(shù)泌枪。
str():將指定的對象轉(zhuǎn)換成字符串形式秕岛,可以指定編碼。
chr():將整數(shù)轉(zhuǎn)換成該編碼對應(yīng)的字符串(一個字符)继薛。
ord():將字符串(一個字符)轉(zhuǎn)換成對應(yīng)的編碼(整數(shù))遏考。
# ~ Python的列表 一連串有順序的元素的集合
# ~ [,]
# ~ lists = ["age",1,4,True,[1,2,"Tom"]] 元素可以重復(fù)
# ~ lists[0]="age" 下標從0 開始; -1表示最后一個元素 灌具;-2 倒數(shù)第二個 類推。壶冒。截歉。
# ~ len(lists) 列表的長度
# ~ 修改:
lists[0] = "color"
# ~ 增加:
lists.append(900) 追加到末尾
lists.insert(0,"yyy") 插入到任意索引位
# ~ 刪除:
del lists[0] 刪除任意索引位
lists.pop() 彈出最后一個元素 返回值為最后一個元素
lists.remove("True") 根據(jù)值刪除只刪除第一個遇到的
釋放列表 lists=[](不一定適用)
釋放列表 del lists[:]
# ~ 排序:
列表均為str 由首字母進行排序 均為num 比較大小
lists.sort() 執(zhí)行完不可恢復(fù) 永久性改變
lists.sort(reverse = True)
sorted(lists) 執(zhí)行完可恢復(fù) 暫時性改變
sorted(lists,reverse = True)
# ~ 順序翻轉(zhuǎn):lists.reverse()
# ~ 遍歷
for item in lists:
????print(item)
# ~ 縮進是循環(huán)里
# ~ [1,10)
for num in range(1,10):
????print(num)
for num in range(1,10,2):
????print(num)
# ~ min(nums)最小值
# ~ max(nums) 最大值
# ~ sum(nums) 求和
# ~ 切片
# ~ lists[0:3] 索引0到2
# ~ lists[:2] 0-1
# ~ lists[3:] 3到最后一個
# ~ lists[:] 所有
# ~ lists[-3:] 最后三個
# ~ 元祖?
tuple 特殊的列表 元素不可變列表 不可排序增刪改
# ~ ()
# ~ tuple_a = (1,2,3)
# ~ 可遍歷 同列表
已經(jīng)有了列表這種數(shù)據(jù)結(jié)構(gòu)咸作,為什么還需要元組這樣的類型呢?
元組中的元素是無法修改的记罚,事實上我們在項目中尤其是多線程環(huán)境中可能更喜歡使用的是那些不變對象(一方面因為對象狀態(tài)不能修改,所以可以避免由此引起的不必要的程序錯誤末早,簡單的說就是一個不變的對象要比可變的對象更加容易維護说庭;另一方面因為沒有任何一個線程能夠修改不變對象的內(nèi)部狀態(tài),一個不變對象自動就是線程安全的姿搜,這樣就可以省掉處理同步化的開銷捆憎。一個不變對象可以方便的被共享訪問)。所以結(jié)論就是:如果不需要對元素進行添加躲惰、刪除、修改的時候知举,可以考慮使用元組太伊,當然如果一個方法要返回多個值,使用元組也是不錯的選擇僚焦。
元組在創(chuàng)建時間和占用的空間上面都優(yōu)于列表。
# ~ 集合 {}
跟數(shù)學上的集合是一致的立肘,不允許有重復(fù)元素名扛,而且可以進行交集、并集融蹂、差集等運算。
# ~ 字典 dictionary{区拳,}
鍵值對 key value(類似map)無序的
dictionary1 = {'name':'sunny','age':'19'}
print(dictionary1)
# ~ 訪問:
print(dictionary1['name'])
# ~ 修改:
dictionary1['age'] = '18'
# ~ 增加
dictionary1['sex']= 'male'
dictionary1['hight'] = '181'
# ~ key 是唯一的
# ~ 刪除 永久刪除
del dictionary1['sex']
# ~ 遍歷
for key,value in dictionary1.items():
????print(key+'------'+value)
# ~ 僅遍歷key
for key in dictionary1.keys():
????print(key)
for key in dictionary1:
????print(key)
# ~ 排序
for key in sorted(dictionary1.keys()):
????print(key)
for key in sorted(dictionary1.keys(),reverse= True):
????print(key)
# ~ 僅遍歷value
for value in dictionary1.values():
????print(value)
# ~ value值不唯一 去重復(fù)
for value in set(dictionary1.values()):
????print(value)
# ~ 嵌套
# ~ 列表里有字典
friends =[]
for counter in range(0,30):
????friend = {'name':'xxx','age':20}
????friends.append(friend)
for friend in friends [:5]:
????print(friend)
print('total number of friends:'+str(len(friends)))
# ~ 字典里有列表
d2 = {'name':'qiaoqiao','age':'28','study':['go','java','python']}
print(d2['study'])
# ~ 字典里有字典
d3 = {'sunny':{'age':28,'study':'java'},'justin':{'age':25,'study':'ios'}}
print(d3['sunny'])