第二天 PYTHON 基本数据类型 - 数字 - 字符串
生活随笔
收集整理的這篇文章主要介紹了
第二天 PYTHON 基本数据类型 - 数字 - 字符串
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
基本數(shù)據(jù)類(lèi)型
1、數(shù)字(int)
在python3中,所有數(shù)字都是int類(lèi)型
在python2中,有int類(lèi)型和long類(lèi)型
2、字符串(str)
3、列表(list)
4、元組(tuple)
5、字典(dict)
6、布爾值(bool)
pycharm 小貼士: 用鼠標(biāo)指向函數(shù),點(diǎn)住ctrl,點(diǎn)擊鼠標(biāo)左鍵,可以定位到函數(shù) ******************************************************************** # 數(shù)字int類(lèi)型
- int #轉(zhuǎn)換為數(shù)字類(lèi)型
a = '123' # 字符串是字符串類(lèi)型
b = int(a) # 轉(zhuǎn)換為數(shù)字類(lèi)型
b = b + 1000
print(type(a),a) # 查看a的類(lèi)型
print(type(b),b) # 查看b的類(lèi)型
num = '0011'
v = int(num,base = 2) #base轉(zhuǎn)換2進(jìn)制為10進(jìn)制
num = 'a'
v = int(num, base = 16) #將字符串a(chǎn)用16進(jìn)制轉(zhuǎn)化為10進(jìn)制,結(jié)果為10
print(v)
- bit_length() #返回2進(jìn)制長(zhǎng)度
age = 10
r = age.bit_length(age) #返回10的2進(jìn)制長(zhǎng)度,結(jié)果為7
print(r) ********************************************************************* #字符串類(lèi)型 str
#首字母大寫(xiě)
test = 'alex'
test.capitalize() #首字母大寫(xiě),結(jié)果是Alex
#變?yōu)樾?xiě)字母
test = 'aLex'
test.casefold() #將字母變?yōu)樾?xiě)字母,這個(gè)更厲害,有很多未知的對(duì)應(yīng)關(guān)系
test.lower() #將字母變?yōu)樾?xiě)字母
#使用字符串填充,字符串居中
test.center(20) #一共20個(gè)字符,將文本居中
test.center(20,*) #一共20個(gè)字符,將文本居中,空格用*代替,代替字符只能是1個(gè)字符
# 使用字符串填充
test = 'alex'
test.ljust(20, "*") # 字符串在左邊
test.rjust(20, "*") # 字符串在右邊
#使用0填充字符串
test.zfill(20) #使用0進(jìn)行填充,最后寫(xiě)alex
#尋找字符串中子序列的出現(xiàn)次數(shù),可以指定起始位置和結(jié)束位置 test = 'alexalex'
test.count('ex') #計(jì)算在字符串中出現(xiàn)的次數(shù),結(jié)果是2
test.count('ex',5) #從第五個(gè)字符開(kāi)始尋找,結(jié)果是1
test.count('ex',5,6) #從第五個(gè)開(kāi)始到第六個(gè)結(jié)束,結(jié)果是0
encode #后面講
#判斷字符串的起始和結(jié)尾字符
test.endswith('a') #判斷字符串是否以a結(jié)尾,結(jié)果為False
test.startswith('a') #判斷字符串是否以a開(kāi)始
#字符串根據(jù)制表符斷句轉(zhuǎn)換
test = '12345678\t9'
test.expandtabs(6) #把字符串中的 tab 符號(hào)('\t')轉(zhuǎn)為空格,
#這一句寫(xiě)法的意思是,從開(kāi)始按每6個(gè)進(jìn)行轉(zhuǎn)換,遇到包含/t的時(shí)候,看/t在6個(gè)字符串中的位置,以最多6個(gè)進(jìn)行填充
test = 'username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123'
test.expandtabs(20)
#可以輸出一個(gè)有格式的文本列
#尋找字符串中的內(nèi)容
test = 'alexalex'
test.find('ex') #從前往后尋找字符串,返回字符串起點(diǎn)位置
test.find('ex',5,7) #設(shè)置起點(diǎn)位置和結(jié)束位置,現(xiàn)在的結(jié)果是-1,是沒(méi)找到的意思
#大于等于5,小于7的意思
# 格式化字符,將一個(gè)字符串中的占位符號(hào)替換為指定的值
test = 'i am {name}'
test.format(name = 'alex') #將大括號(hào)內(nèi)的字符,代替為alex,結(jié)果是i am alex
test = 'i am {name},age {a}'
test.format(name='alex',a=19) #結(jié)果為i am alex,age 19
test = 'i am {0},age {1}'
test.format('alex',19) #結(jié)果也為i am alex,age 19,根據(jù)替換的順序進(jìn)行替換,從0開(kāi)始
test = 'i am {name},age {a}'
test.format_map({'name':'alex','a':19}) #傳入的值必須采用這種寫(xiě)法
#字符串尋找
text.index('8') #跟find功能類(lèi)似,沒(méi)有找到的時(shí)候程序報(bào)錯(cuò)
#替換字符
test = 'alexalexalex'
test.replace('ex','bbb') #用bbb替換字符串中的ex
test.replace('ex','bbb',2) #用bbb替換字符串中的ex,只替換前兩個(gè)
#判斷字符串中只包含數(shù)字和字母
test = 'uasf890_+'
test.isalnum() #運(yùn)行結(jié)果為False
test = 'uasf890'
test.isalnum() #運(yùn)行結(jié)果為T(mén)rue
#判斷字符串中只包含字母
test = 'uasf890'
test.isalpha() #運(yùn)行結(jié)果為False
test = 'uasf'
test.isalpha() #運(yùn)行結(jié)果為T(mén)rue
#判斷是否為數(shù)字
test = '123'
test = '②' #特殊數(shù)字
test.isdecimal() #判斷是否為十進(jìn)制小數(shù),正常數(shù)字輸出的是True,特殊的輸出的是False
test.isdigit() #判斷是否為數(shù)字(包含了特殊符號(hào)),正常數(shù)字輸出的是True,特殊的輸出的也是True
test.isnumeric() #判斷是否為數(shù)字(包含了特殊符號(hào)和中文),正常數(shù)字輸出的是True,特殊的輸出的也是True
# 字母、數(shù)字、下劃線:標(biāo)識(shí)符
test = '_123'
test.isidentifier() #判斷是否為正確標(biāo)識(shí)符(函數(shù)名),返回布爾值。數(shù)字不能作為第一個(gè)字符
#判斷是否包含的所有字符都可以輸出,沒(méi)有不可顯示的內(nèi)容,如:/t
test = 'lfjsdak\tljfkla'
test.isprintable() #此時(shí)輸出的是False
#是否全部都是空格,如果是空字符串的時(shí)候輸出False
test.isspace()
#是否是標(biāo)題(每一個(gè)字符都是標(biāo)題,首字母全部大寫(xiě)?)
test.istitle()
#轉(zhuǎn)換全部字符串中的每一個(gè)字符都是標(biāo)題,首字母全部大寫(xiě)
test.title()
#將字符串中的每一個(gè)元素按照指定的分隔符進(jìn)行拼接
test = '你是風(fēng)兒我是沙'
t = ' '
t.join('test') #在每個(gè)字符中間增加一個(gè)空格
' '.join(test) #這個(gè)跟上面的一行是一個(gè)結(jié)果
#轉(zhuǎn)換為小寫(xiě)
test = 'Alex'
test.islower() #判斷是否全部是小寫(xiě)
test.lower() #將全部字符變?yōu)樾?xiě)
#轉(zhuǎn)換為大寫(xiě)
test.isupper() #判斷是否全部是大寫(xiě)
test.upper() #將全部字符變?yōu)榇髮?xiě)
#刪除空格以及制表符、以及指定的字符,優(yōu)先匹配最多匹配結(jié)果
test = ' alex '
test.lstrip() #將左邊的空格刪除
test.rstrip() #將右邊的空格刪除
test.strip() #將全部的空格刪除
test = 'xalex'
test.lstrip('9lexex') #從左邊刪除字符串中的所有字符,先進(jìn)行最多匹配,再進(jìn)行下一次匹配
#按照規(guī)則替換相應(yīng)的字符
m = str.maketrans('aeiou','12345') #首先指定一個(gè)字符的對(duì)應(yīng)關(guān)系
test = 'fjkasjflasjflasl;fjllkdsajfl;asfj' #設(shè)置一串字符
new_test = test.translate(m) #按照規(guī)則將字符進(jìn)行替換
#分割字符串
test = 'testjflsajfdslkjfl'
test.partition('s') #從字符串左邊開(kāi)始,按照s進(jìn)行分割,分割成為3個(gè)字符串
test.rpartition('s') #從字符串右邊開(kāi)始,按照s進(jìn)行分割,分割成為3個(gè)字符串
test.split('s') #將字符串中的全部字符,按照s進(jìn)行分割成為n份,s就沒(méi)了
test.split('s',2) #從左開(kāi)始,按s進(jìn)行分割2次,s消失
test.rstrip('s') #從右邊開(kāi)始,按s進(jìn)行分割
# 正則表達(dá)式也可以進(jìn)行分割,并且可以自己進(jìn)行設(shè)置分割的元素,是否保留
test.splitlines() #根據(jù)換行符進(jìn)行分割,參數(shù)True保留換行符,False不保留換行符
#判斷字符串以??開(kāi)頭??結(jié)尾
test = 'backend 1.1.1'
test.startswith('a') #判斷字符串是否以a開(kāi)頭
test.endswith('a') #判斷字符串是否以a結(jié)尾
#大小寫(xiě)轉(zhuǎn)換
test = 'AleX'
test.swapcase() #結(jié)果為aLEx
以下是必須要掌握的:
join
split
find
strip
upper
lower
replace ******************************************************************** range #創(chuàng)建連續(xù)的數(shù)字,或帶步長(zhǎng)的連續(xù)的數(shù)字
v = range(100) #v就等于0至99
#python2中立即創(chuàng)建,python3中不創(chuàng)建,直至for循環(huán)時(shí)創(chuàng)建,并按照循環(huán)數(shù)依次創(chuàng)建
v = range(0,100,5) #按照5步長(zhǎng)進(jìn)行創(chuàng)建
for item in v:
print(item)
#range練習(xí)
test = input('...')
l = len(test)
r = range(l)
for item in r:
print(item,test[item])
#代碼簡(jiǎn)寫(xiě)
test = input('...')
for item in range(0,len(test)):
print(item,test[item])
************************************************************* 下面提到的可以在其他數(shù)據(jù)類(lèi)型中也可以使用
# 通過(guò)索引方式獲取字符串的某一個(gè)字符
test = 'alex'
test[0] #這個(gè)是a
test[2] #這個(gè)是e
# 通過(guò)切片方式獲取字符串的某一段字符
test[0:1] #表示一個(gè)索引范圍,這個(gè)只能拿到a,這個(gè)范圍是大于等于0,小于1
test[0:-1] #表示直接取到最后一個(gè)位置
#獲取字符串的長(zhǎng)度
len(test) #獲取字符串的長(zhǎng)度,如果是中文的話,也返回中文的字符長(zhǎng)度。注:在python2中返回的是字節(jié)數(shù),一個(gè)漢字是3個(gè)字節(jié),返回的是漢字?jǐn)?shù)*3的個(gè)數(shù)
#對(duì)于列表的話,len返回的是列表中的逗號(hào)的數(shù)量
# 下面的代碼會(huì)依次取出test字符串中的字符,每一個(gè)字符一行
test = '1234567890'
for zjw in test:
print(zjw)
1、數(shù)字(int)
在python3中,所有數(shù)字都是int類(lèi)型
在python2中,有int類(lèi)型和long類(lèi)型
2、字符串(str)
3、列表(list)
4、元組(tuple)
5、字典(dict)
6、布爾值(bool)
pycharm 小貼士: 用鼠標(biāo)指向函數(shù),點(diǎn)住ctrl,點(diǎn)擊鼠標(biāo)左鍵,可以定位到函數(shù) ******************************************************************** # 數(shù)字int類(lèi)型
- int #轉(zhuǎn)換為數(shù)字類(lèi)型
a = '123' # 字符串是字符串類(lèi)型
b = int(a) # 轉(zhuǎn)換為數(shù)字類(lèi)型
b = b + 1000
print(type(a),a) # 查看a的類(lèi)型
print(type(b),b) # 查看b的類(lèi)型
num = '0011'
v = int(num,base = 2) #base轉(zhuǎn)換2進(jìn)制為10進(jìn)制
num = 'a'
v = int(num, base = 16) #將字符串a(chǎn)用16進(jìn)制轉(zhuǎn)化為10進(jìn)制,結(jié)果為10
print(v)
- bit_length() #返回2進(jìn)制長(zhǎng)度
age = 10
r = age.bit_length(age) #返回10的2進(jìn)制長(zhǎng)度,結(jié)果為7
print(r) ********************************************************************* #字符串類(lèi)型 str
#首字母大寫(xiě)
test = 'alex'
test.capitalize() #首字母大寫(xiě),結(jié)果是Alex
#變?yōu)樾?xiě)字母
test = 'aLex'
test.casefold() #將字母變?yōu)樾?xiě)字母,這個(gè)更厲害,有很多未知的對(duì)應(yīng)關(guān)系
test.lower() #將字母變?yōu)樾?xiě)字母
#使用字符串填充,字符串居中
test.center(20) #一共20個(gè)字符,將文本居中
test.center(20,*) #一共20個(gè)字符,將文本居中,空格用*代替,代替字符只能是1個(gè)字符
# 使用字符串填充
test = 'alex'
test.ljust(20, "*") # 字符串在左邊
test.rjust(20, "*") # 字符串在右邊
#使用0填充字符串
test.zfill(20) #使用0進(jìn)行填充,最后寫(xiě)alex
#尋找字符串中子序列的出現(xiàn)次數(shù),可以指定起始位置和結(jié)束位置 test = 'alexalex'
test.count('ex') #計(jì)算在字符串中出現(xiàn)的次數(shù),結(jié)果是2
test.count('ex',5) #從第五個(gè)字符開(kāi)始尋找,結(jié)果是1
test.count('ex',5,6) #從第五個(gè)開(kāi)始到第六個(gè)結(jié)束,結(jié)果是0
encode #后面講
#判斷字符串的起始和結(jié)尾字符
test.endswith('a') #判斷字符串是否以a結(jié)尾,結(jié)果為False
test.startswith('a') #判斷字符串是否以a開(kāi)始
#字符串根據(jù)制表符斷句轉(zhuǎn)換
test = '12345678\t9'
test.expandtabs(6) #把字符串中的 tab 符號(hào)('\t')轉(zhuǎn)為空格,
#這一句寫(xiě)法的意思是,從開(kāi)始按每6個(gè)進(jìn)行轉(zhuǎn)換,遇到包含/t的時(shí)候,看/t在6個(gè)字符串中的位置,以最多6個(gè)進(jìn)行填充
test = 'username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123'
test.expandtabs(20)
#可以輸出一個(gè)有格式的文本列
#尋找字符串中的內(nèi)容
test = 'alexalex'
test.find('ex') #從前往后尋找字符串,返回字符串起點(diǎn)位置
test.find('ex',5,7) #設(shè)置起點(diǎn)位置和結(jié)束位置,現(xiàn)在的結(jié)果是-1,是沒(méi)找到的意思
#大于等于5,小于7的意思
# 格式化字符,將一個(gè)字符串中的占位符號(hào)替換為指定的值
test = 'i am {name}'
test.format(name = 'alex') #將大括號(hào)內(nèi)的字符,代替為alex,結(jié)果是i am alex
test = 'i am {name},age {a}'
test.format(name='alex',a=19) #結(jié)果為i am alex,age 19
test = 'i am {0},age {1}'
test.format('alex',19) #結(jié)果也為i am alex,age 19,根據(jù)替換的順序進(jìn)行替換,從0開(kāi)始
test = 'i am {name},age {a}'
test.format_map({'name':'alex','a':19}) #傳入的值必須采用這種寫(xiě)法
#字符串尋找
text.index('8') #跟find功能類(lèi)似,沒(méi)有找到的時(shí)候程序報(bào)錯(cuò)
#替換字符
test = 'alexalexalex'
test.replace('ex','bbb') #用bbb替換字符串中的ex
test.replace('ex','bbb',2) #用bbb替換字符串中的ex,只替換前兩個(gè)
#判斷字符串中只包含數(shù)字和字母
test = 'uasf890_+'
test.isalnum() #運(yùn)行結(jié)果為False
test = 'uasf890'
test.isalnum() #運(yùn)行結(jié)果為T(mén)rue
#判斷字符串中只包含字母
test = 'uasf890'
test.isalpha() #運(yùn)行結(jié)果為False
test = 'uasf'
test.isalpha() #運(yùn)行結(jié)果為T(mén)rue
#判斷是否為數(shù)字
test = '123'
test = '②' #特殊數(shù)字
test.isdecimal() #判斷是否為十進(jìn)制小數(shù),正常數(shù)字輸出的是True,特殊的輸出的是False
test.isdigit() #判斷是否為數(shù)字(包含了特殊符號(hào)),正常數(shù)字輸出的是True,特殊的輸出的也是True
test.isnumeric() #判斷是否為數(shù)字(包含了特殊符號(hào)和中文),正常數(shù)字輸出的是True,特殊的輸出的也是True
# 字母、數(shù)字、下劃線:標(biāo)識(shí)符
test = '_123'
test.isidentifier() #判斷是否為正確標(biāo)識(shí)符(函數(shù)名),返回布爾值。數(shù)字不能作為第一個(gè)字符
#判斷是否包含的所有字符都可以輸出,沒(méi)有不可顯示的內(nèi)容,如:/t
test = 'lfjsdak\tljfkla'
test.isprintable() #此時(shí)輸出的是False
#是否全部都是空格,如果是空字符串的時(shí)候輸出False
test.isspace()
#是否是標(biāo)題(每一個(gè)字符都是標(biāo)題,首字母全部大寫(xiě)?)
test.istitle()
#轉(zhuǎn)換全部字符串中的每一個(gè)字符都是標(biāo)題,首字母全部大寫(xiě)
test.title()
#將字符串中的每一個(gè)元素按照指定的分隔符進(jìn)行拼接
test = '你是風(fēng)兒我是沙'
t = ' '
t.join('test') #在每個(gè)字符中間增加一個(gè)空格
' '.join(test) #這個(gè)跟上面的一行是一個(gè)結(jié)果
#轉(zhuǎn)換為小寫(xiě)
test = 'Alex'
test.islower() #判斷是否全部是小寫(xiě)
test.lower() #將全部字符變?yōu)樾?xiě)
#轉(zhuǎn)換為大寫(xiě)
test.isupper() #判斷是否全部是大寫(xiě)
test.upper() #將全部字符變?yōu)榇髮?xiě)
#刪除空格以及制表符、以及指定的字符,優(yōu)先匹配最多匹配結(jié)果
test = ' alex '
test.lstrip() #將左邊的空格刪除
test.rstrip() #將右邊的空格刪除
test.strip() #將全部的空格刪除
test = 'xalex'
test.lstrip('9lexex') #從左邊刪除字符串中的所有字符,先進(jìn)行最多匹配,再進(jìn)行下一次匹配
#按照規(guī)則替換相應(yīng)的字符
m = str.maketrans('aeiou','12345') #首先指定一個(gè)字符的對(duì)應(yīng)關(guān)系
test = 'fjkasjflasjflasl;fjllkdsajfl;asfj' #設(shè)置一串字符
new_test = test.translate(m) #按照規(guī)則將字符進(jìn)行替換
#分割字符串
test = 'testjflsajfdslkjfl'
test.partition('s') #從字符串左邊開(kāi)始,按照s進(jìn)行分割,分割成為3個(gè)字符串
test.rpartition('s') #從字符串右邊開(kāi)始,按照s進(jìn)行分割,分割成為3個(gè)字符串
test.split('s') #將字符串中的全部字符,按照s進(jìn)行分割成為n份,s就沒(méi)了
test.split('s',2) #從左開(kāi)始,按s進(jìn)行分割2次,s消失
test.rstrip('s') #從右邊開(kāi)始,按s進(jìn)行分割
# 正則表達(dá)式也可以進(jìn)行分割,并且可以自己進(jìn)行設(shè)置分割的元素,是否保留
test.splitlines() #根據(jù)換行符進(jìn)行分割,參數(shù)True保留換行符,False不保留換行符
#判斷字符串以??開(kāi)頭??結(jié)尾
test = 'backend 1.1.1'
test.startswith('a') #判斷字符串是否以a開(kāi)頭
test.endswith('a') #判斷字符串是否以a結(jié)尾
#大小寫(xiě)轉(zhuǎn)換
test = 'AleX'
test.swapcase() #結(jié)果為aLEx
以下是必須要掌握的:
join
split
find
strip
upper
lower
replace ******************************************************************** range #創(chuàng)建連續(xù)的數(shù)字,或帶步長(zhǎng)的連續(xù)的數(shù)字
v = range(100) #v就等于0至99
#python2中立即創(chuàng)建,python3中不創(chuàng)建,直至for循環(huán)時(shí)創(chuàng)建,并按照循環(huán)數(shù)依次創(chuàng)建
v = range(0,100,5) #按照5步長(zhǎng)進(jìn)行創(chuàng)建
for item in v:
print(item)
#range練習(xí)
test = input('...')
l = len(test)
r = range(l)
for item in r:
print(item,test[item])
#代碼簡(jiǎn)寫(xiě)
test = input('...')
for item in range(0,len(test)):
print(item,test[item])
************************************************************* 下面提到的可以在其他數(shù)據(jù)類(lèi)型中也可以使用
# 通過(guò)索引方式獲取字符串的某一個(gè)字符
test = 'alex'
test[0] #這個(gè)是a
test[2] #這個(gè)是e
# 通過(guò)切片方式獲取字符串的某一段字符
test[0:1] #表示一個(gè)索引范圍,這個(gè)只能拿到a,這個(gè)范圍是大于等于0,小于1
test[0:-1] #表示直接取到最后一個(gè)位置
#獲取字符串的長(zhǎng)度
len(test) #獲取字符串的長(zhǎng)度,如果是中文的話,也返回中文的字符長(zhǎng)度。注:在python2中返回的是字節(jié)數(shù),一個(gè)漢字是3個(gè)字節(jié),返回的是漢字?jǐn)?shù)*3的個(gè)數(shù)
#對(duì)于列表的話,len返回的是列表中的逗號(hào)的數(shù)量
# 下面的代碼會(huì)依次取出test字符串中的字符,每一個(gè)字符一行
test = '1234567890'
for zjw in test:
print(zjw)
轉(zhuǎn)載于:https://www.cnblogs.com/trunkslisa/p/9184613.html
超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的第二天 PYTHON 基本数据类型 - 数字 - 字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CodeChef March Lunch
- 下一篇: 进击的python