欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分享Python?的24個(gè)編程超好用技巧

 更新時(shí)間:2022年02月28日 09:34:11   作者:程序員涵涵2021  
這篇文章主要給大家分享Python?的24個(gè)編程超好用技巧,下面分享一些python技巧和?tips,這些技巧將根據(jù)其首字母按?A-Z?的順序進(jìn)行展示,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1、ALL OR ANY

Python 之所以成為這么一門受歡迎的語言一個(gè)原因是它的可讀性和表達(dá)能力非常強(qiáng)。Python 也因此經(jīng)常被調(diào)侃為“可執(zhí)行的偽代碼”。不信你看:

x = [True, True, False]
if any(x):
? ? print("At least one True")
if all(x):
? ? print("Not one False")
if any(x) and not all(x):
? ? print("At least one True and one False")

2、BASHPLOTIB

你想要在控制臺(tái)繪圖嘛?

$ pip install bashplotlib

現(xiàn)在,你的控制臺(tái)中就可以有圖了

3、COLLECTIONS

Python 有一些很棒的默認(rèn)數(shù)據(jù)類型,但是有時(shí)候他們并不會(huì)像你所希望的那樣發(fā)揮作用。

幸運(yùn)的是,Python 標(biāo)準(zhǔn)庫提供了 collection 模塊。它讓你可以使用更為多樣數(shù)據(jù)類型。

from collections import OrderedDict, Counter
# Remembers the order the keys are added!
x = OrderedDict(a=1, b=2, c=3)
# Counts the frequency of each character
y = Counter("Hello World!")

4、DIR

面對(duì)一個(gè) Python 對(duì)象,你是否曾想過可以直接看到其屬性?你也許可以試試以下的代碼:

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

這是運(yùn)行 Python 的時(shí)候一個(gè)非常有用的功能,用于動(dòng)態(tài)探索你所使用的對(duì)象和模塊。更多詳情,可以查看這里

5、EMOJI

對(duì)的,你沒看錯(cuò)!

$ pip install emoji

python 來創(chuàng)建表情包,你也可以。

from emoji import emojize
print(emojize(":thumbs_up:"))

6、FROM_FUTURE_IMPORT

Python 非常受歡迎,這也就導(dǎo)致了它的版本更新非常快,新的版本往往會(huì)有很多新特性。你不更新,就無法使用。

然而,不要害怕。future 模塊可以讓你導(dǎo)入未來版本的功能。有點(diǎn)像時(shí)空穿梭有木有!

from __future__ import print_function
print("Hello World!")

7、GEOPY

對(duì)于程序猿來說地理可能是一個(gè)非常有挑戰(zhàn)性的領(lǐng)域。但是,geopy 模塊則讓它變得非常簡單。

$ pip install geopy

它通過提取一系列不同地理編碼服務(wù)的 api 來工作,讓你能夠獲得一個(gè)地方的完整街道地址、緯度、經(jīng)度,甚至海拔。

這里面同時(shí)還包含一個(gè)有用的“距離”類別。它能使用你選定的度量去計(jì)算了兩個(gè)地點(diǎn)之間的距離。

from geopy import GoogleV3
place = "221b Baker Street, London"
location = GoogleV3().geocode(place)
print(location.address)
print(location.location)

8、HOWDOI

有時(shí)候你碰到了一個(gè)編程問題,覺得自己之前明明見過它的解決方法,但是卻記不起來具體是怎么樣的了。于是你想要去 StackOverflow 上找,但又不想離開這個(gè)終端。這個(gè)時(shí)候,你需要下面這個(gè)工具——howdoi

$ pip install howdoi

你所遇到的任何問題都可以問它,它會(huì)盡他所能給你返回一個(gè)答案。

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

需要注意的是——它只從 StackOverflow 最頂端的答案中抓取代碼。所以它給你返回的不總是最有用的信息…

$ howdoi exit vim

9、INSPECT

Pythoninspect 模塊用于收集 Python 對(duì)象的信息,可以獲取類或函數(shù)的參數(shù)的信息,源碼,解析堆棧等等

下方的代碼樣例使用了inspect.getsource() 來打印它自身的源碼。同樣還使用了inspect.getmodule() 來打印定義了 inspect.getmodule() 的模塊。最后一行代碼則是打印了本行代碼所在的行號(hào)。在本例中,就是 4 。

import inspect
print(inspect.getsource(inspect.getsource))
print(inspect.getmodule(inspect.getmodule))
print(inspect.currentframe().f_lineno)

inspect 模塊可以有效地讓你知道你的代碼是如何工作的,你也可以利用它來完成一些個(gè)人的源碼。

10、JEDI

Jedi 庫是一個(gè)代碼自動(dòng)補(bǔ)齊和靜態(tài)分析的庫。它可以使你更快更高效地書寫代碼。

除非你在開發(fā)自己的編輯器,否則你可能會(huì)非常喜歡將 Jedi 作為自己的編輯插件。

你可能已經(jīng)正在使用 Jedi 而只是沒發(fā)現(xiàn)。IPython 項(xiàng)目就是利用 Jedi 來實(shí)現(xiàn)其自動(dòng)補(bǔ)全功能。

11、**KWARGS

無論你學(xué)習(xí)那種語言,在這條學(xué)習(xí)之路上總有那么一些里程碑。在 Python 的編程學(xué)習(xí)中,理解神秘的 **kwargs 語法應(yīng)該算是一個(gè)重要的里程碑。

雙星“**”放在字典的前面可以讓你將字典的內(nèi)容作為命名參數(shù)傳遞給函數(shù)。字典的鍵是參數(shù)的名字,鍵的值作為參數(shù)的值傳遞給函數(shù)。

如下所示:

dictionary = {"a": 1, "b": 2}
def someFunction(a, b):
? ? print(a + b)
? ? return
# these do the same thing:
someFunction(**dictionary)
someFunction(a=1, b=2)

當(dāng)你想要?jiǎng)?chuàng)建一個(gè)函數(shù),它需要能處理事先沒有定義過的參數(shù),那么就要用到前面提到的技巧了。

12、LIST COMPREHENSIONS

List comprehensions(列表推導(dǎo)式)

列表推導(dǎo)式可以說是我最喜歡的 Python 技巧之一。這種表達(dá)式可以讓你寫出像自然語言一樣易于理解并且還很簡潔的代碼。

你可以通過這個(gè)鏈接了解更多關(guān)于列表推導(dǎo)式的用法。

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)

13、MAP

Python 有許多非常有用的內(nèi)置函數(shù)。其中一個(gè)就是map()——特別是和 lambda 函數(shù)相結(jié)合的時(shí)候。

x = [1, 2, 3]
y = map(lambda x : x + 1 , x)
# prints out [2,3,4]
print(list(y))

在這個(gè)例子中,map() 對(duì) x 中的每一個(gè)元素都應(yīng)用了一個(gè)簡單的 lambda 函數(shù)。它會(huì)返回一個(gè) map 對(duì)象,這個(gè)對(duì)象可以被轉(zhuǎn)化成可迭代對(duì)象,如列表或者元組。

14、NEWSPAPER3K

newspaper3k, 如果你還沒有見過它,那么你可能會(huì)被這個(gè)Python newspaper 模塊所驚艷到。

它可以讓你檢索到一系列國際領(lǐng)先出版物中的新聞和相關(guān)的元數(shù)據(jù)。你可以檢索圖片、文本和作者名。它甚至有一些內(nèi)置的自然語言處理功能。所以,如果你正在考慮使用 BeautifulSoup 或其他自制的爬蟲庫來應(yīng)用于你的下一個(gè)項(xiàng)目。那么,省省時(shí)間和精力吧,你其實(shí)只需要$ pip install newspaper3k。

15、OPERATOR OVERLOADING(操作符重載)

Python 支持操作符重載。“操作符重載”其實(shí)是個(gè)簡單的概念,你是否曾經(jīng)想過為什么 Python 可以讓你使用“+”操作符來同時(shí)實(shí)現(xiàn)加法和連接字符串?這就是操作符重載在發(fā)揮作用。

你可以定義使用 Python 標(biāo)準(zhǔn)操作符符號(hào)的對(duì)象,這可以讓你在特定的環(huán)境中使用特定的對(duì)象,就像下方的例子一樣。

class Thing:
? ? def __init__(self, value):
? ? ? ? self.__value = value
? ? def __gt__(self, other):
? ? ? ? return self.__value > other.__value
? ? def __lt__(self, other):
? ? ? ? return self.__value < other.__value
something = Thing(100)
nothing = Thing(0)
# True
something > nothing
# False
something < nothing
# Error
something + nothing

16、PPRINT

Python 的默認(rèn) print 函數(shù)可以滿足日常的輸出任務(wù),但如果要打印更大的、嵌套式的對(duì)象,那么使用默認(rèn)的 print 函數(shù)打印出來的內(nèi)容會(huì)很丑陋。

這個(gè)時(shí)候我們就需要 pprint 了,它可以讓復(fù)雜的結(jié)構(gòu)型對(duì)象以可讀性更強(qiáng)的格式顯示。這對(duì)于經(jīng)常要面對(duì)非普通數(shù)據(jù)結(jié)構(gòu)的 Python 開發(fā)者來說是必不可少的工具。

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

17、QUEUE(隊(duì)列)

Python 支持多線程,它是通過標(biāo)準(zhǔn)庫中的 Queue 模塊來實(shí)現(xiàn)的。這個(gè)模塊可以讓你實(shí)現(xiàn)隊(duì)列數(shù)據(jù)結(jié)構(gòu)。這種數(shù)據(jù)結(jié)構(gòu)可以讓你根據(jù)特定的規(guī)則添加和檢索條目。

“先進(jìn)先出”(FIFO)隊(duì)列可以讓你按照添加對(duì)象的順序來檢索他們。“后進(jìn)先出”(LIFO)隊(duì)列可以讓你首先訪問最近添加的對(duì)象。最后,優(yōu)先隊(duì)列可以讓你根據(jù)他們排序的順序進(jìn)行檢索。

__repr__

當(dāng)你定義一個(gè)類的時(shí)候,提供一個(gè)方法可以返回用來表示該類對(duì)象的可打印字符串會(huì)非常有用。例如:

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

這使得 debug 更加方便,具體的定義方式如下:

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

18、sh

sh 庫讓你像調(diào)用方法那樣調(diào)用系統(tǒng)中的命令。

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

19、TYPE HINT(類型提示)

Python 是一種動(dòng)態(tài)類型語言。當(dāng)你定義變量、函數(shù)、類別的時(shí)候,你不需要指定數(shù)據(jù)的類型。這可以大大提升你的開發(fā)速度,但也是有代價(jià)的。你可能會(huì)因?yàn)橐粋€(gè)簡單的輸入問題而導(dǎo)致運(yùn)行出錯(cuò)。

Python3.5 之后,這就不是問題了,在定義函數(shù)的時(shí)候你可以自主選擇要不要提供類型提示。

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)

雖然不是強(qiáng)制性的,類型注釋可以讓你的代碼理解起來更加簡單。它們也允許你使用類型檢測工具在運(yùn)行之前捕獲這些零散的類型錯(cuò)誤。如果你正在從事大型、復(fù)雜的項(xiàng)目,那么類型注釋也許會(huì)非常有幫助

20、UUID

通過 Python 標(biāo)準(zhǔn)庫中的 uuid 模塊,可以快速并簡單地生成統(tǒng)一的唯一ID(又稱UUID).

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

UUID 是128位的全局唯一標(biāo)識(shí)符,通常由32字節(jié)的字符串表示。它可以保證時(shí)間和空間的唯一性,也稱為 GUID,全稱為:UUID —— Universally Unique IDentifier,Python 中叫 UUID。它通過 MAC 地址、時(shí)間戳、命名空間、隨機(jī)數(shù)、偽隨機(jī)數(shù)來保證生成ID的唯一性。

21、VRITUAL ENVIRONMENTS

這可能是我最喜歡的 Python技巧 了。你可能經(jīng)常要處理不止一個(gè) Python 項(xiàng)目,不幸的是,有時(shí)候不同項(xiàng)目會(huì)依賴不同的Python版本。這個(gè)時(shí)候,你應(yīng)該在系統(tǒng)里安裝哪個(gè) Python 版本呢?

幸運(yùn)的是,Python 可以支持建立不同的虛擬環(huán)境來滿足不同的版本需求。

python -m venv my-project
source my-project/bin/activate
pip install all-the-modules?

現(xiàn)在你可以在一臺(tái)機(jī)器上安裝和運(yùn)行各個(gè)獨(dú)立版本的 Python。太棒了!

22、WIKIPEDIA

Wikipedia 有一個(gè)很棒的 API,它可以讓用戶通過編程訪問到維基的詞條內(nèi)容。使用 Python 中的 wikipedia 模塊可以讓你以最便捷的方式訪問該 API。

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

與真實(shí)站點(diǎn)一樣,該模塊支持多種語言、頁面消除歧義、隨機(jī)頁面檢索,甚至還有 donate() 方法。

23、YAML

YAML 是 “YAML 不是一種標(biāo)記語言”的外語縮寫。它是一個(gè)數(shù)據(jù)格式語言,是 JSON 的父集。和 JSON 不同的是,它可以存儲(chǔ)更復(fù)雜的對(duì)象,并且可以引用自身的元素。你還可以寫注釋,這讓 YAML 特別適合于書寫配置文件。

PyYAML 模塊可以讓你使用 Python 調(diào)用 YAML。使用下列語句安裝:

$ pip install pyyaml

然后導(dǎo)入到項(xiàng)目中:

import yaml

PyYAML 使你能夠儲(chǔ)存任何數(shù)據(jù)類型的 Python 對(duì)象,以及任何用戶定義類的實(shí)例。

24、ZIP

最后一個(gè)技巧也非??帷D闶欠裨胍寖蓚€(gè)列表中的元素逐個(gè)映射,組合成字典?那么你應(yīng)該使用 zip。

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

置函數(shù)zip() 接收若干可迭代對(duì)象,然后返回一個(gè)由多個(gè)元組組成的列表。每個(gè)元組根據(jù)輸入對(duì)象的位置索引對(duì)其元素進(jìn)行分組。還可以使用 *zip() 來“解壓”對(duì)象。

到此這篇關(guān)于分享Python 的24個(gè)編程超好用技巧的文章就介紹到這了,更多相關(guān)Python 的24個(gè)編程技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python中如何利用matplotlib畫多個(gè)并列的柱狀圖

    python是一個(gè)很有趣的語言,可以在命令行窗口運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于python中如何利用matplotlib畫多個(gè)并列的柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • Opencv中cv2.cvtColor彩色圖轉(zhuǎn)灰度圖的其他6種方法

    Opencv中cv2.cvtColor彩色圖轉(zhuǎn)灰度圖的其他6種方法

    本文主要介紹了Opencv中cv2.cvtColor彩色圖轉(zhuǎn)灰度圖的其他6種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))

    Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))

    這篇文章主要介紹了Python 將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 初探TensorFLow從文件讀取圖片的四種方式

    初探TensorFLow從文件讀取圖片的四種方式

    本篇文章主要介紹了初探TensorFLow從文件讀取圖片的四種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python實(shí)現(xiàn)多維數(shù)據(jù)分析的示例詳解

    Python實(shí)現(xiàn)多維數(shù)據(jù)分析的示例詳解

    多維數(shù)據(jù)分析是對(duì)數(shù)據(jù)的信息分析,它考慮了許多關(guān)系,這篇文章主要為大家詳細(xì)介紹了一些使用Python分析多維/多變量數(shù)據(jù)的基本技術(shù),希望對(duì)大家有所幫助
    2023-11-11
  • Python內(nèi)置函數(shù)bin() oct()等實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    Python內(nèi)置函數(shù)bin() oct()等實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換

    使用Python內(nèi)置函數(shù):bin()、oct()、int()、hex()可實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換;先看Python官方文檔中對(duì)這幾個(gè)內(nèi)置函數(shù)的描述,需要了解的朋友可以參考下
    2012-12-12
  • python腳本監(jiān)控Tomcat服務(wù)器的方法

    python腳本監(jiān)控Tomcat服務(wù)器的方法

    這篇文章主要介紹了利用python腳本監(jiān)控Tomcat服務(wù)器的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Matplotlib 折線圖plot()所有用法詳解

    Matplotlib 折線圖plot()所有用法詳解

    這篇文章主要介紹了Matplotlib 折線圖plot()所有用法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Python中尋找數(shù)據(jù)異常值的3種方法

    Python中尋找數(shù)據(jù)異常值的3種方法

    這篇文章主要介紹了Python中尋找數(shù)據(jù)異常值的3種方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Python之random庫的常用函數(shù)有哪些

    Python之random庫的常用函數(shù)有哪些

    這篇文章主要為大家詳細(xì)介紹了Python之random庫的常用函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評(píng)論