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’