亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python進階

廖雪峰 移動開發工程師
難度中級
時長 3小時33分
學習人數
綜合評分9.20
575人評價 查看評價
9.6 內容實用
9.0 簡潔易懂
9.0 邏輯清晰
  • sorted高階函數中傳入自定義排序函數, 實現忽略大小寫排序。請用functools.partial把這個復雜調用變成一個簡單的函數

    查看全部
    0 采集 收起 來源:python中偏函數

    2020-08-30

  • 帶參數的@decorator,@functools.wraps應該放置位置

    查看全部
  • import time


    def performance(unit):

    ? ? def performance_decorator(f):

    ? ? ? ? def fn(*args, **kw):

    ? ? ? ? ? ? t1 = time.time()

    ? ? ? ? ? ? r = f(*args, **kw)

    ? ? ? ? ? ? t2 = time.time()

    ? ? ? ? ? ? if unit == "ms":

    ? ? ? ? ? ? ? ? print('call %s() in %fs ms' % (f.__name__, (t2 - t1)*1000))

    ? ? ? ? ? ? else:

    ? ? ? ? ? ? ? ? print('call %s() in %fs s' % (f.__name__, (t2 - t1)))

    ? ? ? ? ? ? return r

    ? ? ? ? return fn

    ? ? return performance_decorator


    @performance('ms')

    def factorial(n):

    ? ? return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)


    查看全部
  • import time


    def performance(f):

    ? ? def fn(*args, **kw):?

    ? ? ? ? t1 = time.time()??

    ? ? ? ? r = f(*args, **kw)?

    ? ? ? ? t2 = time.time()??

    ? ? ? ? print 'call %s() in %fs' % (f.__name__, (t2 - t1))? ?

    ? ? ? ? return r? ? ? ? ? ??

    ? ? return fn? ? ? ? ? ? ??


    @performance

    def factorial(n):

    ? ? return reduce(lambda x,y: x*y, range(1, n+1))


    print factorial(10)



    查看全部
  • str.upper()把字符串 str 任意字符變成大寫 str.lower()把字符串str任意字符變成小寫 str.capitalize()返回一個首字符大寫其他字符小寫的str的副本 map(f,L)把L相應數據均通過f()函數轉換為一個新的list map(func_name,list_obj)高階函數:返回list_obj中每個元素分別經過func_name作用過的新的list,例子如下: def formate_name(s): return str.capitalize(s) print map(formate_name,['adam','LINDA','jany']) 輸出結果為:['Adam','Linda','Jany']

    map()函數不改變原有的 list,而是返回一個新的 list。

    s.capitalize()第一個大寫,其他全部小寫

    print(str.upper())??????????#?把所有字符中的小寫字母轉換成大寫字母
    print(str.lower())??????????#?把所有字符中的大寫字母轉換成小寫字母
    print(str.capitalize())?????#?把第一個字母轉化為大寫字母,其余小寫
    print(str.title())??????????#?把每個單詞的第一個字母轉化為大寫,其余小寫



    查看全部
  • def add(x, y, f) :

    ? ? ? ? return f(x) + f(y)

    這里的f指函數的的定義,abs是絕對值函數,開根號函數math是包含各種函數或方法的模塊,若前面是import math, 引用模塊中的函數就要用格式math.sqrt()。

    查看全部
  • (lambda 參數:條件/運算方式,列表、元組等)

    查看全部
  • 任務需要過濾一些不符合的字符,所以用filter,用于對列表每一元素做運算時,用map

    查看全部
  • 本身符合則返回-1
    不符合自己所要求的的順序? 反而返回的是1

    邏輯相反

    查看全部
  • 在定義 Person 類時,可以為Person類添加一個特殊的__init__()方法,當創建實例時,__init__()方法被自動調用,我們就能在此為每個實例都統一加上以下屬性:

    class?Person(object):????def?__init__(self,?name,?gender,?birth):
    ????????self.name?=?name
    ????????self.gender?=?gender
    ????????self.birth?=?birth

    __init__()?方法的第一個參數必須是?self(也可以用別的名字,但建議使用習慣用法),后續參數則可以自由指定,和定義函數沒有任何區別。

    items函數,將一個字典以列表的形式返回,因為字典是無序的,所以返回的列表也是無序的。iteritems()返回一個迭代器。

    setattr()?函數對應函數?getattr(),用于設置屬性值,該屬性不一定是存在的。語法:

    setattr(object,?name,?value)


    查看全部
  • sorted()?是高階函數,接受一個比較函數。

    cmp(x,y) 函數用于比較2個對象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

    查看全部
  • 在Python中,類通過?class?關鍵字定義。以?Person?為例,定義一個Person類如下:

    class?Person(object):
    ????pass

    按照?Python?的編程習慣,類名以大寫字母開頭,緊接著是(object),表示該類是從哪個類繼承下來的。類的繼承將在后面的章節講解,現在我們只需要簡單地從object類繼承。

    有了Person類的定義,就可以創建出具體的xiaoming、xiaohong等實例。創建實例使用?類名+(),類似函數調用的形式創建:

    xiaoming?=?Person()
    xiaohong?=?Person()


    查看全部
  • 如果導入的模塊不存在,Python解釋器會報?ImportError?錯誤:

    >>>?import?something
    Traceback?(most?recent?call?last):
    ??File?"<stdin>",?line?1,?in?<module>
    ImportError:?No?module?named?something

    有的時候,兩個不同的模塊提供了相同的功能,比如?StringIO?和?cStringIO?都提供了StringIO這個功能。

    這是因為Python是動態語言,解釋執行,因此Python代碼運行速度慢。

    如果要提高Python代碼的運行速度,最簡單的方法是把某些關鍵函數用?C?語言重寫,這樣就能大大提高執行速度。

    同樣的功能,StringIO?是純Python代碼編寫的,而?cStringIO?部分函數是?C?寫的,因此 cStringIO 運行速度更快。

    利用ImportError錯誤,我們經常在Python中動態導入模塊:

    try:
    ????from?cStringIO?import?StringIO
    except?ImportError:
    ????from?StringIO?import?StringIO

    上述代碼先嘗試從cStringIO導入,如果失敗了(比如cStringIO沒有被安裝),再嘗試從StringIO導入。這樣,如果cStringIO模塊存在,則我們將獲得更快的運行速度,如果cStringIO不存在,則頂多代碼運行速度會變慢,但不會影響代碼的正常執行。

    try?的作用是捕獲錯誤,并在捕獲到指定錯誤時執行?except?語句。


    查看全部
  • 分別賦值 f1,f2,f3=count()

    查看全部
    0 采集 收起 來源:python中閉包

    2020-08-16

首頁上一頁1234567下一頁尾頁

舉報

0/150
提交
取消
課程須知
本課程是Python入門的后續課程 1、掌握Python編程的基礎知識 2、掌握Python函數的編寫 3、對面向對象編程有所了解更佳
老師告訴你能學到什么?
1、什么是函數式編程 2、Python的函數式編程特點 3、Python的模塊 4、Python面向對象編程 5、Python強大的定制類

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!