<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        Python編碼時(shí)應(yīng)該注意的幾個(gè)情況

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:39:04
        文檔

        Python編碼時(shí)應(yīng)該注意的幾個(gè)情況

        Python編碼時(shí)應(yīng)該注意的幾個(gè)情況:在編程過(guò)程中,多了解語(yǔ)言周邊的一些知識(shí),以及一些技巧,可以讓你加速成為一個(gè)優(yōu)秀的程序員。對(duì)于Python程序員,你需要注意一下本文所提到的這些事情。你也可以看看Zen of Python(Python之禪),這里面提到了一些注意事項(xiàng),并配以示例,可以幫助你快速提高
        推薦度:
        導(dǎo)讀Python編碼時(shí)應(yīng)該注意的幾個(gè)情況:在編程過(guò)程中,多了解語(yǔ)言周邊的一些知識(shí),以及一些技巧,可以讓你加速成為一個(gè)優(yōu)秀的程序員。對(duì)于Python程序員,你需要注意一下本文所提到的這些事情。你也可以看看Zen of Python(Python之禪),這里面提到了一些注意事項(xiàng),并配以示例,可以幫助你快速提高

        在編程過(guò)程中,多了解語(yǔ)言周邊的一些知識(shí),以及一些技巧,可以讓你加速成為一個(gè)優(yōu)秀的程序員。
        對(duì)于Python程序員,你需要注意一下本文所提到的這些事情。你也可以看看Zen of Python(Python之禪),這里面提到了一些注意事項(xiàng),并配以示例,可以幫助你快速提高。

        1. 漂亮勝于丑陋

        實(shí)現(xiàn)一個(gè)功能:讀取一列數(shù)據(jù),只返回偶數(shù)并除以2。下面的代碼,哪個(gè)更好一些呢?

        代碼如下:


        #----------------------------------------
        halve_evens_only = lambda nums: map(lambda i: i/2, filter(lambda i: not i%2, nums))
        #----------------------------------------
        def halve_evens_only(nums):
        return [i/2 for i in nums if not i % 2]

        2. 記住Python中非常簡(jiǎn)單的事情

        代碼如下:


        # 交換兩個(gè)變量
        a, b = b, a
        # 切片(slice)操作符中的step參數(shù)。(切片操作符在python中的原型是[start:stop:step],即:[開(kāi)始索引:結(jié)束索引:步長(zhǎng)值])
        a = [1,2,3,4,5]
        >>> a[::2] # 遍歷列表中增量為2的數(shù)據(jù)
        [1,3,5]
        # 特殊情況下,`x[::-1]`是實(shí)現(xiàn)x逆序的實(shí)用的方式
        >>> a[::-1]
        [5,4,3,2,1]
        # 逆序并切片
        >>> x[::-1]
        [5, 4, 3, 2, 1]
        >>> x[::-2]
        [5, 3, 1]

        3. 不要使用可變對(duì)象作為默認(rèn)值

        代碼如下:


        def function(x, l=[]): #不要這樣

        def function(x, l=None): # 好的方式
        if l is None:
        l = []

        這是因?yàn)楫?dāng)def聲明被執(zhí)行時(shí),默認(rèn)參數(shù)總是被評(píng)估。

        4. 使用iteritems而不是items

        代碼如下:


        iteritems 使用generators ,因此當(dāng)通過(guò)非常大的列表進(jìn)行迭代時(shí),iteritems 更好一些。
        d = {1: "1", 2: "2", 3: "3"}
        for key, val in d.items() # 當(dāng)調(diào)用時(shí)構(gòu)建完整的列表
        for key, val in d.iteritems() # 當(dāng)請(qǐng)求時(shí)只調(diào)用值

        5. 使用isinstance ,而不是type

        代碼如下:


        # 不要這樣做
        if type(s) == type(""): ...
        if type(seq) == list or \
        type(seq) == tuple: ...

        # 應(yīng)該這樣
        if isinstance(s, basestring): ...
        if isinstance(seq, (list, tuple)): ...

        原因可參閱:stackoverflow

        注意我使用的是basestring 而不是str,因?yàn)槿绻粋€(gè)unicode對(duì)象是字符串的話,可能會(huì)試圖進(jìn)行檢查。例如:

        代碼如下:


        >>> a=u'aaaa'
        >>> print isinstance(a, basestring)
        True
        >>> print isinstance(a, str)
        False

        這是因?yàn)樵赑ython 3.0以下版本中,有兩個(gè)字符串類(lèi)型str 和unicode。

        6. 了解各種容器

        Python有各種容器數(shù)據(jù)類(lèi)型,在特定的情況下,相比內(nèi)置容器(如list 和dict ),這是更好的選擇。

        我敢肯定,大部分人不使用它。我身邊一些粗心大意的人,一些可能會(huì)用下面的方式來(lái)寫(xiě)代碼。

        代碼如下:


        freqs = {}
        for c in "abracadabra":
        try:
        freqs[c] += 1
        except:
        freqs[c] = 1

        也有人會(huì)說(shuō)下面是一個(gè)更好的解決方案:

        代碼如下:

        freqs = {}
        for c in "abracadabra":
        freqs[c] = freqs.get(c, 0) + 1

        更確切來(lái)說(shuō),應(yīng)該使用collection 類(lèi)型defaultdict。

        代碼如下:

        from collections import defaultdict
        freqs = defaultdict(int)
        for c in "abracadabra":
        freqs[c] += 1

        其他容器:
        namedtuple() # 工廠函數(shù),用于創(chuàng)建帶命名字段的元組子類(lèi)
        deque # 類(lèi)似列表的容器,允許任意端快速附加和取出
        Counter # dict子類(lèi),用于哈希對(duì)象計(jì)數(shù)
        OrderedDict # dict子類(lèi),用于存儲(chǔ)添加的命令記錄
        defaultdict # dict子類(lèi),用于調(diào)用工廠函數(shù),以補(bǔ)充缺失的值

        7. Python中創(chuàng)建類(lèi)的魔術(shù)方法(magic methods)

        __eq__(self, other) # 定義 == 運(yùn)算符的行為
        __ne__(self, other) # 定義 != 運(yùn)算符的行為
        __lt__(self, other) # 定義 < 運(yùn)算符的行為
        __gt__(self, other) # 定義 > 運(yùn)算符的行為
        __le__(self, other) # 定義 <= 運(yùn)算符的行為
        __ge__(self, other) # 定義 >= 運(yùn)算符的行為

        8. 必要時(shí)使用Ellipsis(省略號(hào)“...”)

        Ellipsis 是用來(lái)對(duì)高維數(shù)據(jù)結(jié)構(gòu)進(jìn)行切片的。作為切片(:)插入,來(lái)擴(kuò)展多維切片到所有的維度。例如:

        代碼如下:


        >>> from numpy import arange
        >>> a = arange(16).reshape(2,2,2,2)

        # 現(xiàn)在,有了一個(gè)4維矩陣2x2x2x2,如果選擇4維矩陣中所有的首元素,你可以使用ellipsis符號(hào)。

        >>> a[..., 0].flatten()
        array([ 0, 2, 4, 6, 8, 10, 12, 14])

        # 這相當(dāng)于
        >>> a[:,:,:,0].flatten()
        array([ 0, 2, 4, 6, 8, 10, 12, 14])

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

        文檔

        Python編碼時(shí)應(yīng)該注意的幾個(gè)情況

        Python編碼時(shí)應(yīng)該注意的幾個(gè)情況:在編程過(guò)程中,多了解語(yǔ)言周邊的一些知識(shí),以及一些技巧,可以讓你加速成為一個(gè)優(yōu)秀的程序員。對(duì)于Python程序員,你需要注意一下本文所提到的這些事情。你也可以看看Zen of Python(Python之禪),這里面提到了一些注意事項(xiàng),并配以示例,可以幫助你快速提高
        推薦度:
        標(biāo)簽: 代碼 碼時(shí) 要注意的
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 亚洲精品无码久久久久久久 | 日韩亚洲变态另类中文| 国产亚洲老熟女视频| 亚洲一区精品中文字幕| 色偷偷亚洲男人天堂| 伊人久久免费视频| 无码国模国产在线观看免费| 亚洲精品少妇30p| 香蕉视频亚洲一级| 四虎在线播放免费永久视频| 亚洲美女精品视频| 中国黄色免费网站| 午夜无遮挡羞羞漫画免费| 亚洲国产精品无码久久久不卡| 亚洲av色香蕉一区二区三区| 免费女人高潮流视频在线观看| 亚洲精品国产精品乱码不卞| 亚洲伊人久久大香线蕉结合| 国产一二三四区乱码免费| 国产亚洲色婷婷久久99精品| 免费不卡在线观看AV| 亚洲人xxx日本人18| 日本一道本高清免费| 国产99视频精品免费视频76| 无人在线观看免费高清视频| 国产亚洲精品美女久久久| 99视频精品全部免费观看| 亚洲综合av一区二区三区不卡 | 午夜免费福利在线| 亚洲综合久久成人69| 妞干网免费观看视频| free哆拍拍免费永久视频| 亚洲制服中文字幕第一区| 全免费A级毛片免费看网站| 成人免费ā片在线观看| 亚洲中文字幕久久精品无码2021| 国产99视频精品免费专区| 亚洲精品美女久久久久99| 波多野结衣在线免费视频| 亚洲成年人电影网站| 亚洲日本在线免费观看|