-
int ==>?整數.?主要?用來進?行行數學運算
-
str ==>?字符串串,?可以保存少量量數據并進?行行相應的操作
-
bool==>判斷真假, True, False
-
list==>?存儲?大量量數據.?用[ ]表?示
-
tuple=>?元組,?不可以發?生改變 ?用( )表?示
-
dict==>字典,保存鍵值對,?一樣可以保存?大量量數據
- set==>?集合,?保存?大量量數據.?不可以重復.?其實就是不保存value的dict
三.?布爾值(bool)
取值只有True, False. bool值沒有操作.
轉換問題: str => int int => str
int => bool bool=>int
str => bool bool => str
int(str) str(int)
bool(int). 0是False?非0是True int(bool) True是1, False是0
bool(str)?空字符串串是False,?不空是True str(bool)?把bool值轉換成相應的"值"
四.?字符串串(str)
把字符連成串串.?在python中?用', ", ''', """引起來的內容被稱為字符串串.
4.1?切片和索引
1.?索引.索引就是下標.切記,下標從0開始
s1 =?"python最?牛B"
print(s1[0])
print(s1[1])
print(s1[-1])
print(s1[-2])
2.?切片,我們可以使?用下標來截取部分字符串串的內容 語法: str[start: end]
規則:?顧頭不顧腚,?從start開始截取.?截取到end位置.?但不包括end
print(s2[0:3]) 從0到3不包括3 ?
print(s2[4:])如果想直接最后直接最后
print(s2[-1:-5])從負一到負五 默認都是往從左往右所以怎么也不能這么數 一會可以有什么步數什么的?
print(s2[1:5:2]) ? ? 從1到5隔兩個一取,3就是3個一取,負2就反著走從右往左走也隔兩個一取,正負決定取向方向,數決定幾個一取
4.2?字符串串的相關操作?方法 ? ? ? ? ? ? ? ? ? ? ?字符串特別牛逼,永不可變,任何對字符串的操作都沒卵用,都要再打一個字符串
s1=“我才是真正的彭于晏”
s1.capitalize () ?這樣的話什么卵用沒有, capitalize 這是大小寫轉換 ?這老師不靠譜是真不行啊,媽的實踐驗證,這是首字母小寫變成大寫 ? 大寫不變,后面的所有大寫變小寫 小寫不變 ?這個猜測是針對人名的吧
ret=s1.lower()我僅有的一點英語知識,所有字母小寫
ret=s1.upper()所有字幕大寫
ret=s1.sawpcase()這個是真正的大小寫轉換
ret = s1.casefold() 這個和lower 是一樣的 就是這個牛逼一點說是什么東歐字母都支持 但是是不長用的
s3 =?"alex eggon,taibai*yinwang_麻花藤
ret=s3。title() ? ? ? ? ? ??
Alex Eggon,Taibai*Yinwang_麻花藤 ? ? ? ? ? ? ? ? ? ? ? ? ? ?所有被特殊字符隔開的首字母都大寫
s4 =?"alex?老老男孩wusir " ? ? ? ? ? ? ? ? ? ? ? ? ? ? # Alex?老老男孩Wusir ? ? ? ? ?
print(s4.title()) ? ? ? ? ? ?這個中文也算特殊字符
2 切來切去
s5 =?"周杰倫"
ret = s5.center(10,?"*") ? ? 拉長10個字符吧原字符改到里面 ?算原字符10個字符
print(ret)
改變tab字符長度那個不管了
s7 =?" alex wusi r” ?
ret = s7.strip( ? ) ? ? ? ? ? ? ?這個是去掉左右兩端的括號
print(ret)
lstrip ? 左邊的空格 ? ? ? ?rstrip ? ? 右邊的空格
s7 =?"abcdefgabc"
print(s7.strip("abc")) ? ? ? ? 沒有內容默認去空格 ?有內容去內容
s8 =?"sylar_alex_taibai_wusir_eggon"
ret = s8.replace('alex',?'?金金?角?大王') ? ? ? ? ? ? 這個是替換 ?一定要記得元字符串不可改
?ret = s8.replace('i',?'SB',?2 ) ? ? ? ? ? 老套路 步長把i換成sb換2次
s9 =?"alex,wusir,sylar,taibai,eggon"
lst = s9.split(",") 字符串切割根據,切,括號里是啥根據啥切 print(lst)
s12 =?"我叫%s,?今年年%d歲了了,?我喜歡%s"?% ('sylar',?18,?'周杰倫')?#?之前的寫法print(s12)
s12 =?"我叫{},?今年年{}歲了了,?我喜歡{}".format("周杰倫",?28,?"周潤發")?#?按位置格式化print(s12)
s12 =?"我叫{0},?今年年{2}歲了了,?我喜歡{1}".format("周杰倫",?"周潤發",?28)?#?指定位置print(s12)
s12 =?"我叫{name},?今年年{age}歲了了,?我喜歡{singer}".format(name="周杰倫",?singer="周潤 發",?age=28)
s13 =?"我叫sylar,?我喜歡python, java, c等編程語?言."
ret1 = s13.startswith("sylar")
print(ret1) ? ? ? ? ? ? ? ? ? ? ? ? 這是判斷是不是括號內的開頭 ? ? ? ? ?endwith 是否以括號內結尾
ret7 = s13.count("a") print(ret7) count 是查找括號里的 出現的 次數
ret5 = s13.find("sylar") print(ret5) find 是查找括號里的東西所在位置
ret6 = s13.find("tory") print(ret6) find 查找 找不到返回-1
ret7 = s13.find("a",?8,?22)?#?切?片找
print(ret7) ? ? ? ? ? ? ? ? ? 查找8到22 ?查找a在哪
ret8 = s13.index("sylar") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# ?求索引位置.?注意.?如果找不不到索引.?程序會報錯
print(ret8) ? ? ? ? ? ? ? ? ? ? 解釋的很明白了,索引是0開始的 ?和后面的len不一樣
s14 =?"123.16"
s15 =?"abc"
s16 =?"_abc!@"
print(s14.isalnum())
print(s15.isalnum())
print(s16.isalnum()) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是否由字母和數字組成的
print(s14.isalpha())
print(s15.isalpha())
print(s16.isalpha()) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是否由字母組成
print(s14.isdigit())
print(s14.isdecimal())
print(s14.isnumeric())?#?這個?比較?牛B.?中?文都識別.print(s15.isdigit())
print(s16.isdigit()) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?是否由數字組成,不包括小數點
6.?計算字符串串的?長度
s18 =?"我是你的眼,?我也是a"
ret =?len(s18)?#?計算字符串串的?長度print(ret)
注意: len()是python的內置函數.?所以訪問?方式也不?一樣.?你就記著len()和print()?一樣就?行行 了了
? 這尼瑪哪一樣了? ? 也不也是print打印出來嗎? ? ? ? ? ?就記得len是求長度就完了 ?也好使,而且不是從0開始數的
7.?迭代
我們可以使?用for循環來便便利利(獲取)字符串串中的每?一個字符 語法:
for?變量量?in?可迭代對象:
pass
可迭代對象:?可以一個?個往外取值的對象 ? ? ? ? ? ? ? ? ? ? ? ? ? 就是固定公式你腫么破,至于這個可迭代對象,我還搞不清楚 現在學的 字符串 數字元組啊,什么的都是 可迭代吧。
in有兩種?用法:
1.?在for中.?是把每?一個元素獲取到賦值給前?面的變量量. 2.?不不在for中.?判斷xxx是否出現在str中.
#?練習,?計算在字符串串"I am sylar, I'm 14 years old, I have 2 dogs!"s20 =?"I am sylar, I'm 14 years old, I have 2 dogs!"
count =?0
for?c?in?s20:
if c.isdigit():count = count + 1
print(count) 第17個是數字,一直打0到第17開始是1一直都是1 就是查找數字在s20里出現的次數
這樣的話第三天的完了,let's,go
第四天的也沒什么特難的,都是英語難
?一.?列列表
1.1?列列表的介紹
列列表是python的基礎數據類型之?一?,其他編程語?言也有類似的數據類型.?比如JS中的數 組, java中的數組等等.?它是以[ ]括起來,?每個元素?用' , '隔開?而且可以存放各種數據類型:
lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "組"), "abc", {"我 叫":"dict字典"},{"我叫集合","集合"}]
列列表相比于字符串串.?不僅可以存放不同的數據類型.??而且可以存放?大量量的數據. 32位python可以存放:?536870912個元素, 64位可以存放: 1152921504606846975個元素.?而且列列 表是有序的(按照你保存的順序),有索引,?可以切?片?方便便取值.
2.2?列列表的索引和切片 列列表和字符串串?一樣也擁有索引:
lst = ["麻花藤",?"王劍林林",?"?馬蕓",?"周鴻醫",?"向華強"]
print(lst[0])?#?獲取第?一個元素
print(lst[1])
print(lst[2])
lst[3] =?"流動強"?#?注意.?列列表是可以發?生改變的.?這?里里和字符串串不不?一樣
print(lst)?# ['麻花藤', '王劍林林', '?馬蕓', '流動強', '向華強'] ? ? ? ? ? ? ? ?這個修改比較簡單
s0 =?"向華強"
s0[1] =?"美"?# TypeError: 'str' object does not support item assignment?不不 允許改變
print(s0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?這邊的話是個坑,這個的話 s0是字符串,字符串不可改
lst = ["麻花藤",?"王劍林林",?"?馬蕓",?"周鴻醫",?"向華強"]
print(lst[0:3])?# ['麻花藤', '王劍林林', '?馬蕓']
print(lst[:3])?# ['麻花藤', '王劍林林', '?馬蕓']
print(lst[1::2]) print(lst[2::-1])
print(lst[-1:-3:-2])
# ['王劍林林', '周鴻醫']?也有步?長
# ['?馬蕓', '王劍林林', '麻花藤']?也可以倒著取
#?倒著帶步?長 ? ? ? ? ? ? ? ? ? ? ? ?這個和昨天的序列一樣,簡單 序列加步長
?二.?列列表的增刪改查
1.?增,?注意, list和str是不?一樣的. lst可以發?生改變.?所以直接就在原來的對象上進?行行了了操作
lst = ["麻花藤",?"林林俊杰",?"周潤發",?"周芷若"]print(lst)
lst.append("wusir")
print(lst) ? ? ? ? ? ?append在這組序列的最后面加一個
lst = ["麻花藤",?"張德忠",?"孔德福"]
lst.insert(1,?"劉德華") ? ? ? ? ? ? ? ? ? #?在1的位置插?入劉德華.?原來的元素向后移動?位 ? 可選序列 ? ? ? 和上邊的比應該是一個可以選序列一個不可選,
print(lst) ? ? ? ? ? ??
lst = ["王志?文",?"張?一?山",?"苦海海?無涯"]
lst.extend(["麻花藤",?"麻花不不疼"])
print(lst) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 迭代添加就是智能添,把里面的元素一個個添加,而append就是無腦在后面加一個
2.?刪除
pop, remove, clear, del ? ? ? 只有這幾種 ?后文一點一點講解用法
lst = ["麻花藤",?"王劍林林",?"李李嘉誠",?"王富貴"]
print(lst)
deleted = lst.pop()?#?刪除最后?一個 ? ? ? ? ? 不選數默認最后一個
print("被刪除的",?deleted) ? ? ? ? ? ? ? ? ? ? ? 這個pop括號里選的啥(序列)就刪除哪個元素,? ? ? ? ? ? ??
print(lst) ? ? ? ? ? ? ? ? ? ? ? ? ?
el = lst.pop(2)?#?刪除2號元素
print(el) ? ? ? ? ? ?
print(lst)
lst.remove("麻花藤") ? ? ? ? ? ? ? ? ? #?刪除指定元素 ? ? ? ?只能指定元素不能寫序列
lst.remove("哈哈") ? ? ? ? ? ? ? ? ? ? ?#?刪除不不存在的元素會報錯
print(lst)
del?lst[1:3] ? ? ? ? ? ? ? del lst【1】 ?只刪除一個也行
print(lst) 刪除序列1到2 3 顧頭不顧尾
3.?修改 索引切片修改
lst = ["太?白",?"太?黑",?"五?色",?"銀王",?"?日天"]
lst[1] =?"太污"?#?把1號元素修改成太污
print(lst)
lst[1:4:2] = ["麻花藤",?"哇靠"]?#?切片修改也OK.?如果步?不是1,?要注意.?元素的個 數 ? ?這個也和之前的一樣 ?
rint(lst)
lst[1:4] = ["李李嘉誠個?龜?兒?子"]?#?如果切?沒有步長或者步長是1.?則不?關心個數 ? 就是吧1到3所有的都換一遍
print(lst)
4.?查詢,列列表是?一個可迭代對象,所以可以進?行行for循環
只有這一種查詢方式
for el in lst:print(el) 只有這一種查詢方式 使用方法 把想查詢的東西 在下面再寫一行
for el in lst:
if el== “想查詢的”
然后這行再寫打印它啊 加減啊 首字母大小寫啊 判斷是不是什么開頭啊 這一般不用了 你都知道你要輸入的,也可能用戶輸入的
5.?其他操作
lst = ["太?白",?"太?黑",?"五?色",?"銀王",?"?日天",?"太?白"]
c = lst.count("太?白")?#?查詢太?白出現的次數 ? ? ? ? ?這個查詢也沒什么改變
print(c)
lst = [1,?11,?22,?2]
lst.sort()?#?排序.?默認升序
print(lst)
lst.sort(reverse=True)?#?降序
?print(lst) ? ? ? ? ? ? ?升序降序都要打的reverse ? 默認是f的 ?你要想倒序就要改成t
lst = ["太?白",?"太?黑",?"五?色",?"銀王",?"?日天",?"太?白"]
print(lst)
lst.reverse() ? ? ? ? ? 180 度 倒序
print(lst)
l =?len(lst) #?列列表的?長度print(l) ? ? ? ? ? 這個排序永遠沒有0的 就是1正常不反人類數的
三.?列列表的嵌套 采?用降維操作.
?一層?一層的看就好.
lst = [1,?"太?白",?"wusir",?["?馬?虎疼",?["可?口可樂"],?"王劍林林"]]#?找到wusir
print(lst[2])
#?找到太?白和wusir
print(lst[1:3])#?找到太?白的?白字
print(lst[1][1])
#?將wusir拿到.?然后?首字?母?大寫.?再扔回去
s = lst[2]
s = s.capitalize() ? ? ? ? ? ? 這都沒什么難的,就是把之前的記住這都好用
lst[2] = s
print(lst)
#?簡寫
lst[2] = lst[2].capitalize()print(lst) ? ? ? 序列可以直接更改 ?所以簡單點
#?把太?白換成太?黑
lst[1] = lst[1].replace("?白",?"?黑") ? 替換單詞一樣 ?
print(lst)
#?把?馬?虎疼換成?馬化疼
lst[3][0] = lst[3][0].replace("?虎",?"化") ? ? 當替換列表中的東西時這么用 多維嗎 ?將為操作 ? ? ?
print(lst[3][0])
lst[3][1].append("雪碧")print(lst) ? ? 這條有點多余了
四.?元組和元組嵌套
元組:?俗稱不可變的列列表.?又被成為只讀列列表,?元組也是python的基本數據類型之?一,??用?小括
號括起來,??里里?面可以放任何數據類型的數據,?查詢可以.?循環也可以.?切片也可以.?但就是不能 改.
tu = (1,?"太?白",?"李李?白",?"太?黑",?"怎么?黑")
print(tu)
print(tu[0])
print(tu[2])
print(tu[2:5])?#?切?片之后還是元組
# for循環遍歷元組
for?el?in?tu:
print(el) ? ? ? ? ? ?自從學了for循環用的太多了這個早記得了
#?嘗試修改元組
# tu[1] = "?馬?虎疼" #?報錯?'tuple' object does not support item assignment
tu = (1,?"哈哈",?[],?"呵呵")
# tu[2] = ["fdsaf"] #?這么改不不?行行
tu[2].append("麻花藤")?#?可以改了了.?沒報錯
tu[2].append("王劍林林")
print(tu) ? ? ? ? ? ? ? ? ? ? ? 元素不可變這里指的是元組里的元素不可變,再里面的子元素可變 例如列表 ? ?子元素如果是元素還是不可變,再循環下去沒試
元組中如果只有?一個元素.??一定要添加?一個逗號,?否則就不是元組
print(type(tu))
元組也有count(), index(), len()等?方法.?可以?自?己測試使?用 ?
五. range
range可以幫我們獲取到?一組數據.?通過for循環能夠獲取到這些數據.
for num in range(10):print(num)
for num in range(1, 10, 2):print(num)
for num in range(10, 1, -2):print(num)#?反著來,?和切?片?一樣 這個range 和普通的for 變量 in 迭代對象,最大的區別就是 r一般對應數字假如1,2,3 打印出的是每一行一個數 1 2 3 而第二個for 是每一次都把123打出來了
?一.?字典的簡單介紹
字典(dict)是python中唯?一的?一個映射類型.他是以{ }括起來的鍵值對組成.?在dict中key是
唯?一的.?在保存的時候,?根據key來計算出?一個內存地址.?然后將key-value保存在這個地址中.這種算法被稱為hash算法,?所以,?切記,?在dict中存儲的key-value中的key'必須是可hash的,如果你搞不懂什什么是可哈希,?暫時可以這樣記,?可以改變的都是不可哈希的,那么可哈希就意味著不可變.?這個是為了了能準確的計算內存地址?而規定的.
已知的可哈希(不可變)的數據類型: int, str, tuple, bool不可哈希(可變)的數據類型: list, dict, set
語法?:
{key1: value1, key2: value2....}
注意: key必須是不可變(可哈希)的. value沒有要求.可以保存任意類型的數據
dic = {123:?456, True:?999,?"id":?1,?"name":?'sylar',?"age":?18,?"stu": ['帥 哥',?'美?女女'],?(1,?2,?3):?'麻花藤'}
print(dic[123])
print(dic[True])
print(dic['id'])
print(dic['stu'])
print(dic[(1,?2,?3)])
#?不不合法
# dic = {[1, 2, 3]: '周杰倫'}
# dic = {{1: 2}: "哈哈哈"}
dic = {{1,?2,?3}:?'呵呵呵'}
# list是可變的.?不不能作為key # dict是可變的.?不不能作為key # set是可變的,?不不能作為key
dict保存的數據不是按照我們添加進去的順序保存的。是按照hash表的順序保存的。而hash表不是連續的,所以不能進行切片工作,它只能通過key來獲取dict中的數據
二.?字典的增刪改查和其他相關操作
1.?增加
dic = {}
dic['name'] =?'周潤發'?#?如果dict中沒有出現這個key,?就會新增?一個key-value的組 合進dict
dic['age'] =?18 ? ? ? ? ? ? ? ? ? ? ? 強行添加沒啥說的 剛才翻了一下上邊那么多 沒研究明白 ?記得之前也有強行添加類的啊
print(dic)
#?如果dict中沒有出現過這個key-value.?可以通過setdefault設置默認值
dic.setdefault('李李嘉誠')?#?也可以往?里里?面設置值. ? ? 后面沒設置值顯示值為None
dic.setdefault("李李嘉誠",?"房地產")?#?如果dict中已經存在了了.?那么setdefault將不不會 起作?用?
print(dic)
2.?刪除
ret = dic.pop("jay") pop和前文一樣bj4 print(ret)
del dic["jay"] del同上 print(dic)
#?隨機刪除.
ret = dic.popitem() ? ? ? ? ? ? ? ? ? ? ? ? ?pycharm也不知道該說是修復了,還是說優化了,還是說bug ? 只刪除最后一個了 ?不是隨機刪除了
#?清空字典中的所有內容dic.clear() ? ? ? ? ? ?這個clear ?這很干凈
3.?修改
dic = {"id":?123,?"name":?'sylar',?"age":?18}
dic1 = {"id":?456,?"name":?"麻花藤",?"ok":?"wtf"}
dic.update(dic1)?#?把dic1中的內容更更新到dic中.?如果key重名.?則修改替換.?如果不不存 在key,?則新增.
print(dic)
print(dic1) ? ? ? ? ? ? ? ? ? ? ?dic打印出來的是全的,dic1就是個弟弟 端茶倒水的
4.?查詢 查詢?一般?用key來查找具體的數據.
print(dic['name']) ? ? ? ? ? ? ??
# print(dic['sylar']) #?報錯 ? ? ? ? ?如果有這個key直接打出來了 ?沒有這個key就報錯
prit(dic.get("ok"))
print(dic.get("sylar"))?# None ? ? ? ? ? ? ? ? ? ? 這個最大的優點就是 如果沒有這個不會報錯會出None
print(dic.get("sylar",?"?牛B"))?#??牛B ? ? ? ? ? 這個就是如果沒有就輸出自己打的value2值
5.?其他相關操作
dic = {"id":?123,?"name":?'sylar',?"age":?18,?"ok":?"科?比"}
print(dic.keys())?# dict_keys(['id', 'name', 'age', 'ok'])?不不?用管它是什什么.當 成list來?用就?行行
for?key?in?dic.keys(): ? 就是list 了 ?無腦背吧
print(key)
print(dic.values())?# dict_values([123, 'sylar', 18, '科?比'])??一樣.?也當list來?用
for?value?in?dic.values(): ? ?同上
print(value)
print(dic.items())?# dict_items([('id', 123), ('name', 'sylar'), ('age', 18), ('ok', '科?比')])?這個東?西也是list.?只不不過list中裝的是tuple ? 把list里面全變成tuple了
for?key,?value?in?dic.items():?# ???這個是解構 ? ? ? ? ? ? ? ?
print(key, value)
#?解構
a,?b =?1,?2print(a,?b)
(c, d) = 3, 4 print(c, d)
e, f = [1, 2, 3] print(e, f)
#?解構的時候注意數量量必須匹配
1. is 和 == 的區別
?? ? ? ? #小數據池
?? ? ? ? ? ?# 數字小數據池的范圍? -5 ~ 256
? ? ? ? ? ? # 字符串中如果有特殊字符他們的內存地址就不一樣
? ? ? ? ? ? # 字符串中單個*20以內他們的內存地址一樣,單個*21以上內存地址不一致
?? ? ? ? ? # 黑框框 == 終端
?
? ? ? ? ? ? # a = 'alex@'
? ? ? ? ? ? # a1 = 'alex@'
? ? ? ? ? ? # print(a is a1)? ? # Fales
?
? ? ? ? ? ? # n = 5//2
? ? ? ? ? ? # n1 = 2
? ? ? ? ? ? # print(n is n1)? ? #True
?
? ? ? ? ? ? # a = 'a'*21
? ? ? ? ? ? # b = 'a'*21
? ? ? ? ? ? # print(a is b) ? ? ? ?False
?
? ? ? ? ? ?# a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
? ? ? ? ? ? # b = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
? ? ? ? ? ? # print(a is b) ? ? ? ? ?Ture
?
? ? ? ? ? ?# n = -6
? ? ? ? ? ? # n1 = -6
? ? ? ? ? ? # print(n is n1)? #False
?
? ? ? ? ? ? # n = -5
? ? ? ? ? ? # n1 = -5
? ? ? ? ? ? # print(n is n1)? ? #True
?
?
? ? ? ? ? ? # n = 257
? ? ? ? ? ? # n1 = 257
? ? ? ? ? ? # print(n is n1) ? ? #True
?
?
? ? ? ? ? ? #總結:
?
? ? ? ? ? ? ? ? # == 比較 ? 比較的倆邊的值
?
? ? ? ? ? ? ? ? # is ? 比較 ? 比較的是內存地址 ? id()
?
2. 編碼和解碼
?
?? ? ? ? ascii 碼:
?
?? ? ? ? ? ? ? 不支持? 中文
?
?? ? ? ? ? ? ? 支持? ? 英文? 數字? 符號
?
?? ? ? ? ? ? ? 8位? ? ? 一個字節
?
?? ? ? ? gbk碼? 國標:
?
?? ? ? ? ? ? ? 支持? 中文,英文,數字,符號
?
?? ? ? ? ? ? ? 英文? 16位 ? 二個字節
?
?? ? ? ? ? ? ? 中文? 16位 ? 二個字節
?
?
?? ? ? ? unicode? 萬國碼
?
? ? ? ? ? ? ? ? 支持? 中文,英文,數字,符號
?
? ? ? ? ? ? ? ? 英文? 32 位? 四個字節
?
? ? ? ? ? ? ? ? 中文? 32位 ? 四個字節
?
?
?? ? ? ? utf-8 ? 長度可變的萬國碼 最少用8位
?
? ? ? ? ? ? ? ? 英文 ? 8位? ? 一個字節
? ? ? ? ? ? ? ? 中文 ? 24位 ? 三個字節
?
?
?? ? ? ? Python3中 程序運行階段 使用的是unicode ? 顯示所有的內容
?
?? ? ? ? bytes類型
?
? ? ? ? ? ? 傳輸和存儲都是使用bytes
?
?? ? ? ? pycharm 存儲的時候默認是使用utf-8
總結:
?
? ? is 和 == 區別
?
? ? ? ? is? 比較內存地址
?
? ? ? ? ? ? ? ? id() ? ---- 獲取內存地址
?
? ? ? ? ? ? ? ? 小數據池:
?
? ? ? ? ? ? ? ? ? ? 數字的小數據池范圍是 -5 ~ 256
?
? ? ? ? ? ? ? ? ? ? 字符串:
?
? ? ? ? ? ? ? ? ? ? ? ? 字符串中不能包含特殊符號 ? + - * / @ 等等
? ? ? ? ? ? ? ? ? ? ? ? 字符串單個字符*20以內內存地址都是一樣的,單個字符*21以上內存地址不一致
?
? ? ? ? 注意: pycharm是個坑, 一個py文件中所有相同的字符串 一般都是使用一樣的內存地址
?
? ? ? ? ==? 比較倆邊的值
?
? ? 編碼和解碼
?
? ? ? ? encode(編碼方式) ? ? ---- 拿到明文編碼后對應的字節
?
? ? ? ? decode(編碼方式) ? ? -----將編碼后的字節解碼成對應的明文
?
?
?
? ? 注意: 用什么進行編碼就要什么進行解碼? 不然后會懵逼!
?