成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 格式化字符串字面值

開發 后端
我們要在控制臺上給用戶反饋計算結果(比如AOE值為 0.82),于是就要寫 print 邏輯。描述計算結果的語句是死的(AOE值為),但數字是活的(0.82)。

[[404619]]

本文轉載自微信公眾號「Piper蛋窩」,作者Piper蛋。轉載本文請聯系Piper蛋窩公眾號。

本文參考輸入輸出 — Python 3.7.10 文檔[1]。首先聲明咱的實驗環境。

  1. ❯ python --version 
  2. Python 3.7.0 

引例:場景帶來的需求

我們要在控制臺上給用戶反饋計算結果(比如AOE值為 0.82),于是就要寫 print 邏輯。描述計算結果的語句是死的(AOE值為),但數字是活的(0.82)。我們希望把計算結果拼接到描述結構的語句上。新手可能會用字符串的拼接(字符串的「加法運算」+)。

  1. val_dict = { 
  2.     'AOE': 0.8200001, 
  3.     'wcb': 13423431, 
  4.     'p': 0.0314 
  5.  
  6. print("AOE值為 " + str(val_dict['AOE']) + " ,wcb值為 " + str(val_dict['wcb'])) 
  7. if val_dict['p'] < 0.05: print('拒絕原假設'
  8. else: print('接收原假設'

輸出:

  1. AOE值為 0.8200001 ,wcb值為 13423431 
  2. 拒絕原假設 

我們將介紹一種格式化方法,無論是書寫還是易讀,都比上述方法要優雅。

并且,我們將解決字符串拼接不能自動解決的小數位、科學計數法等問題。

格式化字符串字面值

官方文檔:要使用格式化字符串字面值,請在字符串的開始引號或三引號之前加上一個 f 或 F 。在此字符串中,你可以在 { 和 } 字符之間寫可以引用的變量或字面值的 Python 表達式。

有點費解,還是看實例最清晰。

咱們把上面的代碼改一下。

  1. print(f"AOE值為 {val_dict['AOE']} ,wcb值為 {val_dict['wcb']}"
  2. print(f"{'拒絕原假設' if val_dict['p'] < 0.05 else '接收原假設'}"

輸出:

  1. AOE值為 0.8200001 ,wcb值為 13423431 
  2. 拒絕原假設 

沒毛病,和之前的寫法效果一模一樣。但是咱們這回直接把「活的」變量『嵌入』到「死的」句子里面去了。

而且咱還把邏輯寫進了字符串,說明在 f"{}" 的 {} 大括號里面,放變量和表達式都行。

再把上面的例子變個形,來看看更多用法:比如在 {} 大括號里做簡單的運算,或者使用一些特殊格式化語法保留小數、轉化為科學計數法。

  1. print(f"AOE值為 {val_dict['AOE'] * 100}% ,wcb值為 {val_dict['wcb'] :E}"
  2. print(f"{'拒絕原假設' if val_dict['p'] < 0.05 else '接收原假設'}"

輸出:

  1. AOE值為 82.00001% ,wcb值為 1.342343E+07 
  2. 拒絕原假設 

注意到上面我們用了 {val_dict['wcb'] :E} 這樣的特殊語法,:E 表示把數字 val_dict['wcb'] 轉換為科學計數法。

類似:E,我們還有更多用法。在 Python 中,其名稱為格式規格迷你語言(format specification mini language)[2]。

我們可以直接應用 :.2% 來表示「讓數字變成百分數%,并且保留兩位小數(.2)」。

  1. print(f"AOE值為 {val_dict['AOE'] :.2%}% ,wcb值為 {val_dict['wcb'] :E}"
  2. print(f"{'拒絕原假設' if val_dict['p'] < 0.05 else '接收原假設'}"

輸出:

  1. AOE值為 82.00%% ,wcb值為 1.342343E+07 
  2. 拒絕原假設 

豈不是要比 {val_dict['AOE'] * 100}% 的寫法優雅很多。

更多示例

其他用法可以參考Python 的字符串格式示例(format examples)[3]。咱們這里自己造個場景:打印表格。

  1. table = { 
  2.     'Tom': [31, 32.314, 31, .423], 
  3.     'Jerry': [1, .41, 313, 123], 
  4.     'Paul': [7, .4, 53, .45754] 
  5.  
  6. def print_table(t): 
  7.     print('|  name  |  attr  |  feat  |  gest  |  dest  |'
  8.     print('|--------|--------|--------|--------|--------|'
  9.     for name, vals in table.items(): 
  10.         print(f'|{name :_^8}|{vals[0] :^8}|{vals[1] :>6.2f}  |{vals[2] :^8}|{vals[3] :>8.3f}|'
  11.  
  12. print_table(table

輸出:

  1. |  name  |  attr  |  feat  |  gest  |  dest  | 
  2. |--------|--------|--------|--------|--------| 
  3. |__Tom___|   31   | 32.31  |   31   |   0.423| 
  4. |_Jerry__|   1    |  0.41  |  313   | 123.000| 
  5. |__Paul__|   7    |  0.40  |   53   |   0.458| 

如上:

  • 我們的數據在 table 里存儲了數據
  • 在 print_table 保存了打印數據的邏輯
    • f{name :_^8} 中,^表示居中,8表示長度為 8,_表示填充_(默認填充空格)
    • f{vals[1] :>6.2f} 中,>6表示長度為 6 且靠右,.2f表示作為小數,且保留 2 位

更多的內容除了參考官方文檔,菜鳥教程的 Python 格式化函數[4]也是不錯的中文資料。

以后隨用隨查,在搜索引擎中輸入關鍵字python + 格式化輸出即可。

參考資料

[1]輸入輸出 — Python 3.7.10 文檔: https://docs.python.org/zh-cn/3.7/tutorial/inputoutput.html

[2]格式規格迷你語言(format specification mini language): https://docs.python.org/zh-cn/3.7/library/string.html#format-specification-mini-language

[3]Python 的字符串格式示例(format examples): https://docs.python.org/zh-cn/3.7/library/string.html#formatexamples

[4]菜鳥教程的 Python 格式化函數: https://www.runoob.com/python/att-string-format.html

 

責任編輯:武曉燕 來源: Piper蛋窩
相關推薦

2024-12-09 08:10:00

Python字符串格式化

2022-05-09 14:04:27

Python字符串格式化輸出

2017-01-16 16:33:06

Python 字符串漏洞

2020-06-28 08:26:41

Python開發工具

2009-09-02 15:56:49

C#格式化字符串

2024-03-06 08:41:14

Python字符串格式化工具

2022-03-28 10:56:11

Python字符串格式化

2009-09-03 18:05:04

ASP.NET字符串格

2010-02-01 16:46:07

C++格式化字符串

2009-09-03 18:45:06

GridView格式化

2024-05-27 00:10:00

2009-11-26 18:36:52

PHP函數sprint

2024-02-22 09:46:04

C++字符串格式化開發

2024-02-26 08:00:00

Pythonformat()字符串

2024-03-28 10:17:03

JDK 17字符串十六進制

2024-05-09 08:28:10

Python字符串百分號格式化

2010-03-22 18:53:53

Python格式化字符

2024-01-02 08:43:48

qs工具庫格式化

2024-09-05 16:02:52

Python數據類型字符串

2017-01-17 15:47:18

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品在线一区 | 免费一区| 国产成人叼嘿视频在线观看 | 日本理论片好看理论片 | 国产成人精品久久二区二区91 | 色毛片 | 99精品网站 | 久久久入口 | 7777在线视频免费播放 | 国产精品精品久久久久久 | 精品视频久久久久久 | 99在线观看视频 | 亚洲精品一二三区 | 成人一区二区电影 | 天堂在线91 | 久久亚洲国产精品 | 天天拍天天射 | 色99视频 | 国产精品自拍一区 | 亚洲国产成人精 | 亚洲福利一区二区 | 亚洲精品成人 | 久久久青草婷婷精品综合日韩 | 国产成人免费网站 | 亚洲一区二区三区视频免费观看 | 亚洲一区综合 | www四虎影视 | 五月婷婷激情 | 91免费电影 | 日本字幕在线观看 | 国产精品成人在线 | 国产成人免费 | 日韩在线观看一区 | 欧美日韩黄色一级片 | a黄视频 | 国产精品久久久久久久久久免费 | 日本精品一区二区三区视频 | 亚洲精品国产偷自在线观看 | 国产成人自拍av | 国产欧美在线观看 | 国产精品久久久久久久久图文区 |