Python編程進(jìn)階,常用8大技巧!

選自medium,作者:Martin Heinz
機(jī)器之心編譯
介紹 Python 炫酷功能(例如,變量解包,偏函數(shù),枚舉可迭代對(duì)象等)的文章層出不窮。但是還有很多 Python 的編程小技巧鮮被提及。因此,本文會(huì)試著介紹一些其它文章沒(méi)有提到的小技巧,這些小技巧也是我平時(shí)會(huì)用到的的。讓我們一探究竟吧!
user_input?=?"This\nstring?has\tsome?whitespaces...\r\n"
character_map?=?{
????ord('\n')?:?'?',
????ord('\t')?:?'?',
????ord('\r')?:?None
}
user_input.translate(character_map)??#?This?string?has?some?whitespaces...?import?itertools
s?=?itertools.islice(range(50),?10,?20)??#?<itertools.islice?object?at?0x7f70fab88138>
for?val?in?s:
????...string_from_file?=?"""
//?Author:?...
//?License:?...
//
//?Date:?...
Actual?content...
"""
import?itertools
for?line?in?itertools.dropwhile(lambda?line:?line.startswith("http://"),?string_from_file.split("\n")):
????print(line)def?test(*,?a,?b):
????pass
test("value?for?a",?"value?for?b")??#?TypeError:?test()?takes?0?positional?arguments...
test(a="value",?b="value?2")??#?Works...class?Connection:
????def?__init__(self):
????????...
????def?__enter__(self):
????????#?Initialize?connection...
????def?__exit__(self,?type,?value,?traceback):
????????#?Close?connection...
with?Connection()?as?c:
????#?__enter__()?executes
????...
????#?conn.__exit__()?executesfrom?contextlib?import?contextmanager
@contextmanager
def?tag(name):
????print(f"<{name}>")
????yield
????print(f"{name}>")
with?tag("h1"):
????print("This?is?Title.")class?Person:
????__slots__?=?["first_name",?"last_name",?"phone"]
????def?__init__(self,?first_name,?last_name,?phone):
????????self.first_name?=?first_name
????????self.last_name?=?last_name
????????self.phone?=?phoneimport?signal
import?resource
import?os
#?To?Limit?CPU?time
def?time_exceeded(signo,?frame):
????print("CPU?exceeded...")
????raise?SystemExit(1)
def?set_max_runtime(seconds):
????#?Install?the?signal?handler?and?set?a?resource?limit
????soft,?hard?=?resource.getrlimit(resource.RLIMIT_CPU)
????resource.setrlimit(resource.RLIMIT_CPU,?(seconds,?hard))
????signal.signal(signal.SIGXCPU,?time_exceeded)
#?To?limit?memory?usage
def?set_max_memory(size):
????soft,?hard?=?resource.getrlimit(resource.RLIMIT_AS)
????resource.setrlimit(resource.RLIMIT_AS,?(size,?hard))def?foo():
????pass
def?bar():
????pass
__all__?=?["bar"]from?functools?import?total_ordering
@total_ordering
class?Number:
????def?__init__(self,?value):
????????self.value?=?value
????def?__lt__(self,?other):
????????return?self.value?
????def?__eq__(self,?other):
????????return?self.value?==?other.value
print(Number(20)?>?Number(3))
print(Number(1)?5))
print(Number(15)?>=?Number(15))
print(Number(10)?<=?Number(2))原文鏈接:https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Fpython-tips-and-trick-you-havent-already-seen-37825547544f
這是我開(kāi)發(fā)的機(jī)器人公眾號(hào)小號(hào),目前增加了天氣查詢,955公司名單,關(guān)注時(shí)間查詢;后面還會(huì)增加圖片功能和每日送書(shū)抽獎(jiǎng)送書(shū)活動(dòng),以及調(diào)戲功能,歡迎來(lái)體驗(yàn),捧場(chǎng)。
一個(gè)機(jī)器人公眾號(hào)已經(jīng)上線,歡迎調(diào)戲
推薦閱讀:
入門(mén):?最全的零基礎(chǔ)學(xué)Python的問(wèn)題? |?零基礎(chǔ)學(xué)了8個(gè)月的Python??|?實(shí)戰(zhàn)項(xiàng)目?|學(xué)Python就是這條捷徑
干貨:爬取豆瓣短評(píng),電影《后來(lái)的我們》?|?38年NBA最佳球員分析?|? ?從萬(wàn)眾期待到口碑撲街!唐探3令人失望? |?笑看新倚天屠龍記?|?燈謎答題王?|用Python做個(gè)海量小姐姐素描圖?|碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
趣味:彈球游戲? |?九宮格? |?漂亮的花?|?兩百行Python《天天酷跑》游戲!
AI:?會(huì)做詩(shī)的機(jī)器人?|?給圖片上色?|?預(yù)測(cè)收入?|?碟中諜這么火,我用機(jī)器學(xué)習(xí)做個(gè)迷你推薦系統(tǒng)電影
小工具:?Pdf轉(zhuǎn)Word,輕松搞定表格和水??!?|?一鍵把html網(wǎng)頁(yè)保存為pdf!|??再見(jiàn)PDF提取收費(fèi)!?|?用90行代碼打造最強(qiáng)PDF轉(zhuǎn)換器,word、PPT、excel、markdown、html一鍵轉(zhuǎn)換?|?制作一款釘釘?shù)蛢r(jià)機(jī)票提示器!?|60行代碼做了一個(gè)語(yǔ)音壁紙切換器天天看小姐姐!|
年度爆款文案
點(diǎn)閱讀原文,看B站我的視頻!

