1. 程式人生 > 其它 >2021-3-11 日報部落格

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 = ''' Friends CGI Demo

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'

2.明日計劃

3.遇到的問題