1. 程式人生 > >04.2 python基礎--字串

04.2 python基礎--字串

4.2.1 介紹

String(字串):用單引號(')或雙引號(")括起來,同時使用反斜槓(\)轉義,索引值以 0 為開始值,-1 為從末尾的開始位置
str='Runoob'
print(str)                 ##輸出字串
print(str[0:-1])           ##輸出第一個到倒數第二個的所有字元
print(str[0])              ##輸出字串第一個字元
print(str[2:5])            ##輸出從第三個開始到第五個的字元
print(str[2:])             ##輸出從第三個開始的後的所有字元
print(str * 2)             ##輸出字串兩次
print(str + '你好')       ##連線字串
print('------------------------------')
print('hello\nrunoob')      ##使用反斜槓(\)+n,轉義特殊字元
print(r'hello\nrunoob')     ##在字串前面新增一個 r,表示原始字串,不會發生轉義
> Runoob
> Runoo
> R
> noo
> noob
> RunoobRunoob
> Runoob你好
> ------------------------------
> hello
> runoob
> hello\nrunoob

4.2.2 字串操作

+ [M: N],M缺失表示至開頭,N缺失表示至結尾
+ [M: N: K],根據步長K對字串切片
+ x + y  ---連線兩個字串x和y
+ n * x 或 x * n ---複製n次字串x
+ x in s ---如果x是s的子串,返回True,否則返回False
# 輸出數字後輸出星期
w="星期一星期二星期三星期四星期五星期六星期日"
n=(eval(input('請輸入[0-7]之間的數字'))-1)*3
print(w[n:n+3])

4.2.3 字串方法

+ len(x)---長度,返回字串x的長度------len("一二三456") 結果為 6
+ str(x)----任意型別x所對應的字串形式----str(1.23)結果為"1.23" str([1,2])結果為"[1,2]"
+ hex(x) 或 oct(x)----整數x的十六進位制或八進位制小寫形式字串------hex(425)結果為"0x1a9" oct(425)結果為"0o651"
+ chr(u)------x為Unicode編碼,返回其對應的字元
+ ord(x)----- x為字元,返回其對應的Unicode編碼
+ str.lower() 或 str.upper()-------返回字串的副本,全部字元小寫/大寫
+ str.split(sep=None)--------返回一個列表,由str根據sep被分隔的部分組成
+ str.count(sub)-------返回子串sub在str中出現的次數-------             
+ str.replace(old, new)-------返回字串str副本,所有old子串被替換為new        
+ str.center(width[,fillchar])------字串str根據寬度width居中,fillchar可選  
+ str.strip(chars)----從str中去掉在其左側和右側chars中列出的字元        
+ str.join(iter)------在iter變數除最後元素外每個元素後增加一個str 
"AbCdEfGh".lower() 結果為 "abcdefgh"  
"A,B,C".split(",") 結果為 ['A','B','C']
"a apple a day".count("a") 結果為 4   
"python".replace("n","n123.io") 結果為```python123.io```
"python".center(20,"=") 結果為```=======python=======```
"= python= ".strip(" =np") 結果為```ytho```
 ",".join("12345") 結果為```"1,2,3,4,5"```----**主要用於字串分隔**

4.2.4 轉義字元

轉義字元          描 述
\(在行尾時)       續行符
\\                反斜槓符號
\'                單引號
\"                雙引號
\a                響鈴
\b                退格(Backspace)
\e                轉義
\000              空
\n                換行
\v                縱向製表符
\t                橫向製表符
\r                回車
\f                換頁
\oyy              八進位制數,yy代表的字元,例如:\o12代表換行
\xyy              十六進位制數,yy代表的字元,例如:\x0a代表換行
\other            其它的字元以普通格式輸出

4.2.5 字串格式化

 符號     描述
  %c     格式化字元及其ASCII碼
  %s     格式化字串
  %d     格式化整數
  %u     格式化無符號整型
  %o     格式化無符號八進位制數
  %x     格式化無符號十六進位制數
  %X     格式化無符號十六進位制數(大寫)
  %f     格式化浮點數字,可指定小數點後的精度
  %e     用科學計數法格式化浮點數
  %E     作用同%e,用科學計數法格式化浮點數
  %g     %f和%e的簡寫
  %G     %f 和 %E 的簡寫
  %p     用十六進位制數格式化變數的地址

4.2.6 轉換

##str >>>list
s = '32f'
l = list(s)
print(l)
>['3', '2', 'f']

##str >>>tuple
s = '32f'
t = tuple(s)
print(t)
>('3', '2', 'f')

##list >>>str
l = ['3', '2', 'f']
m = ''.join(l)  ##列表和元組轉換為字串則必須依靠join函式
n = '.'.join(l)
print(m, n)
>32f 3.2.f

##tuple >>>str
t = ('3', '2', 'f')
e = ''.join(t)  ##列表和元組轉換為字串則必須依靠join函式
f = 'd'.join(t)
print(e, f)
>32f 3d2df