Python3.6字符串新特性

字符串前加 f

1、作用:
字符串格式化(python 3.6 新增,類似於變量內插賦值),格式化的字符串文字前綴爲"f",類似str.format()。包含由花括號包圍的替換區域。替換字段是表達式,在運行時進行評估,然後使用format()協議進行格式化。和之前的format字符串格式化差不多,但是用起來更簡化

2、例子:

Python 3.6.5 
>>> var = "python3.6"
>>> print(f"這是{var}以上版本中的新特性")
這是python3.6以上版本中的新特性

python3.6以下的版本是沒有這個特性的,下面以Python3.5.2 爲例:

Python 3.5.2 
>>> var = "python3.6"
>>> print(f"這是{var}以上版本中的新特性")
  File "<stdin>", line 1
    print(f"這是{var}以上版本中的新特性")
                            ^
SyntaxError: invalid syntax


字符串前加 b

1、作用:
python3.x裏默認的str(字符串)是unicode編碼的。
b前綴代表的就是bytes ,就是把python3.x中的字符串類型轉換成bytes類型。

python2.x裏, 字符串就是bytes類型,因此b前綴沒什麼具體意義, 只是爲了兼容python3.x的這種寫法

Python的默認編碼是ASCII編碼,

2、例子:
在python3中:

Python 3.6.5 
>>> import hashlib
>>> m = hashlib.md5()
>>> m.update("hello world")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Unicode-objects must be encoded before hashing # 錯誤信息提示必須編碼
>>> m.update(b"hello world")
>>> m.digest()
b'^\xb6;\xbb\xe0\x1e\xee\xd0\x93\xcb"\xbb\x8fZ\xcd\xc3'
>>>

字符串前加 r

1、作用:
聲明後面的字符串是普通字符串,相對的,特殊字符串中含有:轉義字符 \n \t 什麼什麼的。這樣轉義符就會被當成普通的字符串,而不會起作用。
2、例子:

>>> print("hello world\n\n !")
hello world

 !
>>> print(r"hello world\n\n !")
hello world\n\n !

字符串前加 u

1、作用:
後面字符串以 Unicode 格式 進行編碼,一般用在中文字符串前面,防止因爲源碼儲存格式問題,導致再次使用時出現亂碼。

2、例子:

u"哎呦,不錯!"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章