日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Python中容易被忽視的核心功能

來(lái)源: 責(zé)編: 時(shí)間:2024-02-29 14:38:27 165觀看
導(dǎo)讀Python是一門(mén)富有魅力的編程語(yǔ)言,擁有豐富的功能和庫(kù),以及強(qiáng)大的社區(qū)支持。然而,有一些核心功能經(jīng)常被忽視,而它們實(shí)際上可以極大地提高代碼的質(zhì)量、可讀性和性能。1. 解析命令行參數(shù)的argparse庫(kù)很多Python開(kāi)發(fā)者在編寫(xiě)

KD228資訊網(wǎng)——每日最新資訊28at.com

Python是一門(mén)富有魅力的編程語(yǔ)言,擁有豐富的功能和庫(kù),以及強(qiáng)大的社區(qū)支持。然而,有一些核心功能經(jīng)常被忽視,而它們實(shí)際上可以極大地提高代碼的質(zhì)量、可讀性和性能。KD228資訊網(wǎng)——每日最新資訊28at.com

1. 解析命令行參數(shù)的argparse庫(kù)

很多Python開(kāi)發(fā)者在編寫(xiě)命令行工具時(shí)仍然使用sys.argv或自己編寫(xiě)的參數(shù)解析代碼,但Python標(biāo)準(zhǔn)庫(kù)中有一個(gè)強(qiáng)大的工具可以更輕松地處理命令行參數(shù),那就是argparse庫(kù)。它允許定義命令行選項(xiàng)、參數(shù)和子命令,自動(dòng)生成幫助信息,還支持類(lèi)型檢查和默認(rèn)值設(shè)置。KD228資訊網(wǎng)——每日最新資訊28at.com

下面是一個(gè)簡(jiǎn)單的示例:KD228資訊網(wǎng)——每日最新資訊28at.com

import argparseparser = argparse.ArgumentParser(description="一個(gè)簡(jiǎn)單的命令行工具")parser.add_argument("--input", help="輸入文件路徑")parser.add_argument("--output", help="輸出文件路徑")args = parser.parse_args()if args.input and args.output:    print(f"從 {args.input} 復(fù)制到 {args.output}")

2. 上下文管理器與with語(yǔ)句

上下文管理器是一個(gè)被忽視但非常有用的功能,可以確保資源在使用后被正確釋放。Python中的with語(yǔ)句可以創(chuàng)建一個(gè)上下文管理器,比如處理文件、數(shù)據(jù)庫(kù)連接或網(wǎng)絡(luò)套接字時(shí)非常有用。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

with open("example.txt", "r") as file:    data = file.read()# 在離開(kāi)with塊后,文件會(huì)被自動(dòng)關(guān)閉

3. 列表推導(dǎo)式和生成器表達(dá)式

列表推導(dǎo)式和生成器表達(dá)式允許以一種簡(jiǎn)潔的方式創(chuàng)建列表或生成器。它們可以取代傳統(tǒng)的循環(huán),使代碼更加緊湊和可讀。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

# 列表推導(dǎo)式squares = [x**2 for x in range(10)]# 生成器表達(dá)式even_squares = (x**2 for x in range(10) if x % 2 == 0)

4. 字典的setdefault()方法

setdefault()方法是字典的一個(gè)被忽視的功能,它允許在字典中設(shè)置默認(rèn)值,如果鍵不存在,則創(chuàng)建該鍵并設(shè)置默認(rèn)值。這在處理字典時(shí)非常有用,避免了繁瑣的if-else語(yǔ)句。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

data = {}data.setdefault("count", 0)data["count"] += 1

5. 函數(shù)的默認(rèn)參數(shù)值

很多人知道Python函數(shù)可以有默認(rèn)參數(shù)值,但不是每個(gè)人都了解如何正確使用它們。默認(rèn)參數(shù)值可以簡(jiǎn)化函數(shù)調(diào)用,同時(shí)允許在需要時(shí)提供自定義值。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

def greet(name="World"):    print(f"Hello, {name}!")greet()  # 輸出 "Hello, World!"greet("Alice")  # 輸出 "Hello, Alice!"

6. 使用collections庫(kù)的namedtuple

namedtuple是Python的一個(gè)被忽視但非常有用的數(shù)據(jù)結(jié)構(gòu)。它可以為元組的字段分配名稱(chēng),使代碼更具可讀性。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

from collections import namedtuplePerson = namedtuple("Person", ["name", "age", "country"])alice = Person("Alice", 30, "USA")print(alice.name)  # 輸出 "Alice"

7. 集合操作符

Python的集合操作符(|&-等)允許你執(zhí)行集合的并集、交集和差集操作,而不需要顯式編寫(xiě)循環(huán)。這可以大大簡(jiǎn)化代碼,同時(shí)提高性能。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

a = {1, 2, 3}b = {3, 4, 5}union = a | b  # 并集 {1, 2, 3, 4, 5}intersection = a & b  # 交集 {3}difference = a - b  # 差集 {1, 2}

8. 使用functools庫(kù)的lru_cache

functools庫(kù)中的lru_cache是一個(gè)強(qiáng)大的功能,可以緩存函數(shù)的調(diào)用結(jié)果,以避免重復(fù)計(jì)算。這對(duì)于需要頻繁調(diào)用的函數(shù)非常有用,可以顯著提高性能。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

from functools import lru_cache@lru_cache(maxsize=None)  # 緩存所有調(diào)用結(jié)果def fib(n):    if n <= 1:        return n    return fib(n-1) + fib(n-2)

9. 使用enumerate()迭代列表

enumerate()是一個(gè)方便的功能,可以同時(shí)訪(fǎng)問(wèn)列表的索引和值。這在需要迭代列表時(shí)非常有用。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

fruits = ["apple", "banana", "cherry"]for index, fruit in enumerate(fruits):    print(f"Index {index}: {fruit}")

10. 使用collections庫(kù)的Counter

Countercollections庫(kù)中的一個(gè)功能,用于統(tǒng)計(jì)可迭代對(duì)象中元素的出現(xiàn)次數(shù)。這對(duì)于分析數(shù)據(jù)和計(jì)數(shù)頻率非常有用。KD228資訊網(wǎng)——每日最新資訊28at.com

示例:KD228資訊網(wǎng)——每日最新資訊28at.com

from collections import Counterdata = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]count = Counter(data)print(count[3])  # 輸出 3

以上是Python中一些容易被忽視的核心功能,它們可以大幅改善代碼質(zhì)量、可讀性和性能。通過(guò)深入了解和應(yīng)用這些功能,可以成為更高效的Python開(kāi)發(fā)者,并寫(xiě)出更出色的Python代碼。希望這些示例和解釋能幫助你更好地掌握這些功能,將它們應(yīng)用到日常編程工作中。KD228資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-75300-0.htmlPython中容易被忽視的核心功能

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Elasticsearch使用實(shí)戰(zhàn)以及代碼詳解

下一篇: 我們一起聊聊 .NET 全能 Cron 表達(dá)式解析庫(kù)

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • K60至尊版剛預(yù)熱 一加Ace2 Pro正面硬剛

    Redmi這邊剛?cè)缁鹑巛钡男麄髁薑60 Ultra的各種技術(shù)和硬件配置,作為競(jìng)品的一加也坐不住了。一加中國(guó)區(qū)總裁李杰發(fā)布了兩條微博,表示在自家的一加Ace2上早就已經(jīng)采用了和PixelWo
  • 中興AX5400Pro+上手體驗(yàn):再升級(jí) 雙2.5G網(wǎng)口+USB 3.0這次全都有

    2021年11月的時(shí)候,中興先后發(fā)布了兩款路由器產(chǎn)品,中興AX5400和中興AX5400 Pro,從產(chǎn)品命名上就不難看出這是隸屬于同一系列的,但在外觀設(shè)計(jì)上這兩款產(chǎn)品可以說(shuō)是完全沒(méi)一點(diǎn)關(guān)系
  • 多線(xiàn)程開(kāi)發(fā)帶來(lái)的問(wèn)題與解決方法

    使用多線(xiàn)程主要會(huì)帶來(lái)以下幾個(gè)問(wèn)題:(一)線(xiàn)程安全問(wèn)題  線(xiàn)程安全問(wèn)題指的是在某一線(xiàn)程從開(kāi)始訪(fǎng)問(wèn)到結(jié)束訪(fǎng)問(wèn)某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線(xiàn)程所修改,那么對(duì)于當(dāng)前線(xiàn)程而言,該線(xiàn)程
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對(duì)帶有指定屬性的 HTML 元素設(shè)置樣式。可以為擁有指定屬性的 HTML 元素設(shè)置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡(jiǎn)單而
  • 這款新興工具平臺(tái),讓你的電腦效率翻倍

    隨著信息技術(shù)的發(fā)展,我們獲取信息的渠道越來(lái)越多,但是處理信息的效率卻成為一個(gè)瓶頸。于是各種工具應(yīng)運(yùn)而生,都在爭(zhēng)相解決我們的工作效率問(wèn)題。今天我要給大家介紹一款效率
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來(lái)源:價(jià)值研究所 作者:Hernanderz&ldquo;難道就因?yàn)樽约旱囊粋€(gè)產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運(yùn)營(yíng)上的問(wèn)題,選擇逃避了嗎?&rdquo;這一番話(huà),出自百合網(wǎng)聯(lián)合創(chuàng)
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚(yú)拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁(yè)&ldquo;充值中心&rdquo;入口上線(xiàn)了本機(jī)生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強(qiáng)5G Soc

    去年底,iQOO推出了“電競(jìng)旗艦”iQOO 11系列,作為一款性能強(qiáng)機(jī),iQOO 11不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺(tái)及144Hz電競(jìng)屏,同時(shí)在快充
Top 主站蜘蛛池模板: 马公市| 余姚市| 北川| 敦化市| 金门县| 东山县| 吕梁市| 琼海市| 会宁县| 丰台区| 和林格尔县| 景谷| 沂水县| 荆门市| 安乡县| 裕民县| 辉南县| 巫山县| 巴马| 弥渡县| 阳春市| 崇信县| 微山县| 拉孜县| 偏关县| 岳普湖县| 株洲县| 海丰县| 大足县| 登封市| 黄石市| 万盛区| 古浪县| 丽水市| 阳信县| 卢湾区| 高雄县| 马公市| 凉城县| 区。| 洞口县|