2021-3-11 日報部落格
個人部落格
1.學到的東西
Python字串運算子
下表例項變數 a 值為字串 "Hello",b 變數值為 "Python":
操作符 | 描述 | 例項 |
---|---|---|
+ | 字串連線 | a + b 輸出結果: HelloPython |
* | 重複輸出字串 | a*2 輸出結果:HelloHello |
[] | 通過索引獲取字串中字元 | a[1] 輸出結果 e |
[ : ] | 擷取字串中的一部分,遵循左閉右開原則,str[0:2] 是不包含第 3 個字元的。 | a[1:4] 輸出結果 ell |
in | 成員運算子 - 如果字串中包含給定的字元返回 True | 'H' in a 輸出結果 True |
not in | 成員運算子 - 如果字串中不包含給定的字元返回 True | 'M' not in a 輸出結果 True |
r/R | 原始字串 - 原始字串:所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字串除在字串的第一個引號前加上字母 r(可以大小寫)以外,與普通字串有著幾乎完全相同的語法。 | print( r'\n' ) print( R'\n' ) |
% | 格式字串 | 請看下一節內容。 |
例項(Python 3.0+)
#!/usr/bin/python3 a = "Hello" b = "Python" print("a + b 輸出結果:", a + b) print("a * 2 輸出結果:", a * 2) print("a[1] 輸出結果:", a[1]) print("a[1:4] 輸出結果:", a[1:4]) if( "H" in a) : print("H 在變數 a 中") else : print("H 不在變數 a 中") if( "M" not in a) : print("M 不在變數 a 中") else : print("M 在變數 a 中") print (r'\n') print (R'\n')
以上例項輸出結果為:
a + b 輸出結果: HelloPython
a * 2 輸出結果: HelloHello
a[1] 輸出結果: e
a[1:4] 輸出結果: ell
H 在變數 a 中
M 不在變數 a 中
\n
\n
Python 字串格式化
Python 支援格式化字串的輸出 。儘管這樣可能會用到非常複雜的表示式,但最基本的用法是將一個值插入到一個有字串格式符 %s 的字串中。
在 Python 中,字串格式化使用與 C 中 sprintf 函式一樣的語法。
例項(Python 3.0+)
#!/usr/bin/python3 print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
以上例項輸出結果:
我叫 小明 今年 10 歲!
python字串格式化符號:
符 號 | 描述 |
---|---|
%c | 格式化字元及其ASCII碼 |
%s | 格式化字串 |
%d | 格式化整數 |
%u | 格式化無符號整型 |
%o | 格式化無符號八進位制數 |
%x | 格式化無符號十六進位制數 |
%X | 格式化無符號十六進位制數(大寫) |
%f | 格式化浮點數字,可指定小數點後的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 作用同%e,用科學計數法格式化浮點數 |
%g | %f和%e的簡寫 |
%G | %f 和 %E 的簡寫 |
%p | 用十六進位制數格式化變數的地址 |
格式化操作符輔助指令:
符號 | 功能 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用做左對齊 |
+ | 在正數前面顯示加號( + ) |
在正數前面顯示空格 | |
# | 在八進位制數前面顯示零('0'),在十六進位制前面顯示'0x'或者'0X'(取決於用的是'x'還是'X') |
0 | 顯示的數字前面填充'0'而不是預設的空格 |
% | '%%'輸出一個單一的'%' |
(var) | 對映變數(字典引數) |
m.n. | m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話) |
Python2.6 開始,新增了一種格式化字串的函式 str.format(),它增強了字串格式化的功能。
Python三引號
python三引號允許一個字串跨多行,字串中可以包含換行符、製表符以及其他特殊字元。例項如下
例項(Python 3.0+)
#!/usr/bin/python3 para_str = """這是一個多行字串的例項 多行字串可以使用製表符 TAB ( \t )。 也可以使用換行符 [ \n ]。 """ print (para_str)
以上例項執行結果為:
這是一個多行字串的例項
多行字串可以使用製表符
TAB ( )。
也可以使用換行符 [
]。
三引號讓程式設計師從引號和特殊字串的泥潭裡面解脫出來,自始至終保持一小塊字串的格式是所謂的WYSIWYG(所見即所得)格式的。
一個典型的用例是,當你需要一塊HTML或者SQL時,這時用字串組合,特殊字串轉義將會非常的繁瑣。
errHTML = '''
ERROR
%s''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')
f-string
f-string 是 python3.6 之後版本新增的,稱之為字面量格式化字串,是新的格式化字串的語法。
之前我們習慣用百分號 (%):
例項
>>> name = 'Runoob'
>>> 'Hello %s' % name
'Hello Runoob'
f-string 格式化字串以 f 開頭,後面跟著字串,字串中的表示式用大括號 {} 包起來,它會將變數或表示式計算後的值替換進去,例項如下:
例項
>>> name = 'Runoob'
>>> f'Hello {name}' # 替換變數
'Hello Runoob'
>>> f'{1+2}' # 使用表示式
'3'
>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
用了這種方式明顯更簡單了,不用再去判斷使用 %s,還是 %d。
在 Python 3.8 的版本中可以使用 = 符號來拼接運算表示式與結果:
例項
>>> x = 1
>>> print(f'{x+1}') # Python 3.6
2
>>> x = 1
>>> print(f'{x+1=}') # Python 3.8
'x+1=2'