1. 程式人生 > >Python字串-編碼

Python字串-編碼

字串str

​ 作用:

​ 用來記錄文字資訊

字面值表示方法:

​ 用引號括起來的部分都是字串

​ ‘ 單引號

​ “ 雙引號

​ ’’’ 三單引號

​ ””” 三雙引號

空字串’’, ””, ’’’’’’, ””””””

字串的字面值表示方式:

‘ hello’

“ hello”

’’’ hello’’’

””” hello”””

單引號和雙引號的區別:

單引號內的雙引號不算結束符

雙引號內的單引號不算結束符

三引號的作用:

三引號內可以包含單引號和雙引號

三引號字串中的換行會自動轉換為’\n’

隱式字串拼接

S =”I’m a teacher” ‘hello you’

用轉義序列代表特殊字元

​ 字串字面值中用字元反斜槓\

後跟一些字元代表特殊的一個字元

​ 例如:

​ \’ 代表一個單引號

​ \” 代表一個雙引號

​ \n 代表一個換行符

字串中的反斜槓轉義字元表

​ \’ 單引號

​ \” 雙引號

​ \ 反斜槓

​ \n 換行

​ \r 返回游標至行首 print(‘dsdfasf\rA’) # Asdfasf

​ \f 換頁

​ \t 水平製表符 對齊用tap print(‘asdas\tdasdt\tsfsdf’) #asdas dasdt sfsdf

​ \v 垂直製表符

​ \b 退格

​ \0 字串,字元值為0

\xXX XX為兩位十六進位制表示的字元

\uxxxx unicoid16的十六進位制表示的字元

\uxxxxxxxx unicoid32的十六進位制表示的字元(4X8)

常見ASCII編碼

​ 字元 十進位制 十六進位制

​ ‘0’ 48 0x30

​ ‘A’ 65 0x41

​ ‘a’ 97 0x61

​ ‘\0’ 0 0x00

​ ‘\n’ 10 0x0A

UNICODE編碼

全世界字元統一編碼

​ 分類:

​ UNICODE16(兩個位元組)

​ UNICODE32(四個位元組)

示例:

>>> print(‘\u9042’)

>>> print(‘\u00009042’)

raw字串 (原始字串)

格式:

r’字串內容’

r”字串內容”

r’’’字串內容’’’

r”””字串內容”””

作用:

讓轉義符號\無效

示例:

# 轉義之後

a=’C:newfile\test.py’ >>> print(’\’)

print(a) \

#未轉義raw字串

a=r’C:newfile\test.py’ >>> print(r’\’)

print(a) \

字串的運算

+ 加號運算子用於拼接字串

+=運算子用於原字串與右側字串拼接生成新的字串

示例:

s=’ABCD’+’EFG’

s+=’123’

print(s)

s2=s+s

print(s2)

*生成重複的字串

*=生成重複的字串並讓原變數繫結生成後的字串

示例:

s=”abd”*3

print(s)

s2=5*’0’

print(s2)

s=”abd”

s2*=3

字串的比較運算

​ >

​ >=

​ <

​ <=

​ ==

​ !=

格式:

x>y

比較規則:

1.字串x的第一個字母,與字串y的第一個字母比較,如果不相同,則直接得出比較結果;如果相同則再取第二個字母進行比較,以此類推

2.比較的依據是Unicode的編碼值

示例:

‘ad’>’abc’ true

‘abc’!=’cba’ true

‘abc’==’cba’ false

‘ab’<=’abc’ true

in /not in運算子

作用:

用於序列,字典,集合等容器中,用於判斷某個值是否存在於容器中,存在返回true,不存在則返回false

not in 與 in 運算子的返回結果相反

格式:

物件in序列

>>> ‘a’ in ‘asdf’

​ True

>>>’to’ in ‘welcome to classroom’

​ True

>>>’asdf’ in’sdrgs’

​ Faslse

字串的索引與切片

Index

Python的字串是不可以改變的字元序列

語法:

字串[整數表示式]

說明:

Python序列都可以用索引(index)來訪問序列中的物件

Python序列的正向索引是從0開始的,第二個索引為1…以此類推,最後一個索引是len(s)-1

Python序列的反向索引是從-1開始的,-1代表最後一個,-2代表倒數第二個,以此類推,第一個是-len(s)

[0] [1] [2] [3] [4] [5]

[-6][-5] [-4][-3] [-2][-1]

示例:

>>>a=’hello’

>>> a[0]

‘h’

切片 slice

從字串中取出相應的元素,重新組成一個字串

語法:

字串[(開始索引b):(結束索引e)(:步長s)]

ps:小括號括起來的部分代表可以省略

語法說明:

1.開始索引是切片切下的位置,0代表第一個元素,1代表第二個元素,-1代表最後一個元素

2.結束索引是切片的終止索引(但不包含終止點)->數學上的左閉右開

3.步長是切片每次獲取完當前元素後向右移動索引的偏移量

1)沒有步長,相當於取值完畢後右移動一個索引的位置(預設為1)

2)當步長為正整數數,正向切片

3)當步長為負整數時,取反向切片

總結:最後一個數字為正則說明切片時正向的,如果為負則是反向的。

反向切片時,預設的起始位置為最後一個元素,

終止位置是第一個元素的前一個元素

示例:

>>> s=‘abcde’

\ >>> s[1:4]

‘bcd’

>>> s[::-1]

‘edcba’

>>> s[-2:-5:-1]

‘dcb’

>>> s[2:-2]

‘c’

>>> s[:-2:2]

‘ac’

>>> s[-1:0:-1]

‘edcb’

>>> s[-1:-100:-2] or s[::-2]

‘eca’

練習:

輸入任意一個字串,判斷這個字串是否是迴文

迴文示例:

上海自來水來自海上

迴文是指中心對稱的文字

0=-1

1=-2

2=-3

Python3中常用的序列函式

len(seq) length

max(x) 返回序列的最大值

min(x) 返回序列的最小值

字串編碼轉換函式

ord© 返回一個字元的Unicode值

chr(i) 返回i這個值所對應的字元

示例:

>>> ord(‘嬋’)

23157

>>> chr(23423)

‘孿’

>>> chr(13145)

‘㍙’

>>>

整數轉換為字串的函式

hex(i) 將整數轉換成十六進位制字串

oct(i) 將整數轉化為八進位制

bin(i) 將整數轉換為二進位制數

示例:

>>> bin(10000)

‘0b10011100010000’

>>> hex(10000)

‘0x2710’

>>> oct(10000)

‘0o23420’

字串建構函式

str(obj=’’) 將物件轉換成字串

示例:

\ >>> str(100)

'100

\ >>> str(None)

‘None’