Python全棧__字符串初識及操作
基礎數據類型初識
1、int型
int:用於計算。
十進制轉化成二進制的有效位數。
1 0000 0001
2 0000 0010
3 0000 0011
... ...
100 ?
計算十進制轉化成二進制的有效位數。.bit_length()
i = 100 print(i.bit_length())
2、字符串str
str: ‘alex‘、‘1235443543‘、‘[1,2,3]‘。可存放少量數據。
索引、切片、步長
索引編號:
python12期
012345678
p 的正向索引編號為0,y 的正向索引編號為1,t 的正向索引編號為2,h 的正向索引編號為3,o 的正向索引編號為4,n 的正向索引編號為5,1 的正向索引編號為6,2 的正向索引編號為7,期 的正向索引編號為8.
索引:
[索引位編號]
s = ‘python12期‘ s1 = s[0] print(s1,type(s1))
s = ‘python12期‘ s2 = s[4] print(s2)
s = ‘python12期‘ s3 = s[2] print(s3)
python12期
-9-8-7-6-5-4-3-2-1
期 的反向索引編號為-1,2 的反向索引編號為-2,1 的反向索引編號為-3,n 的反向索引編號為-4,o 的反向索引編號為-5,h 的反向索引編號為-6,t 的反向索引編號為-7,y 的反向索引編號為-8,p 的反向索引編號為-9。
s = ‘python12期‘ s4 = s[-1] print(s4)
切片:
[索引起始位編號:索引結束位編號]
顧頭不顧尾。
s = ‘python12期‘ s5 = s[0:6] print(s5)
中括號中的切片起始位索引為為0時,可省略。
s = ‘python12期‘ s6 = s[:6] print(s6)
s = ‘python12期‘ s7 = s[1:4] print(s7)
當中括號中索引位結束編號省略時,默認切片達到字符串結束。
s = ‘python12期‘ s8 = s[1:] print(s8)
當中括號中索引起始位編號與索引結束位編號省略時,默認對整個字符串切片,但是切片處的結果與原字符串本質上不是同一個內容(不同的存儲位置)。
s = ‘python12期‘ s9 = s[:] print(s9)
步長:
在中括號中,索引的結束位後邊加上 :數字 表示截取的步長,即每幾位截取一位。同時只能等距截取。
s = ‘python12期‘ s10 = s[:5:2] print(s10)
s = ‘python12期‘ s11 = s[4::2] print(s11)
當步長為負數時,表示倒序截取。
s = ‘python12期‘ s12 = s[-1:-5:-1] print(s12)
s = ‘python12期‘ s12 = s[-3:-1] print(s12)
字符串的常用操作方法:
** capitalize 首字母大寫,其余字母小寫。
s = ‘laoNANhai‘ s1 = s.capitalize() print(s1)
* center 居中
center(a,b) -a為設定字符串的總位數,當設定的總位數小於字符串的位數時,不變。 -b為在空位數上填充的字符串。
s = ‘laoNANhai‘ s2 = s.center(27,"*") print(s2)
*** upper:全大寫
s = ‘laoNANhai‘ s3 = s.upper() print(s3)
*** lower:全小寫
s = ‘laoNANhai‘ s4 = s.lower() print(s4)
code = ‘QAdr‘.upper() your_code = input("請輸入驗證碼,不分大小寫:").upper() if your_code == code: print("驗證成功")
*** startswith 判斷以什麽內容開頭
返回bool值
s = ‘laoNANhai‘ s5 = s.startswith(‘l‘) print(s5)
s = ‘laoNANhai‘ s6 = s.startswith(‘lao‘) print(s6)
返回bool值,可以切片,切片用逗號隔開。
s = ‘laoNANhai‘ s7 = s.startswith(‘N‘,3,6) print(s7)
* swapcase 大小寫翻轉
s = ‘laoNANhai‘ s8 = s.swapcase() print(s8)
* title 非字母隔開的每個單詞首字母大寫。
s = ‘gdsj wusir6taibai*ritian‘ s9 = s.title() print(s9)
*** 通過元素找索引
index:通過元素找索引,可切片,找不到報錯。
s = ‘gdsj wusir6taibai*ritian‘ s10 = s.index(‘a‘) print(s10)
s = ‘gdsj wusir6taibai*ritian‘ s12 = s.index(‘Q‘) print(s12)
find:通過元素找索引,可切片,找不到返回-1。
s = ‘gdsj wusir6taibai*ritian‘ s13 = s.find(‘a‘) print(s13)
s = ‘gdsj wusir6taibai*ritian‘ s14 = s.find(‘A‘,2) print(s14)
s = ‘gdsj wusir6taibai*ritian‘ s15 = s.find(‘Q‘) print(s15)
\t :縮進符,縮進一個Tab鍵的距離。
s = ‘\talex‘ print(s)
\n :換行符。
ss = ‘alex\n‘ print(ss)
s = ‘\talex\n‘ print(s)
*** strip() 去除前後端的空格、換行符、制表符。
s = ‘\talex\n‘ s16 = s.strip() print(s16)
username = input("請輸入賬戶名:").strip() if username == "婉蓉": print("登陸成功")
strip(‘a‘) 去除兩端的指定字符,某一端當遇到第一個非a字符時,該端停止操作,另一端也遇到非a時完成操作。
s = ‘ ablabsexsba‘ s17 = s.strip(‘a‘) print(s17)
strip(‘abc‘) 當括號內的字符不只一個時,將括號內的內容拆分成單個的最小單元,然後從兩端不分順序的去除,當遇到非括號內的組成單元時,操作結束。
s = ‘ ablabsexsba‘ s18 = s.strip(‘abc‘) print(s18)
lstrip(‘a‘) 去除左端的a字符。
s = ‘ablabsexsba‘ s19 = s.lstrip(‘a‘) print(s19)
rstrip(‘a‘) 去除右端的a字符。
s = ‘ablabsexsba‘ s20 = s.rstrip(‘a‘) print(s20)
*** split() str ---> list
默認以空格隔開。
s = ‘wusir alex taibai‘ s21 = s.split() print(s21)
s = ‘wusir,alex,taibai‘ s22 = s.split(‘,‘) print(s22)
split(‘a‘,b) b為數字,也可以設定以a隔開,然後設定隔開前b個a,後邊如果再有a,不考慮。
s = ‘QwusirQalexQtaibai‘ s23 = s.split(‘Q‘, 2) print(s23)
*** join: 加入
s = ‘alex‘ s24 = ‘+‘.join(s) print(s24)
在某些情況下,list ---> str 。
s = [‘wusir‘, ‘alex‘, ‘taibai‘] s25 = ‘ ‘.join(s) print(s25)
replace(‘a‘,‘b‘) a為被替換的內容,b為替換後的內容。
s = ‘小粉嫩小粉嫩ghlasdfg小粉嫩‘ s26 = s.replace(‘小粉嫩‘, ‘大鐵錘‘) print(s26)
replace(‘a‘,‘b‘,c) a為被替換的內容,b為替換後的內容,c為數字,意為從左至右將前c個a替換為b。
s = ‘小粉嫩小粉嫩ghlasdfg小粉嫩‘ s27 = s.replace(‘小粉嫩‘, ‘大鐵錘‘, 2) print(s27)
公共方法:
len() 統計字符串的總個數。
s = ‘fdsajlskgjdsaf;jdskfsdaf‘ print(len(s))
count() 計算某些元素出現的個數,可切片。
s = ‘fdsajlskgjdsaf;jdskfsdaf‘ s28 = s.count(‘f‘) print(s28)
format 格式化輸出
三種方式:
1、
{} 占位符
msg = ‘我是{},今年{},喜歡{}‘.format(‘太白‘, ‘20‘,‘girl‘) print(msg)
2、
msg = ‘我是{0},今年{1},喜歡{2},我依然叫{0}‘.format(‘太白‘, ‘20‘,‘girl‘) print(msg)
3、 \ 換行符
msg = ‘我是{name},今年{age},喜歡{hobby},我依然叫{name}‘ .format(name = ‘太白‘, age = ‘20‘,hobby = ‘girl‘) print(msg)
isalnum() 字符串由字母或數字組成。
name = ‘jinxin123‘ print(name.isalnum())
isalpha() 字符串只由字母組成。
name = ‘jinxin123‘ print(name.isalpha())
isalnum() 字符串只由數字組成。
name = ‘jinxin123‘ print(name.isdigit())
for循環:
for i in 可叠代對象:
pass
s = ‘fdsagdsfgfdsadsaf‘ count = 0 while count < len(s): print(s[count]) count += 1
s = ‘fdsagdsfgfdsadsaf‘ for i in s: print(i + ‘sb‘)
3、bool
int <-----> str
str -----> int :int(str) 條件: 字符串必須全部由數字組成。
age = int(input(">>>")) print(age,type(age))
int ----->str :str(int)
s1 = str(123) s2 = 123 print(s1, type(s1)) print(s2, type(s2))
bool <-----> int True ----->1 False ----->0
print(int(True))
print(int(False))
int ----->bool 非零即為Ture,零為False。
print(bool(100))
print(bool(0))
print(bool(-1))
bool -----> str str(True) str(False)
str -----> bool 非空即為True,‘‘空字符串為False。
s1 = ‘‘ if s1: print(666)
4、list
[‘name‘,Ture,[]....] 各種類型的數據,大量數據,便於操作。
5、tuple 元組
() 只讀列表,可讀不可寫。
6、dict
{‘name‘:‘老男孩‘,
‘name_list‘:[‘反面教材‘,......]
‘alex‘:{‘age‘:40,
‘hobby‘:‘oldwomen‘,
}
},
存儲大量的數據,關系型數據。
7、set
{‘wusir‘,‘alex‘,...}
Python全棧__字符串初識及操作