<wbr id="juant"></wbr>
  • <wbr id="juant"></wbr>
    更多課程 選擇中心


    Python培訓

    400-111-8989

    會幫助到99% Python 學習者的簡明語法總結

    • 發布:賴筆小新
    • 來源:賴筆小新
    • 時間:2017-08-30 17:01

    最近經常有人在問如何學習python語法的,每當被問到這個問題時,我內心是坦蕩的,因為我不知道到底我接下來說的這些話會給看到的各位帶來什么?

    雖然大家已經對Python已經有了一個初步認識 了,但是我還不得不說關于Python語法的一些事,以便于我這個裝逼的過程順利的完成。

    簡單輸入輸出

    輸出

    print 10 , '十'

    輸入

    name = raw_input()

    Python基礎

    數據類型和變量

    常規類型:整形、浮點型、字符串(以' 或者 " 括起來)、布爾值(True, False 奇怪為什么用大寫)。

    轉義使用\

    多行請用'''...'''表示

    布爾運算符:and or not

    空值:None

    python并無實質常量,只有約定常量,全大寫表示(個人覺得使用objective-c的k開頭表示法也不錯。比如kServerAddress)

    字符串和編碼

    在日常編寫中似乎用不太到字符編碼互轉的功能

    字符串格式化: 'hello , %@' % 'world!'

    使用%s占位符, 使用 % 表示需要格式化字符串,后跟tuple變量

    使用list和tuple

    list其實就是數組,定義:['1', 'hello']

    使用len(list)計算數組元素個數

    使用(1, 2, 3)定義tuple,其實就是不可變的數組。

    條件判斷和循環

    if condition : block elif condition: block else : block代碼段落需要嚴格縮進,不需要大括號。

    for item in list: block

    range(number)可以生成從0 到 number-1的list

    while condition : block

    可以使用int('string')或者float('string')獲取對應值

    使用dict和set

    字典類型:dict = {'key' : value}

    使用dict[key]直接取值會報錯,方法是使用 dict.get(key),如果沒有值會返回None

    使用pop(key)刪除一個item

    set可以看成是在幫你管理一個不可重復元素的列表,并提供一些高級功能,比如聯合(\)、交(&)、差(-)和對稱差集(^)

    函數

    定義函數

    空函數:pass

    類型檢查,python是類型不安全的,所以我們可以通過isinstance(var, (type1, type2))來檢查類型

    返回多個值,使用tuple。不過可以省略括號,類似x, y = 3, 4

    默認值:def method(arg1 = 'arg1'),注意默認參數只能放到最后

    可變參數:def method(*var_arg):,其中var_arg是一個tuple,可以使用for in來遍歷

    關鍵字參數:def method(**key):,關鍵字參數不限制傳入的參數個數和類型,會在函數內部組合成一個dict

    參數組合:當定義為def func(a, b, c=0, *args, **kw):可以這樣調用:func(*args, **kw)其中,args為tuple, kw為字典

    遞歸函數,注意遞歸函數的溢出崩潰問題。python并沒有為尾遞歸做優化,所以還是會崩潰的。

    高級特性

    切片

    array[0:3]:表示從第0個元素開始,取3個

    array[-3:-1]:表示取倒數第三,第二個元素,-1表示最后一個。

    array[::5]:表示每5個取一個元素

    字符串也可以切片

    迭代

    迭代即使用:for item in array,array既可以是數組,也可以是字典或者字符串

    判斷是否可以迭代,isinstance(object, Iterable),判斷對象是否實現了Iterable接口

    迭代dict:for key in dict遍歷key。for value in dict.itervalues()遍歷value。for k, v in dict.iteritems()遍歷key和value

    列表生成器

    列表生成使用range(start, end)函數

    混合生成使用簡寫for in 迭代。[x * x for x in range(1, 10) if x % 2 == 0]

    也可以使用兩層循環,[x * y for x in range(1, 10) for y in range(20, 30)]

    生成器

    如果你需要一組序列,但是太大,占用內存過多。那么可以使用生成器,它是實時計算的列表。

    將列表生成表達式的[]變為()即可。

    可以將一個函數變成一個生成器,只需要添加yield item語句即可,生成器會在遇到yield的時候返回對應結果,下次next從上次yield之后開始執行。

    函數式編程

    高階函數

    函數可以賦值給變量,可以當成參數傳遞給函數

    map:對每個列表中得元素作用一個函數,并返回。

    reduce:將結果和下個元素傳給函數,最終返回一個結果。

    filter:過濾器,使用方法跟map差不多,是返回結果為true的元素

    sorted:排序,跟map差不多

    返回函數

    可以在函數中定義函數,并返回。就像一個變量一樣。

    閉包:返回的函數可以使用定義函數內部的變量

    匿名函數

    匿名函數即lamdba表達式:lamdba 參數 : 表達式

    裝飾器

    概念:即在函數執行前后加一些邏輯不想管的代碼,比如log

    實現

    deflog(func):@functools.wraps(func)defwrapper(*args, **kw):print'call %s():'% func.__name__returnfunc(*args, **kw)returnwrapper

    @logdefnow():print'2013-12-25'

    偏函數

    簡單的講就是創建具有特定模式的函數別名,這個特定模式大概指的是設定好某些參數(默認參數),來達到簡寫的目的。

    int2 = functools.partial(int, base=2)這樣就創建了一個專門轉化二進制的函數了。因為我們設定了默認參數base = 2

    當參數太多需要簡化的時候就是用偏函數

    模塊

    模塊

    一個py文件就是一個模塊,目錄就是包名

    使用模塊

    這是一個標準的模塊模板

    #!/usr/bin/env python# -*- coding: utf-8 -*-' a test module '__author__ ='Michael Liao'importsysdeftest():args = sys.argviflen(args)==1:print'Hello, world!'eliflen(args)==2:print'Hello, %s!'% args[1]else:print'Too many arguments!'if__name__=='__main__': test()

    模塊內部的私有變量和函數一律使用_開頭,且不要在外部進行引用。

    安裝第三方模塊

    pip install 模塊名稱

    使用__future__

    future可以把下個版本的新功能添加到當前版本

    面向對象編程

    類和實例

    定義類

    classClassName(SuperClass):pass

    構造方法def __init__(self,args)`

    訪問限制

    使用__雙下劃線開頭可以讓變量成為私有,外部無法訪問。也可以通過添加getter、setter來控制訪問操作。

    繼承和多態

    繼承就在定義的時候寫上父類的名稱,多態就覆蓋父類的方法。

    獲取對象信息

    使用type()判斷類型信息

    使用isinstance()判斷繼承關系

    使用dir()獲取對象的所有方法和屬性

    面向對象高級編程

    使用slots

    動態添加屬性:instance.pro = 10

    動態添加方法:instance.newmethod = MethodType(method_name, instance, class_name)

    為了防止胡亂添加屬性可以使用__slots__ = (被允許的屬性)

    使用@property

    如下,定義了一個score的屬性

    @propertydefscore(self):returnself._score @score.setterdefscore(self, value):ifnotisinstance(value, int): raise ValueError('score must be an integer!')ifvalue <0orvalue >100: raise ValueError('score must between 0 ~ 100!')self._score = value

    多重繼承

    最好不要用多重繼承,用mixin

    mixin其中概念,用類來提供一組相似功能。類似實現過的接口。

    定制類

    使用類似slots來定制一個類的行為。

    str打印類時的信息

    repr直接寫打印出來的信息

    iter用于for ... in迭代,__iter__返回下一個迭代對象,next()用于拿到循環的下一個值

    getitem提供下標訪問

    getattr當找不到這個屬性的時候會調用這個方法

    call當使用instance()這樣來把對象實例當成方法調用的時候,其實調用的就是__call__。

    可以使用callable(thing)來判斷一個東西是否可以被當成方法調用

    使用元類

    types():使用它來動態構建類,方法是types('ClassName', (SuperClass, ), dict(methodName = method))

    錯誤、調試和測試

    錯誤

    try...except...finally...

    錯誤基類是BaseException


    常見的錯誤類型

    記錄錯誤,使用python模塊logginglogging.exception(exception instance)可以將錯誤調用對戰輸出出來

    也可以自定義錯誤類型,方法是繼承自某個Exception,然后使用raise語句

    直接寫raise可以把當前exception拋出,讓上層調用處理。

    調試

    斷言:assert is true? , 'error message'

    logging可以方便的輸出日志,包括錯誤。

    logging.info('info')。method可以是debug,info,warning,error中的一個。

    可以指定當前輸出的method,方法是指定當前輸出級別logging.basicConfig(level=logging.INFO)

    pdb:python -m pdb err.py 開始調試l 查看代碼n單步執行p查看變量q結束測試c繼續執行

    程序內部設置斷點:import pdb,在可能出錯的地方放置pdb.set_trace()

    還是使用IDE吧pycharm,下載http://www.jetbrains.com/pycharm/

    以上便是對Python知識的總結,歡迎大家點贊,評論,一起討論~~

    想要入門運維行業,你還在猶豫要不要學習Python技術,這就out啦!達內Linux云計算課程不僅涉及Linux運維基本技術,也會涵蓋運維必須掌握的Python技術,將你打造成為一個高級運維工程師!現在給你一個免費了解運維、學習技術的機會,Linux云計算免費訓練營來嘍!

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:用Python語言爬蟲抓取微博評論圖文教程
    下一篇:教你用python做文本分類

    2021年Python面試題及答案匯總詳解

    python數據分析,你需要這些工具

    Python培訓講解二叉樹的三種深度

    Python培訓:如何實現窮舉搜索?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    天天日天天射天天干天天伊|奇米电影|奇米网_奇米首页|奇米首页 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>