中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

?Python的實用技巧有哪些呢

發布時間:2021-12-21 13:23:56 來源:億速云 閱讀:138 作者:柒染 欄目:開發技術

 Python的實用技巧有哪些呢,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

01 all or any

Python 語言如此流行的眾多原因之一,是因為它具有很好的可讀性和表現力。

人們經常開玩笑說 Python 是可執行的偽代碼。當你可以像這樣寫代碼時,就很難反駁。

x = [True, True, False]
if any(x):
    print("至少有一個True")
if all(x):
    print("全是True")
if any(x) and not all(x):
    print("至少一個True和一個False")

02 dir

有沒有想過如何查看 Python 對象內部查看它具有哪些屬性?

在命令行中輸入:

dir() 
dir("Hello World") 
dir(dir)

當以交互方式運行 Python 以及動態探索你正在使用的對象和模塊時,這可能是一個非常有用的功能。在這里閱讀更多functions相關內容。

03 列表(list)推導式

關于 Python 編程,我最喜歡的事情之一是它的列表推導式。

這些表達式可以很容易地編寫出非常順暢的代碼,幾乎與自然語言一樣。

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']

def visit(city):
    print("Welcome to "+city)
    
for city in cities:
    visit(city)

04 pprint

Python 的默認print函數完成了它的工作。但是如果嘗試使用print函數打印出任何大的嵌套對象,其結果相當難看。這個標準庫的漂亮打印模塊pprint可以以易于閱讀的格式打印出復雜的結構化對象。

這算是任何使用非平凡數據結構的 Python 開發人員的必備品。

import requests
import pprint
url = 'https://randomuser.me/api/?results=1'
users = requests.get(url).json()
pprint.pprint(users)

05 repr

Python 中定義類或對象時,提供一種將該對象表示為字符串的“官方”方式很有用。

例如:

>>> file = open('file.txt', 'r') 
>>> print(file) 
<open file 'file.txt', mode 'r' at 0x10d30aaf0>

這使得調試代碼更加容易。將其添加到你的類定義中,如下所示:

class someClass: 
    def __repr__(self): 
        return "<some description here>"
someInstance = someClass()
# 打印 <some description here>
print(someInstance)

06 sh

Python 是一種很棒的腳本語言。有時使用標準的 os 和 subprocess 庫克可能有點頭疼。

該SH庫讓你可以像調用普通函數一樣調用任何程序——對于自動化工作流和任務非常有用。

import sh
sh.pwd()
sh.mkdir('new_folder')
sh.touch('new_file.txt')
sh.whoami()
sh.echo('This is great!')

07 Type hints

Python 是一種動態類型的語言。定義變量、函數、類等時不需要指定數據類型。這允許快速的開發時間。但是,沒有什么比由簡單地輸入問題引起的運行時錯誤更煩人的了。

Python 3.5開始,你可以選擇在定義函數時提供類型提示。

def addTwo(x : Int) -> Int:
    return x + 2

我們還可以定義類型別名。

from typing import List
Vector = List[float]
Matrix = List[Vector]
def addMatrix(a : Matrix, b : Matrix) -> Matrix:
  result = []
  for i,row in enumerate(a):
    result_row =[]
    for j, col in enumerate(row):
      result_row += [a[i][j] + b[i][j]]
    result += [result_row]
  return result
x = [[1.0, 0.0], [0.0, 1.0]]
y = [[2.0, 1.0], [0.0, -2.0]]
z = addMatrix(x, y)

盡管不是強制性的,但類型注釋可以使你的代碼更易于理解。

它們還允許你使用類型檢查工具,在運行前捕獲那些雜散的 TypeError。如果你正在處理大型、復雜的項目,這是很有用的!

08 uuid

通過Python 標準庫的 uuid 模塊生成通用唯一 ID(或“UUID”)的一種快速簡便的方法。

import uuid
user_id = uuid.uuid4()
print(user_id)

這將創建一個隨機的 128 位數字,該數字幾乎肯定是唯一的。事實上,可以生成超過 2122 種可能的 UUID。不過超過了五個十進制 (或 5,000,000,000,000,000,000,000,000,000,000,000,000)。

在給定的集合中發現重復的概率極低。即使有一萬億個 UUID,重復存在的可能性也遠低于十億分之一。

09 wikipedia

維基百科有一個很棒的 API,它允許用戶以編程方式訪問無與倫比的完全免費的知識和信息。在wikipedia模塊使訪問該API非常方便。

import wikipedia
result = wikipedia.page('freeCodeCamp')
print(result.summary)
for link in result.links:
    print(link)

和真實站點一樣,該模塊提供了多語言支持、頁面消歧、隨機頁面檢索,甚至還有一個donate()方法。

10 xkcd

幽默是 Python 語言的一個關鍵特征,它是以英國喜劇小品劇Python飛行馬戲團命名的。Python 的許多官方文檔都引用了該節目最著名的草圖。不過,Python 幽默并不僅限于文檔。試試運行下面的功能:

import antigravity

11 zip

壓軸出場的也是很棒的一個模塊。你曾經遇到過需要從兩個列表中形成字典嗎?

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))

該zip()內置函數需要一系列可迭代的對象,并返回一個元組列表中。每個元組按位置索引對輸入對象的元素進行分組。

你還可以通過調用對象來“解壓縮”對象*zip()。

12 emoji

emoji是日本在無線通信中所使用的視覺情感符號,繪制圖畫,文字指的則是字符,可用來代表多種表情,如笑臉表示笑、蛋糕表示食物等。在中國大陸,emoji通常叫做“小黃臉”,或者直稱emoji

# 安裝模塊
pip install emoji
# 做個嘗試
from emoji import emojize
print(emojize(":thumbs_up:"))

13 howdoi

當你使用terminal終端編程時,通過在遇到問題后會在StackOverflow上搜索答案,完后會回到終端繼續編程,此時有時會不記得你之前查到的解決方案,此時需要重新查看StackOverflow,但又不想離開終端,那么此時你需要用到這個有用的命令行工具howdoi

pip install howdoi

無論你有什么問題,都可以問它,它會盡力回復。

howdoi vertical align css
howdoi for loop in java
howdoi undo commits in git

但請注意——它會重生 StackOverflow 的最佳答案中抓取代碼。它可能并不總是提供最有用的信息......

howdoi exit vim

14 Jedi

Jedi 庫是一個自動完成和代碼分析庫。它使編寫代碼更快、更高效。

除非你正在開發自己的東西 IDE,否則你可能對使用Jedi 作為編輯器插件比較感興趣。幸運的是,這已經有可用的負載!

15 **kwargs

在學習任何語言時,都會有許多里程碑。使用 Python 并理解神秘的**kwargs語法可能算作一個重要的里程碑。

字典對象前面的雙星號 ****kwargs**允許你將該字典的內容作為命名參數傳遞給函數。

字典的關鍵是參數名稱,值是傳遞給函數的值。你甚至不需要調用它kwargs

dictionary = {"a": 1, "b": 2}
def someFunction(a, b):
    print(a + b)
    return
# 這些做同樣的事情:
someFunction(**dictionary)
someFunction(a=1, b=2)

當你想編寫可以處理未預先定義的命名參數的函數時,這很有用。

Python 是一種非常多樣化且發展良好的語言,因此肯定會有許多我沒有考慮過的功能。如果你想了解更多的python模塊,可以點個贊和關注哦

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博爱县| 杭锦后旗| 泸水县| 建宁县| 吴堡县| 天祝| 柳河县| 庄河市| 湟中县| 盐源县| 将乐县| 台北市| 随州市| 太白县| 乳山市| 普安县| 隆化县| 扬中市| 毕节市| 红河县| 花莲县| 库车县| 新营市| 黎平县| 堆龙德庆县| 南宫市| 石家庄市| 天水市| 呼图壁县| 灵丘县| 遵义市| 苍山县| 磐安县| 江达县| 新蔡县| 阳城县| 来凤县| 汶上县| 兴海县| 景德镇市| 开鲁县|