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

只會在終端使用Python運行代碼?這些進階用法了解了解

開發 前端
大部分同學在終端使用Python可能只是簡單的執行代碼,但其實結合一些Python內置模塊或第三方庫可以實現更高級且便捷的用法,一起看看吧。

大部分同學在終端使用Python可能只是簡單的執行代碼,但其實結合一些Python內置模塊或第三方庫可以實現更高級且便捷的用法,一起看看吧!

代碼Benchmark測試

首先簡單寫個斐波那契數列,命名為example.py:

import time

def fib(n):
    if n <= 1:
        return n
    return fib(n - 1) + fib(n - 2)

def main(test_times=50):
    start = time.perf_counter()
    for _ in range(test_times):
        fib(30)
    print(f'Time spent: {time.perf_counter() - start} s')

if __name__ == '__main__':
    main()

現在對這份代碼進行Benchmark測試,Python中的內置模塊cProfile可以幫助我們完成這個工作,在終端執行以下命令:

python -m cProfile example.py

可以得到一份深入的測試報告,如圖所示:

其中表頭從左至右:

  • ncalls:函數被調用的次數
  • tottime:函數花費的總時間(不包括被調用函數花費的時間)
  • percall:每次調用所花費的時間(等于tottime除以ncalls)即15.358/134626850
  • cumtime:在函數中累計花費的時間,包括在被調用函數中花費的時間
  • percall:每次調用所花費的時間(等于cumtime除以ncalls)15.358/50

是不是肥腸簡單且清晰明了,對我們優化代碼提供幫助。

值得一提的是,如果只想測試一些簡單的Python代碼,內置的timeit是個不錯的選擇,如:

python -m timeit '[i for i in range(100)]'

使用 timeit 測量執行此列表推導式所需的時間,得到輸出:

200000 loops, best of 5: 1.4 usec per loop

此輸出表明每次計時將執行200000次列表推導,共計時測試了5次,最好的結果是1.4毫秒。

代碼風格檢查

如何評估我們的Python代碼是否Pythonic呢?第三方庫flake8可以輕松做到,首先安裝:

pip install flake8

確保安裝完成后,我們還是使用前述斐波那契example.py,只需在終端輸入:

python -m flake8 example.py

輸出:

可以按照提示進行優化。

格式化Python代碼

當知道我們寫的史山代碼需要風格改進,由前述可以結合flake8進行手動優化,那有沒有什么能幫我們自動優化呢?第三方庫black誕生。

同樣使用pip安裝:

pip install black

安裝完畢后通過一行命令使用black格式化我們的代碼:

python -m black example.py

輸出:

然后再次使用flake8檢查代碼風格,無任何輸出,代表無優化項。

此時我們的代碼變成了:

import time


def fib(n):
    if n <= 1:
        return n
    return fib(n - 1) + fib(n - 2)


def main(test_times=50):
    start = time.perf_counter()
    for _ in range(test_times):
        fib(30)
    print(f"Time spent: {time.perf_counter() - start} s")


if __name__ == "__main__":
    main()

使用Pylint進行更專業的代碼分析

僅擁有良好的風格還不完美,為了進行樣式之外的代碼分析,還需要結合pylint:

pip install pylint

此處基于black優化過的代碼進行pylint分析,在終端輸入一行命令:

python -m pylint example.py

輸出如下,可知該代碼缺少文檔字符串

所以在大佬review代碼前,可以借助pylint先進行一波優化。

對代碼進行安全性分析

Python第三方庫bandit可以幫助我們檢查代碼中潛在的安全隱患、不安全的函數或模塊、密碼或密鑰等問題:

pip install bandit

在終端執行如下命令進行安全檢查:

python -m bandit example.py

輸出:

表明肥腸安全。

解析json并清晰打印

除了在vscode中打開json,并格式化顯示達到清晰展示的目的外,Python自帶的模塊也能完成這個,比如有example.json文件內容如下:

[
  {"name": {"first_name":"Xukong", "last_name":"Cai"}, "hobby":"rap, basketball"},
  {"name": {"first_name":"San", "last_name":"Zhang"}, "hobby":"eat"}
]

使用如下命令在終端格式化顯示:

python -m json.tool example.json

輸出:

肥腸清晰,插一句,若同樣想在終端打印代碼中輸出的json結構,可以使用pprint。

責任編輯:趙寧寧 來源: 啥都會一點的研究生
相關推薦

2023-11-02 16:51:07

Python代碼

2023-11-06 13:08:45

2023-12-14 12:55:41

Pythondel語句

2024-02-19 08:40:22

2019-10-23 11:24:44

LinuxLinux目錄Linux系統

2023-11-06 17:37:17

技術架構任務隊列

2021-11-01 12:37:47

Python肉類蔬菜

2023-06-26 07:32:43

Kubernetes容器

2023-05-09 09:00:20

版本Canary框架

2023-11-27 00:48:46

displayvisibility

2025-02-17 08:18:27

C#TypeScriptJavaScript

2024-01-03 08:08:51

Pulsar版本數據

2023-09-27 16:29:55

開發團隊信息

2024-03-20 08:31:40

KotlinExtension計算

2010-08-29 21:09:57

DHCP協議

2021-04-08 11:15:55

索引數據庫MySQL

2021-04-08 20:50:17

創建索引MySQL

2019-10-25 09:01:09

物聯網Wi-Fi通信

2022-10-24 08:45:23

數據庫應用場景區塊鏈

2023-10-12 16:39:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本视频一区二区三区 | 久久香蕉网 | 国产韩国精品一区二区三区 | 美女久久久久久久 | 午夜激情一区 | 久久久黄色 | 亚洲精品欧美 | 天天操天天射天天舔 | 日韩美女一区二区三区在线观看 | 午夜免费网站 | 天天综合网永久 | 一区二区三区四区免费在线观看 | 中文字幕一区二区三区精彩视频 | 久久精品16| 91福利影院 | 91av在线看 | 96av麻豆蜜桃一区二区 | 91在线精品一区二区 | 91视频日本 | 色婷婷综合久久久中字幕精品久久 | 国产成人av电影 | 国产一区不卡 | 国产做a爱片久久毛片 | 国产精品电影在线观看 | 国产成人免费视频 | 久久综合久色欧美综合狠狠 | 日本一区二区三区视频在线 | 国产精品久久久久久久久久免费看 | 成人精品一区 | 久久国产精品91 | 欧美黄视频 | 久久久久1 | 成人久久久久久久久 | 欧美日韩中文字幕在线播放 | 全部免费毛片在线播放网站 | 一本大道久久a久久精二百 国产成人免费在线 | 日韩一级电影免费观看 | 国产精品国产成人国产三级 | 欧美国产亚洲一区二区 | 国产精品二区三区在线观看 | 亚洲一区二区三区在线 |