day3:编码,基本数据类型操作,字符串的操作
?
一.字符編碼
1.ASCII碼:? ?8位,? 28=256個(gè)碼位,最前一位始終是0,? ? ?最早計(jì)算機(jī)編碼,由美國(guó)人創(chuàng)建的,包含了英文字母(大寫(xiě)/小寫(xiě)),數(shù)字,標(biāo)點(diǎn)符號(hào),特殊字符,還包含$%^@#...
2.GBK (國(guó)標(biāo)碼)? 16位? 2個(gè)字節(jié)
3.unicode? 萬(wàn)國(guó)碼 ? ? usc-2? 16位 ?? 2字節(jié)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? usc-4? 32位 ? 4字節(jié)
4.UTF-8 ? :英文 ?? 8bit? ? 1byte? ? ? ?00000000
? ? ? ? ? ? ? ?? 歐洲 ? 16bit ? 2byte? ? ? 00000000 00000000?
? ? ? ? ? ? ? ?? 中文 ?? 24bit ? 3byte? ? ? 00000000 00000000 00000000
二.基本數(shù)據(jù)類型的概述
1.int
#bit_length() 計(jì)算整數(shù)在內(nèi)存中占用的二進(jìn)制碼的長(zhǎng)度 a = 3 # 1+1= 10 +1 = 11 print(a.bit_length()) # 二進(jìn)制長(zhǎng)度,11長(zhǎng)度為22.布爾值(bool)
? 取值只有True,False? ? ? ? ? ? ?# 空的東西都是False, 非空的東西都是True
# 字符串轉(zhuǎn)換成數(shù)字 s = "128" i = int(s) print(type(i)) #結(jié)果是<class 'int '> # bool類型轉(zhuǎn)換成數(shù)字 True: 1 False:0 b = False c = int(b) print(c) # int轉(zhuǎn)換成bool 零: False 非零: True a = 0 b = bool(a) print(b) s = "" # "" 空字符串表示False, 非空字符串表示:True if s:print("哈哈") else:print("呵呵") #結(jié)果是:呵呵 m = None # 空 連空氣都不如. 真空, False if m :print("a") else:print("b") #b3,字符串(str)
把字符連成串,用',",''',"""引起來(lái)的內(nèi)容被稱為字符串.
1)索引,也就是下標(biāo),從0開(kāi)始
#索引 s = "我愛(ài)周杰倫" print(s[0]) #獲取第0個(gè),也就是"我" print(s[1]) #"愛(ài)" print(s[2]) print(s[3]) print(s[4]) print(s[-1]) #獲取最后一個(gè),倒著數(shù),也就是"倫" print(s[-2]) #"杰" print(s[-3]) print(s[-4])2)切片,利用下標(biāo)截取部分字符串 的內(nèi)容
? 通過(guò)索引獲取到的內(nèi)容. 還是一個(gè)字符串,切片可以對(duì)字符串進(jìn)行截取
?語(yǔ)法:? ? ?s[起始位置: 結(jié)束位置]
? 特點(diǎn):? ?顧頭不顧腚
切片 s = "alex和wusir經(jīng)常在一起" s1 = s[5:10] print(s1) #"wusir" s3 = s[5:] # 默認(rèn)到結(jié)尾 s4 = s[:10] # 從頭開(kāi)始 s5 = s[:] # 從頭到尾都切出來(lái) s6 = s[-2:] # 從-2 切到結(jié)尾 默認(rèn)從左往右切 3)步長(zhǎng),正負(fù)號(hào)分別表示從左往右數(shù),從右往左數(shù);大小表示每幾個(gè)取一次
語(yǔ)法:? ? ?s[起始位置: 結(jié)束位置: 步長(zhǎng)]
三.格式化輸出
S = "我叫{},今年{}歲了,我喜歡{}".format("sylar",18,"周杰倫")
S = "我叫{0},今年{1}歲了,我喜歡{2}".format("sylar",18,"周杰倫")
S = "我叫{name},今年{age}歲了,我喜歡{hobby}".format(name,age,hobby)
四.字符串的相關(guān)操作 (字符串是不可變的,任何操作對(duì)原字符串不會(huì)有任何影響)
1.大小寫(xiě)轉(zhuǎn)來(lái)轉(zhuǎn)去
s1.capitalize()? #首字母換成大寫(xiě)
s1.lower() ? ? ?? #全部轉(zhuǎn)換成小寫(xiě)
s1.upper() ? ? ? #全部轉(zhuǎn)換成大寫(xiě)
s1.swapcase() #大小寫(xiě)互換,大寫(xiě)換成小寫(xiě),小寫(xiě)換成大寫(xiě)
s1.casefold() ? #全部轉(zhuǎn)換為小寫(xiě)
s1.title() ? ? #被特殊字符或者漢字隔開(kāi)的單詞首字母大寫(xiě)
?
2.切來(lái)切去
s1.center(10,"*") ?? #把字符串拉長(zhǎng)為10位,不夠的位數(shù)用*補(bǔ)全
s1.strip() ? ? ? ? ? ? ? ?? #將字符串前后的空格去掉
s1.lstrip() ? ? ? ? ? ? #去掉左邊空格
s1.rstrip() ? ? ? ? ? ? #去掉右邊空格
s1.strip("abc") ? ? #去掉左右開(kāi)頭指定的元素.
s1.replace("old","new")? #使用new替換old
s1.replace("old","new",2) ? #使用new替換前2個(gè)old
lst= s1.split("A") ? 將s1進(jìn)行切割,用A切割,消耗掉的是A,并將切割好的字符串放入列表lst中
lst= s1.split("A",2) ? 將s1進(jìn)行切割,,用A切割,消耗掉的是A,并將切割好的字符串放入列表lst中, ?? 但是只對(duì)前面2個(gè)進(jìn)行切割
?
3.查找
s1.startswith("abc") ? ? #判斷是否以abc開(kāi)頭
s1.endswith("語(yǔ)言") ?? #判斷是否以"語(yǔ)言"結(jié)尾.
s1.count("a") ? #計(jì)算a在字符串中出現(xiàn)的此數(shù)
s1.find("a") ?? #查找a出現(xiàn)的位置? 找到==>返回位置 ? ? 找不到===>返回-1
s1.index("a") ? #查找a出現(xiàn)的位置 ?? 找到===> 返回位置 ?? 找不到 ==> 程序報(bào)錯(cuò)!!!
? 4.條件判斷
s1.isalnum() ? #判斷是否字母和數(shù)字組成
s1.isalpha() ? #判斷是否由字母組成
s1.isdigit() ?? #判斷是否由數(shù)字組成,不包含小數(shù)點(diǎn)
s1.isnumeric() ? #判斷是否由數(shù)字組成,并且還識(shí)別中文的數(shù)字
s1.isupper() ?? #判斷是否是大寫(xiě)字母
s1.islower() ? ? #判斷是否是小寫(xiě)字母
s1.isdigit() ? #判斷是否是數(shù)字
? 5.迭代
for循環(huán)來(lái)遍歷(獲取)字符串中的每一個(gè)字符
可迭代對(duì)象:可以一個(gè)一個(gè)往外取值的對(duì)象
for循環(huán),語(yǔ)法:
? ? ? for 變量 in 可迭代對(duì)象:
循環(huán)體
?? while循環(huán)遍歷
# count = 0# while count < len(s):
# print(s[count])
# count = count + 1
?
轉(zhuǎn)載于:https://www.cnblogs.com/mwj-blog1/p/9281011.html
總結(jié)
以上是生活随笔為你收集整理的day3:编码,基本数据类型操作,字符串的操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux系统操作审计-让history
- 下一篇: python操作redis-------