python之路day03--数据类型分析,转换,索引切片,str常用操作方法
生活随笔
收集整理的這篇文章主要介紹了
python之路day03--数据类型分析,转换,索引切片,str常用操作方法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)據(jù)類(lèi)型整體分析
int :用于計(jì)算bool:True False 用戶(hù)判斷
str:少量數(shù)據(jù)的存儲(chǔ)
list:列表 儲(chǔ)存大量數(shù)據(jù) 上億數(shù)據(jù)
[1,2,3,'zzy',[aa]]
元組:只讀列表
(1,23,'asdadas')
dist:字典 鍵值對(duì)的形式儲(chǔ)存,關(guān)系型
{'name':'小王八','age':16}
{'小王八':[12,3,'dsaa'],'二哥':[200,200]}
集合:求交集等
{1,2,33,'adsf'}
int bool str 數(shù)據(jù)轉(zhuǎn)換
int: i =2 print(bit_length(100)) #轉(zhuǎn)成2進(jìn)制的最小位數(shù)1 0000 0001 #1 2 0000 0010 #2 3 0000 0011 #2bool:True False int --->> str i =1 print(str(i),type(i)) # 1 <class 'int'>
str --->> int (只能是數(shù)字才能轉(zhuǎn)換成int類(lèi)型) s = '113' print(int(s)) #113 int --> bool (非零數(shù)字轉(zhuǎn)換為bool,為T(mén),0位False) i=1 j=0 print(bool(i)) #True print(bool(j)) #False# bool-->int (T為1,False為0) print(int(True)) #1 print(int(False)) #0 ps:
while True:
pass
while 1: #效率高,最終要轉(zhuǎn)為2進(jìn)制
pass
str--->bool (非空字符串為T(mén)rue,空字符串為False) print(bool('')) #False print(bool('000')) #Trueprint(type(str(True))) #<class 'str'> print(type(str(False))) #<class 'str'>
?
str索引及切片
s = 'asdfghjkl' s1 = [0] #s1和s沒(méi)有任何關(guān)系,對(duì)原字符串進(jìn)行切片(原字符串不變),是生成的新的字符串 s[首:尾:加步長(zhǎng)] 索引從0開(kāi)始,print(s[0]) 為a print(s[0:3]) -->asd #切片顧頭不顧尾print(s[0:6:2]) -->>adg print(s[0:]) -->>asdfghjkl 全部字符串 print(s[:]) -->>asdfghjkl 全部字符串 print(s[0::2]) -->>adgjl #步長(zhǎng)必須要是規(guī)律的 1,2,3#從后面取 步長(zhǎng)-1 print(s[4:0:-1]) #gfds print(s[::-2]) #ljgda
?
字符串的操作放法及for循環(huán)
s = 'alex Wusir' # s1 = s.capitalize() #首字母大寫(xiě) print(s1) #Alex wusir s2 = s.upper() #全部大寫(xiě) s21 = s.lower() #全部小寫(xiě) print(s2,s21) #ALEX WUSIR alex wusir s3 = s.swapcase() #大小寫(xiě)翻轉(zhuǎn) print(s3) #ALEX wUSIR a = 'zhangyang zy yy' a1 = a.title() #每個(gè)隔開(kāi)的(特殊字符和數(shù)字)單詞首字母大寫(xiě) print(a1) #Zhangyang Zy Yyps:
s_str = 'acEQ' you_input = input('請(qǐng)輸入驗(yàn)證碼,不區(qū)分大寫(xiě)小:') if you_input.lower() == s_str.lower():print('登錄成功')else:print('輸入有誤,請(qǐng)重試')居中,空白填充 20長(zhǎng)度
s = 'alex Wusir’ s5 =s.center(20,'%') print(s5)# %%%%%alex Wusir%%%%%
#\t 補(bǔ)充到8位(包含alex) #\t 補(bǔ)充到8位(包含alex,從alex向左數(shù)8位) s = 'alex\tsir' s6 = s.expandtabs() print(s6) #alex sir
str常見(jiàn)的操作方法
? ? len
s = 'alex Wusir' l = len(s) print(l) #10 10個(gè)元素,代表10個(gè)字符判斷字符串以什么開(kāi)頭 s7 = s.startswith('alex') print(s7) #True s8 = s.startswith('e',2,5) #True 索引切片2-5 print(s8)# True find 通過(guò)元素找索引,找到返回下標(biāo),找不到返回-1 s = 'alex Wusir' s9 = s.find('a',0,4) print(s9) # 0 s91 = s.find('l') print(s91) #1 s92 = s.find('y') print(s92) #-1 index 通過(guò)元素找索引,找不到返回報(bào)錯(cuò) s10 =s.index('a') print(s10) #0 strip 默認(rèn)刪除前后空格,加上chars,從首尾同時(shí)開(kāi)始刪除,遇到阻礙就不在進(jìn)行 s = ' @a@lex%Wusir@ ' s11= s.strip() print(s11) #@a@lex%Wusir@ s12 =s.strip('%@ ') print(s12) #@alex%Wusir@ s13=s.lstrip() #只刪左邊的 print(s13) s14=s.rstrip() #只刪右邊的 print(s14)# @a@lex%Wusir@ str = ' a@lex%Wusir@ ' str1 =str.strip('%@ ') print(str1) #a@lex%Wusir count 計(jì)算字符出現(xiàn)了幾次 st = 'aa2234fdssf' st1 = st.count('a') print(st1) #2 split 以符號(hào)分割文本,默認(rèn)是空格分割 S.split(sep=None, maxsplit=-1) -> list of strings str -->> list s = 'alex wusir zy' l = s.split() print(l) #['alex', 'wusir', 'zy'] s1 = 'alex:wusir:zy' l1 = s1.split(':') print(l1) #['alex', 'wusir', 'zy'] #ps:一分為二 s2 = ':alex:wusir:zy' l2 =s2.split(':') print(l2) #['', 'alex', 'wusir', 'zy'] format的三種玩法 格式化輸出 {}為占位 s ='我叫{} 今年{} 喜歡{},再說(shuō)一下我叫{}'.format('zy',18,'coding','zy') #有幾個(gè)占位符就要寫(xiě)幾個(gè),和%s占位差不多 s ='我叫{0} 今年{1} 喜歡{2},再說(shuō)一下我叫{0}'.format('zy',18,'coding','zy') #我叫zy 今年18 喜歡coding,再說(shuō)一下我叫zy s ='我叫{name} 今年{age} 喜歡{hobby},再說(shuō)一下我叫{name}'.format(name = 'zy',age = 18,hobby = 'coding') #我叫zy 今年18 喜歡coding,再說(shuō)一下我叫zy
print(s) #我叫zy 今年18 喜歡coding,再說(shuō)一下我叫zy ? replce # S.replace(old, new[, count]) -> str s = 'sadaafdslfkds' s1 = s.replace('a','b') #默認(rèn)全部替換 print(s1) #sbdbbfdslfkds s2 = s.replace('a','b',1) #只替換一次 print(s2) #sbdaafdslfkds is系列 判斷 s= 'sadg112' s1=s.isalnum() #字母或數(shù)字 print(s1) #True s2=s.isalpha() #字母 print(s2)#False for循環(huán) s = 'asdfggs' #循環(huán)輸出字符串里面的元素 for i in s:print(i)if 'a' in s:print('您輸出的詞語(yǔ)有敏感詞匯')for i in (18,11,22):print(i) #18 11 22
?相關(guān)練習(xí)題
使用while或for循環(huán)打印出字符串的每個(gè)元素 s = 'asdfer'index =0while 1:print(s[index])index += 1if index == len(s):break?
實(shí)現(xiàn)一個(gè)整數(shù)加法計(jì)算器 如:content = input('請(qǐng)輸入內(nèi)容:') #如用戶(hù)輸入:5+9或5+ 9或者5 + 9,然受進(jìn)行分割進(jìn)行計(jì)算1) content = input('請(qǐng)輸入內(nèi)容:').strip() content1 = content.split('+') sum =0 index=0 for i in content1:con1=int(content1[index])sum = sum+con1index+=1 print(sum)2) sum =0 content = input('請(qǐng)輸入內(nèi)容:').strip() content1 = content.split('+') for i in content1:sum = sum+int(i) print(sum)?
任意輸入一串?dāng)?shù)字+文字 統(tǒng)計(jì)出來(lái)數(shù)字的個(gè)數(shù)a= 'sdafg1123222' print(a.count('1'))1) num =0 a = input('<<<') for i in a:if int(i) in [0,1,2,3,4,5,6,7,8,9]:print(i.count(i),type(i))num+=int(i.count(i)) print(num)2) for 循環(huán)遍歷每一個(gè)元素 count =0 a = '4451232assa' for i in a:if i.isdigit():count+=1 print(count)?
轉(zhuǎn)載于:https://www.cnblogs.com/hanfe1/p/10202635.html
總結(jié)
以上是生活随笔為你收集整理的python之路day03--数据类型分析,转换,索引切片,str常用操作方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos内核参数优化
- 下一篇: iOS 之 内存管理