018 字符串類型及操做

1、概述

  • 字符串類型的表示
  • 字符串操做符
  • 字符串處理函數
  • 字符串處理方法
  • 字符串類型的格式化

2、字符串類型的表示

由0個或多個字符組成的有序字符序列編程

  • 字符串由一對單引號或一對雙引號表示:"請輸入帶有符號的溫度值: "或者 'C'
  • 字符串是字符的有序序列,能夠對其中的字符進行索引:"請""請輸入帶有符號的溫度值: " 的第0個字符

字符串有 2類共4種 表示方法app

  • 由一對單引號或雙引號表示,僅表示單行字符串:"請輸入帶有符號的溫度值: "或者 'C'
  • 由一對三單引號或三雙引號表示,可表示多行字符串
'''
Python
    語言
'''
  • 若是但願在字符串中包含雙引號或單引號呢?:'這裏有個雙引號(")' 或者 "這裏有個單引號(')"
  • 若是但願在字符串中既包括單引號又包括雙引號呢?:''' 這裏既有單引號(')又有雙引號 (") '''

2.1 字符串的序號

正向遞增序號 和 反向遞減序號函數

018-字符串類型及操做-01.jpg?x-oss-process=style/watermark

2.2 字符串的使用

使用[ ]獲取字符串中一個或多個字符編碼

  • 索引:返回字符串中單個字符 <字符串>[M]"請輸入帶有符號的溫度值: "[0] 或者 TempStr[-1]
  • 切片:返回字符串中一段字符子串 <字符串>[M: N]"請輸入帶有符號的溫度值: "[1:3] 或者 TempStr[0:-1]

2.3 字符串切片高級用法

使用[M: N: K]根據步長對字符串切片code

  • <字符串>[M: N],M缺失表示至開頭,N缺失表示至結尾:"〇一二三四五六七八九十"[:3] 結果是 "〇一二"
  • <字符串> [M: N: K],根據步長K對字符串切片:
    • "〇一二三四五六七八九十"[1:8:2] 結果是 "一三五七"
    • "〇一二三四五六七八九十"[::-1] 結果是 "十九八七六五四三二一〇

2.4 字符串的特殊字符——轉義符

  • 轉義符表達特定字符的本意:"這裏有個雙引號(\")" 結果爲 這裏有個雙引號(")
  • 轉義符造成一些組合,表達一些不可打印的含義:"\b"回退 "\n"換行(光標移動到下行首) "\r" 回車(光標移動到本行首)

3、字符串操做符

3.1 由0個或多個字符組成的有序字符序列

操做符及使用 描述
x+y 鏈接兩個字符串x和y
n*x 或 x*n 複製n次字符串x
x in s 若是x是s的子串,返回True,不然返回False

3.2 獲取星期字符串

  • 輸入:1-7的整數,表示星期幾
  • 輸出:輸入整數對應的星期字符串
  • 例如:輸入3,輸出 星期三
# WeekNamePrintV1.py

weekStr = "星期一星期二星期三星期四星期五星期六星期日" 
weekId = eval(input("請輸入星期數字(1-7):"))
pos = (weekId – 1 ) * 3
print(weekStr[pos: pos+3])
# WeekNamePrintV2.py

weekStr = "一二三四五六日"
weekId = eval(input("請輸入星期數字(1-7):")) 
print("星期" + weekStr[weekId-1])

4、字符串處理函數

一些以函數形式提供的字符串處理功能orm

函數及使用 描述
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編碼

4.1 Unicode編碼

Python字符串的編碼方式blog

  • 統一字符編碼,即覆蓋幾乎全部字符的編碼方式
  • 從0到1114111 (0x10FFFF)空間,每一個編碼對應一個字符
  • Python字符串中每一個字符都是Unicode編碼字符

4.1.1 一些有趣的例子

"1 + 1 = 2 " + chr(10004)
'1 + 1 = 2 ✔'
"這個字符♉的Unicode值是:" + str(ord("♉"))
'這個字符♉的Unicode值是:9801'
for i in range(12):
    print(chr(9800 + i), end="")
♈♉♊♋♌♍♎♏♐♑♒♓

5、字符串處理方法

"方法"在編程中是一個專有名詞索引

  • "方法"特指<a>.<b>()風格中的函數<b>()
  • 方法自己也是函數,但與<a>有關,<a>.<b>()風格使用
  • 字符串及變量也是<a>,存在一些方法

6、字符串內置方法

一些以方法形式提供的字符串處理功能ip

方法及使用 描述
str.lower() 或 str.upper() 返回字符串的副本,所有字符小寫/大寫:"AbCdEfGh".lower() 結果爲 "abcdefgh"
str.split(sep=None) 返回一個列表,由str根據sep被分隔的部分組成 :"A,B,C".split(",") 結果爲['A','B','C']
str.count(sub) 返回子串sub在str中出現的次數:"a apple a day".count("a") 結果爲 4
str.replace(old, new) 返回字符串str副本,全部old子串被替換爲new :"python".replace("n","n456") 結果爲 "python456"
str.center(width[,fillchar]) 字符串str根據寬度width居中,fillchar可選:"python".center(20,"=") 結果爲 '=======python======='
str.strip(chars) 從str中去掉在其左側和右側chars中列出的字符:"= python= ".strip(" =np") 結果爲

"ytho"
str.join(iter)|在iter變量除最後元素外每一個元素後增長一個:str ",".join("12345") 結果爲 "1,2,3,4,5" #主要用於字符串分隔等

7、字符串類型的格式化

格式化是對字符串進行格式表達的方式

  • 字符串格式化使用.format()方法,用法以下:<模板字符串>.format(<逗號分隔的參數>)
  • 字符串格式化使用f-string方法,用法以下:f<模板{<逗號分隔的參數>}字符串>

7.1 f-string方法的格式控制

{ <參數序號> : <格式控制標記> }

: <填充> <對齊> <寬度> <,> <.精度> <類型>
引導符號 用於填充的單個字符 < 左對齊
> 右對齊
^ 居中對齊
槽設定的輸出寬度 數字的千位分隔符 浮點數小數 或 字符串最大輸出長度 整數類型 b,c,d,o,x,X
浮點數類型e,E,f,%
"{0:=^20}".format("PYTHON")
'=======PYTHON======='
"{0:*>20}".format("BIT")
'*****************BIT'
"{:10}".format("BIT")
'BIT       '
"{0:,.2f}".format(12345.6789)
'12,345.68'
"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'

8、單元小結

  • 正向遞增序號、反向遞減序號、 <字符串> [M:N:K]
  • +、*、len()、str()、hex()、oct()、ord()、chr()
  • .lower()、.upper()、.split()、.count()、.replace()
  • .center()、.strip()、.join()、.format()格式化
相關文章
相關標籤/搜索