日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DAY7

發(fā)布時(shí)間:2025/3/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DAY7 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

復(fù)習(xí)

1.深淺拷貝
ls = [1, 'a', [10]]
值拷貝:直接賦值 ls1 = ls, ls中的任何值發(fā)生改變,ls1中的值都會(huì)隨之改變
淺拷貝:通過copy()方法 ls2 = ls.copy(),ls中存放的值的地址沒有改變, 但內(nèi)部的值發(fā)生改變,ls2會(huì)隨之改變
-- ls = [1, 'a', [10]] => [1, 'a', [100]] = ls2
深拷貝:通過deepcopy()方法 ls3 = deepcopy(ls),ls中存放的值發(fā)生任何改變,ls3都不會(huì)隨之改變
2.元組類型
t = tuple()
元組:1.就可以理解為不可變的list 2.有序 - 可以索引取值,可以切片 3.不可變 - 長度和內(nèi)容都不能發(fā)生改變
細(xì)節(jié):元組中可以存放所有的數(shù)據(jù)類型,所以存放可變類型數(shù)據(jù)后,可變類型依然可以發(fā)生改變

3.字典類型
d1 = {}
d2 = dict({'a': 1})
d3 = dict(name='Bob') # 所有的key都會(huì)用合法的變量名,最終轉(zhuǎn)化為字符串類型的key
d4 = {}.fromkeys('abc', 0) => {'a': 0, 'b': 0, 'c': 0}
key: 要確保唯一性,所以必須為不可變類型
value:存放可以存放的所有類型數(shù)據(jù),所以支持所有類型
字典:1.可變 2.沒有索引,通過key取值 3.無序的
增刪改查:字典名[key名] | 字典名[key名] = 值 | update(dict) | setdefault(key, d_value) | get(key, default)
| pop(key) | popitem() | clear()
循環(huán):keys() | values() | items()
for k, v in dic.items(): # (k, v)
pass

字典的成員運(yùn)算:完成的就是 key 在不在 目標(biāo)字典中
4.集合類型
s = set()
集合:1.可變 - 可增可刪 2.無序無索引無key - 不能取值不能改值 3.for可以對集合取值,取值的結(jié)果順序不確定
特定:不能存放重復(fù)的數(shù)據(jù)

類型轉(zhuǎn)換

1.哪些類型可以轉(zhuǎn)化為數(shù)字
res = int('10')
print(res)
res = int('-3')
print(res)
res = float('.15')
print(res)
res = float('-.15')
print(res)
res = float('-3.15')
print(res)

只有純數(shù)字的字符串才可以被直接轉(zhuǎn)化為數(shù)字

?

2.數(shù)字轉(zhuǎn)化字符串
print(str(10))

?

3.字符串與列表相互轉(zhuǎn)換

s = 'abc123呵呵'
print(list(s)) # ['a', 'b', 'c', '1', '2', '3', '呵', '呵'] 沒有對應(yīng)的 str(ls)
ls = ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
n_s = ''.join(ls)
print(n_s)

'abc123呵呵'

?s1 = 'a b c 1 2 3 呵 呵'

res = s1.split()? # 默認(rèn)按空格拆

s1 = 'a b c 1 2 3 呵 呵'
res = s1.split()
print(res)

必須掌握
s2 = 'ie=UTF-8&wd=你好帥'
res = s2.split('&')? ? ? ?#在目標(biāo)字符串中檢測到&就拆分字符串
print(res)? ? ? ? ? ? ?

['ie=UTF-8', 'wd=你好帥']

ls2 = ['ie=UTF-8', 'wd=你好帥']
n_s2 = '@'.join(ls2)
print(n_s2)?

ie=UTF-8@wd=你好帥

?

4.需求:"ie=UTF-8&wd=你好帥" => [('ie', 'UTF-8'), ('wd', '你好帥')]
res = []
s4 = "ie=UTF-8&wd=你好帥"
ls4 = s4.split('&') # ['ie=UTF-8', 'wd=你好帥']
for ele in ls4: # v = ie=UTF-8 | wd=你好帥
k, v = ele.split('=') # k: ie v: UTF-8
res.append((k, v))
print(res)

5.需求:"ie=UTF-8&wd=你好帥" => {'ie': 'UTF-8', 'wd': '你好帥'}
res = {}
s5 = "ie=UTF-8&wd=你好帥"
ls5 = s5.split('&') # ['ie=UTF-8', 'wd=你好帥']
for ele in ls5: # v = ie=UTF-8 | wd=你好帥
k, v = ele.split('=') # k: ie v: UTF-8
res[k] = v
print(res)

?

6.需求:[('ie', 'UTF-8'), ('wd', '你好帥')] => {'ie': 'UTF-8', 'wd': '你好帥'}
res = {}
ls6 = [('ie', 'UTF-8'), ('wd', '你好帥')]
for k, v in ls6:
res[k] = v
print(res)

7.list與tuple、set直接相互轉(zhuǎn)化 - 直接 類型()

?

# 8.需求:將漢字轉(zhuǎn)化為數(shù)字
# 將 壹、貳、叁、肆、伍、陸、柒、捌、玖、拾、佰、仟
# 轉(zhuǎn)化為 1、2、3、4、5、6、7、8、9、10、100、100
# 作業(yè):壹仟捌佰玖拾叁 => 1893

num_map = {
'壹': 1,
'貳': 2,
'仟': 1000
}
ls8 = ['貳', '壹', '仟']
res = []
for v in ls8:
num = num_map[v] # 通過key去映射表拿到對應(yīng)的值,完成 '貳' => 2
res.append(num)
print(res)

字符編碼

# 數(shù)據(jù) 從 硬盤 => 內(nèi)存 => cpu
# 應(yīng)用程序打開文本文件的三步驟
# 1.打開應(yīng)用程序
# 2.將數(shù)據(jù)加載到內(nèi)存中
# 3.cpu將內(nèi)存中的數(shù)據(jù)直接翻譯成字符顯示給用戶

# python解釋器
# 1.打開python解釋器
# 2.將數(shù)據(jù)加載到內(nèi)存中
# 3.cpu將內(nèi)存中的數(shù)據(jù)解釋執(zhí)行將結(jié)果顯示給用戶,如何解釋執(zhí)行不能通過,將錯(cuò)誤信息提供給用戶

# 編碼的發(fā)展史
# 電腦只能識別高低電頻對應(yīng)的0,1信息 => 問題:如何將世間萬物信息存放到內(nèi)存中
# 世間萬物信息 => 0,1形式的數(shù)據(jù) => 電腦中存放,將該過程逆向操作,就是訪問已存儲的數(shù)據(jù)信息

# 編碼表
# 人能識別的字符 <=> 機(jī)器能識別的字符:一定存在一種固定的對應(yīng)關(guān)系
# 編碼表:一定范圍內(nèi)人能識別的字符與機(jī)器能識別的字符形成的對應(yīng)關(guān)系表(映射表)

# 1.ASCII表:英文字母、英文符號、數(shù)字與機(jī)器能識別的字符的對應(yīng)關(guān)系表,8個(gè)二進(jìn)制位就能存放完這所有的對應(yīng)關(guān)系 => 1字節(jié)
# python2采用的默認(rèn)編碼是ASCII,早期并不支持中文編程
# 2_1.GBK:中文與與機(jī)器能識別的字符的對應(yīng)關(guān)系表(完全兼容ASCII表),16個(gè)二進(jìn)制位能存放所有漢字與ASCII之前的對應(yīng)關(guān)系 => 2個(gè)字節(jié)
# 2個(gè)字節(jié)能否存放常用漢字 => 16個(gè)二進(jìn)制位 2^15
# print(pow(2, 15))
# 2_2.Shift_JIS | Euc-kr:日文 | 韓文 與機(jī)器能識別的字符的對應(yīng)關(guān)系表(完全兼容ASCII表)

# 亂碼:存的編碼格式與取的編碼格式不一致
# 3.Unicode萬國碼:世間中常用國家的常用字符與機(jī)器能識別的字符的對應(yīng)關(guān)系表

# 轉(zhuǎn)碼:Unicode存在漢字與二進(jìn)制對應(yīng)關(guān)系,GBK也存在漢字與二進(jìn)制對應(yīng)關(guān)系,將GBK存放的數(shù)據(jù)轉(zhuǎn)存到Unicode數(shù)據(jù)

# 均采用Unicode編碼表,只是存放數(shù)據(jù)采用字節(jié)數(shù)不一致,utf-8與utf-16是Unicode編碼表的兩種體現(xiàn)方式
# utf-8:以1個(gè)字節(jié)存放英文,以3 | 6個(gè)字節(jié)存放漢字,在英文數(shù)據(jù)過多時(shí),更深空間,用來傳輸效率更高
# utf-16:所有支持的符號都采用2個(gè)字節(jié)存放,讀存數(shù)據(jù)采用定長,不用計(jì)算,讀存效率高

# 硬盤到內(nèi)存需要數(shù)據(jù)的傳輸,內(nèi)存到CPU需要數(shù)據(jù)的傳輸,所有都采用utf-8
# 內(nèi)存需要高速讀寫,采用utf-16

# 學(xué)習(xí)的結(jié)晶:編碼與解碼要統(tǒng)一編碼
# 操作文本字符
res = "漢字呵呵".encode('utf-8') # 編碼:將普通字符串轉(zhuǎn)化為二進(jìn)制字符串
print(res) # b'\xe6\xb1\x89\xe5\xad\x97\xe5\x91\xb5\xe5\x91\xb5'

res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('GBK') # 解碼:將二進(jìn)制字符串轉(zhuǎn)化為普通字符串
print(res) # 鍛靛懙 亂碼了
res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('utf-8')
print(res) # 呵呵 讀寫編碼統(tǒng)一后就不亂碼了

?

轉(zhuǎn)載于:https://www.cnblogs.com/duGD/p/10738672.html

總結(jié)

以上是生活随笔為你收集整理的DAY7的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。