【編號0006】Python中的字符串拼接方式

不管是爬蟲,還是數(shù)據(jù)分析,還是Web開發(fā),字符串是最基礎的基礎結構。

本篇文章重點講解對象,字符串——使用頻率最高的數(shù)據(jù)結構之一【或許沒有之一也說不定】

首先來講一下字符串的格式化方式。

方法1. 使用 + 號

這種是最簡單的字符串拼接方式了,如下:

str_a = 'hello'+ 'world'

最簡單的加法,就是將兩個字符串,通過一個加號 + ,將他們組合起來,然后賦值給另一個參數(shù)。

如果是多個字符串需要拼接,直接使用 字符串+字符串+字符串+...,就不多說了

方法2. %s 替換

這個也是非常常見的,使用%s進行替換,如下

str_b = "Nice to %s"
names = ['elisha','wendy','davis','gloria']
for name in names:
 print(str_b%name)
#結果輸出
#Nice to elisha
#Nice to wendy
#Nice to davis
#Nice to gloria

這是單個的%s替換字符,如果是多個呢?

str_b = "Hi, %s. I'm %s"
names = [['elisha','wendy'],['davis','gloria']]
for name in names:
 print(str_b%(name[0],name[1]))
#結果輸出
#Hi, elisha. I'm wendy
#Hi, davis. I'm gloria

效果圖:

1.png

這里的%s替換方式,不僅僅只有%s,還有其他的一些特定格式,如下表格:

轉換說明符,都以%開始 輸出格式
d,i 十進制
u 無符號數(shù)
o 八進制
x 十六進制或長整數(shù)
X 十六進制
f,e,E 浮點數(shù)
g,G 指數(shù)小于-4時使用
s 字符串或者任意對象,同str生成的字符串
r 同repr生成的字符串

在%符號和轉換說明符中間,還可以加如下的修飾符:

  1. - 左對齊標志【默認是右對齊】

  2. + 號表示顯示數(shù)字的正負號

  3. 0 表示用0來填充空位

  4. 如果是將字典的值格式化成字符串,則%符號和轉換說明符中間可以寫(鍵)

  5. 一個小數(shù)點,用于按精度來分割內容的顯示寬度

  6. 一個數(shù)字,指定要打印字符串中最大字符個數(shù),小數(shù)點之后的位數(shù);或者整數(shù)的最小位數(shù)

代碼示意:

# 對應第4條內容
dict_a = {'name':'小布','age':18}
print("我的名字是%(name)s,我今年%(age)d歲,且永遠%(age)d歲"%dict_a)
?
# 對應第1 2 3 5 6條內容
float_a = 12.58734
print("%f"%float_a)    #12.587340;正常打印
print("%3f"%float_a)   #12.587340;最小寬度為3,但是長度已經(jīng)超過了3,所以正常打印
print("%10f"%float_a)  # 12.587340;最小寬度為10,寬度不足10,默認為右對齊,向左補充空格直至寬度為10
print("%.3f"%float_a)  #12.587;小數(shù)點后的數(shù)字為精度,小數(shù)點后保留3位
print("%.10f"%float_a) #12.5873400000;小數(shù)點后位數(shù)不足10,補0至位數(shù)為10
?

方法3. format替換

format函數(shù)也非常的強大,簡單分類就是字符串格式化和數(shù)字格式化

1. 字符串格式化

print("{} {}".format("spbeen", "xiaobu"))    # 按順序
# 結果:'spbeen xiaobu'

print("{0} {1}".format("spbeen", "xiaobu"))  # 按位置
# 結果:'spbeen xiaobu'

print("{1} {0} {1}".format("spbeen", "xiaobu")) # 按位置
# 結果:'xiaobu spbeen xiaobu'

上面就是非常簡單的字符串格式化的方式,可以選擇默認順序,或者是指定format函數(shù)括號內的第幾個參數(shù)

2. 數(shù)字的格式化

數(shù)字的格式化,因為考慮到排版、對其、縮進等問題,所以這個知識點,比較的多,下面依舊使用表格展示:

數(shù)字 格式 輸出 描述
3.1415926 {:.2f} 3.14 保留小數(shù)點后兩位
3.1415926 {:+.2f} +3.14 帶符號保留小數(shù)點后兩位
-1 {:+.2f} -1.00 帶符號保留小數(shù)點后兩位
2.71828 {:.0f} 3 不帶小數(shù)
5 {:0>2d} 05 數(shù)字補零 (填充左邊, 寬度為2)
5 {:x<4d} 5xxx 數(shù)字補x (填充右邊, 寬度為4)
10 {:x<4d} 10xx 數(shù)字補x (填充右邊, 寬度為4)
1000000 {:,} 1,000,000 以逗號分隔的數(shù)字格式
0.25 {:.2%} 25.00% 百分比格式
1000000000 {:.2e} 1.00e+09 指數(shù)記法
13 {:>10d} 13 右對齊 (默認, 寬度為10)
13 {:<10d} 13 左對齊 (寬度為10)
13 {:^10d} 13 中間對齊 (寬度為10)

表格的補充說明:

  • ^, <, > 分別是居中、左對齊、右對齊,后面帶寬度

  • : 號后面帶填充的字符,只能是一個字符,不指定則默認是用空格填充。

  • + 表示在正數(shù)前顯示 +,負數(shù)前顯示 -; (空格)表示在正數(shù)前加空格

  • b、d、o、x 分別是二進制、十進制、八進制、十六進制。

方法4. f-string 語法

這個知識點,是Python3.6的新特性,所以要注意,3.6之前的版本,請勿測試,因為不支持

先上一個截圖:

鏈接:Python3.6官方文檔

2.png

相對于%s和format來講,這是一個更簡單、更方便的寫法。

因為即使是%s和format,如果拼接的內容很多,則他們兩個在括號內,都要寫比較長的一串內容。

但是在這里呢,就非常方便了,只要是在字符串聲明時,在引號前寫一個字母f,則字符串內的{}就可以直接寫該行代碼前,出現(xiàn)過的變量名,非常的方便。甚至是函數(shù)名,都可以直接使用

上兩個腳本代碼段:

int_a = 98
int_b = 776
print(f"a+b的結果是{int_a+int_b}")
# 結果是 874
def accum_to(num1, num2):
 total = 0
 for i in range(num1, num2+1):
 total += i
 return total
?
num1 = 34
num2 = 867
print(f"從{num1}開始,一直累加到{num2},總和是{accum_to(num1,num2)}")
# 輸出:從34開始,一直累加到867,總和是375717

效果圖:

3.png

以上就是本篇文章的全部介紹內容了


!放在最后

如果文章中有什么錯誤或者建議修改的地方,歡迎留言糾正和回復

如果你喜歡本篇文章,不妨關注一下我們的公眾號,每周更新兩篇原創(chuàng)技術文檔,都是干貨

wxgzh1.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容