日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型

發布時間:2023/12/10 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字符串是 Python 中最常用的數據類型。我們可以使用引號('或")來創建字符串。

在最新的Python 3版本中,字符串是以Unicode編碼的,也就是說,Python的字符串支持多語言。

創建字符串很簡單,只要為變量分配一個值即可

View Code

對于單個字符的編碼,Python提供了ord()函數獲取字符的整數表示,chr()函數把編碼轉換為對應的字符

View Code

如果知道字符的整數編碼,還可以用十六進制這么寫str:

1 >>> '\u4e2d\u6587'

2 '中文'

由于Python的字符串類型是str,在內存中以Unicode表示,一個字符對應若干個字節。如果要在網絡上傳輸,或者保存到磁盤上,就需要把str變為以字節為單位的bytes。

Python對bytes類型的數據用帶b前綴的單引號或雙引號表示

1 >>> x = b'ABC'

2

3 >>>type(x)

4

注意區分'ABC'和b'ABC',前者是str,后者雖然內容顯示得和前者一樣,但bytes的每個字符都只占用一個字節。

以Unicode表示的str通過encode()方法可以編碼為指定的bytes,例如:

1 >>> 'ABC'.encode('ascii')

2 b'ABC'

3

4 >>> '中文'.encode('utf-8')

5 b'\xe4\xb8\xad\xe6\x96\x87'

6

7 >>> '中文'.encode('ascii')

8 Traceback (most recent call last):

9 File "", line 1, in

10 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

純英文的str可以用ASCII編碼為bytes,內容是一樣的,含有中文的str可以用UTF-8編碼為bytes。含有中文的str無法用ASCII編碼,因為中文編碼的范圍超過了ASCII編碼的范圍,Python會報錯。

在bytes中,無法顯示為ASCII字符的字節,用\x##顯示。

反過來,如果我們從網絡或磁盤上讀取了字節流,那么讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法:

1 >>> b'ABC'.decode('ascii')

2 'ABC'

3

4 >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')

5 '中文'

要計算str包含多少個字符,可以用len()函數:

1 >>> len('ABC')

2 3

3 >>> len('中文')

4 2

len()函數計算的是str的字符數,如果換成bytes,len()函數就計算字節數:

1 >>> len(b'ABC')

2 3

3 >>> len(b'\xe4\xb8\xad\xe6\x96\x87')

4 6

5 >>> len('中文'.encode('utf-8'))

6 6

可見,1個中文字符經過UTF-8編碼后通常會占用3個字節,而1個英文字符只占用1個字節。

在操作字符串時,我們經常遇到str和bytes的互相轉換。為了避免亂碼問題,應當始終堅持使用UTF-8編碼對str和bytes進行轉換。

由于Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:

1 #!/usr/bin/env python3

2 #-*- coding: utf-8 -*-

第一行注釋是為了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個注釋;

第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。

申明了UTF-8編碼并不意味著你的.py文件就是UTF-8編碼的,必須并且要確保文本編輯器正在使用UTF-8 without BOM編碼

如果.py文件本身使用UTF-8編碼,并且也申明了# -*- coding: utf-8 -*-,打開命令提示符測試就可以正常顯示中文

訪問字符串中的值

Python訪問子字符串,可以使用方括號來截取字符串

1 >>> v1 = 'Hello World'

2 >>> v2 = "Hello Python"

3

4 >>> print("v1[0] is %s" %v1[0])

5 >>> print("v2[1:5] is %s" % v2[1:5])

6

7

8 v1[0] isH

9 v2[1:5] is ello

在需要在字符中使用特殊字符時,python用反斜杠(\)轉義字符

轉義字符

描述

\(在行尾時)

續行符

\\

反斜杠符號

\'

單引號

\"

雙引號

\a

響鈴

\b

退格(Backspace)

\e

轉義

\000

\n

換行

\v

縱向制表符

\t

橫向制表符

\r

回車

\f

換頁

\oyy

八進制數,yy代表的字符,例如:\o12代表換行

\other

其它的字符以普通格式輸出

\xyy

十六進制數,yy代表的字符,例如:\x0a代表換行

字符串運算符

變量a值為字符串"Hello",b變量值為"Python"為例:

操作符

描述

實例

+

字符串連接

a + b 輸出結果: HelloPython

*

重復輸出字符串

a*2 輸出結果:HelloHello

[]

通過索引獲取字符串中字符

a[1] 輸出結果 e

[ : ]

截取字符串中的一部分

a[1:4] 輸出結果 ell

in

成員運算符 - 如果字符串中包含給定的字符返回 True

H in a 輸出結果 1

not in

成員運算符 - 如果字符串中不包含給定的字符返回 True

M not in a 輸出結果 1

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。

print r'\n' 輸出 \n 和 print R'\n' 輸出 \n

%

格式字符串

實例:

View Code

執行結果為:

View Code

總結

以上是生活随笔為你收集整理的python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。