基本語法

語言說明##

優(yōu)勢:語法簡潔
劣勢:運行效率低、代碼不能加密
適用:網(wǎng)站W(wǎng)EB應用、日常小工具批量工具衙耕、模塊連接工具

編寫方式##

命令行:使用python可進入交互式編輯模式(>>>)
py文件:同樣使用python編譯

輸入輸出##

print和raw_input(),raw_input是函數(shù)

    a = raw_input()
    print a

可以在調(diào)用raw_input函數(shù)的時候添加字符串參數(shù),
這個參數(shù)會作為輸入時的提示顯示在輸出設備上

數(shù)據(jù)類型##

整數(shù)

    a = 5

浮點

    b = 2.5

字符串

    c = "abcd"    #  雙引
    d = 'dcba'    #  單引
    e = """
        ab
        cd
    """           #  折行
    f = "\\\n\\"  #  轉(zhuǎn)義
    g = r"\\\n\\" #  不對轉(zhuǎn)義做處理
    h = u"你好世界"#  用于處理中文的unicode

布爾

    m = True
    n = True and False  #  邏輯組合:and缤沦、or、not

    o = None

注意文件中包含中文易稠,編譯會不通過缸废,需要在文件頂部追加
# _*_ coding: utf-8 _*_
以表示該文件用UTF8編碼,也正因為如此缩多,中文字符串不再需要以unicode編碼保存呆奕,因為UTF8本身就是支持中文的

強制類型轉(zhuǎn)換
python使用一組全局函數(shù)來做類型的強制轉(zhuǎn)換

    int(x [,base ])         #將x轉(zhuǎn)換為一個整數(shù)
    long(x [,base ])        #將x轉(zhuǎn)換為一個長整數(shù)
    float(x )               #將x轉(zhuǎn)換到一個浮點數(shù)
    complex(real [,imag ])  #創(chuàng)建一個復數(shù)
    str(x )                 #將對象 x 轉(zhuǎn)換為字符串
    repr(x )                #將對象 x 轉(zhuǎn)換為表達式字符串
    eval(str )              #用來計算在字符串中的有效Python表達式,并返回一個對象
    tuple(s )               #將序列 s 轉(zhuǎn)換為一個元組
    list(s )                #將序列 s 轉(zhuǎn)換為一個列表
    chr(x )                 #將一個整數(shù)轉(zhuǎn)換為一個字符
    unichr(x )              #將一個整數(shù)轉(zhuǎn)換為Unicode字符
    ord(x )                 #將一個字符轉(zhuǎn)換為它的整數(shù)值
    hex(x )                 #將一個整數(shù)轉(zhuǎn)換為一個十六進制字符串
    oct(x )                 #將一個整數(shù)轉(zhuǎn)換為一個八進制字符串

文件開頭注釋##

用于在Linux/OS X系統(tǒng)中,表示這是一個Python可執(zhí)行文件

    #!/usr/bin/env python

字符串操作##

格式化字符串
類似于C語言的printf調(diào)用衬吆,只不過不是輸出梁钾,只是返回字符串

    a = "%f"%15.1  #  a 等于 "15.1"
    b = "%d - %d = %d"%(2, 3, 2 - 3)  #  b 等于 "2 - 3 = -1"

連接字符串
python使用逗號連接字符串,逗號會變成空格

    print "Hello","World"
    s = "opteacher"
    print "Hello",s

js用+逊抡,php用.

列表##

list就是數(shù)組姆泻,tuple是常數(shù)組

    ary = [1, 2, 3]
    print ary
    cary = (4, 5, 6)
    print cary
    #  因為python是類型不敏感的,所以列表中可以包含不同類型的值
    tt = [1, 1.5, True, "abcd"]
    print tt

常數(shù)組tuple指的是其中元素的指向不能被改變冒嫡,但元素本身可以變化

列表操作

    ary = []
    ary.append(1)  #  增
    ary.pop()      #  刪
    #  不指定下標拇勃,就從最后一個元素刪起
    ary[0] = 2     #  改
    print ary[0]   #  查
    #可以從最后一個元素開始查
    #   -1  =>  最后一個
    #   -2  =>  倒數(shù)第二個
    #   ...
    print ary[-1]

如果tuple只有一個元素,寫法會和括號運算符沖突
cary = (1) => cary = 1
為了防止這種情況發(fā)生孝凌,可以在元素后面加個逗號方咆,以明確表示這是一個
cary = (1,)

判斷##

沒什么可說的

循環(huán)##

for
for循環(huán)作用于可迭代對象

    ary = [1, 2, 3, 4]
    for itm in ary:
        print itm

使用range函數(shù)生成順序列表,配合for

    for i in range(0, 11):#i: 0 -> 10
        print i

range函數(shù)的第三個參數(shù)可以指定其步進

    for i in range(1, 11, 2):  #  打印奇數(shù)
        print i

用for循環(huán)可以生成復雜列表蟀架,稱之為【列表生成式】

    ary = [i*i for i in range(1, 5)]
    print ary

甚至可以和判斷做配合

    ary = [i + 1 for i in range(1, 10, 2) if i != 5]
    print ary

判斷一個對象是否是可迭代對象(能被for遍歷)

    print isinstance(ary, Iterable)

while
沒什么可說的

KV表和枚舉集##

dict
python中的KV表成為dict瓣赂,跟json差不多

    m = { "a": 10, "b": 20, "c": 50 }
    m["d"] = 80  #  增
    m.pop("b")   #  刪
    m["a"] = 5   #  改
    #a被覆蓋
    print m["c"] #  查

為了防止訪問不存在的key,使用get函數(shù)查詢

    print m["e"]  #  Exception
    print m.get("e")

可以用in判斷存不存在這個key

    print "e" in m

遍歷

    #(KEY)
    for k in m:
        print k,"->",m[k]

    #(VALUE)
    for v in m.values():
        print v

    #(ITEM)
    for k, v in m.items():
        print k,"->",v

set
枚舉集片拍,多用于存儲不同的值

    s = ([0, 1, 2, 3])
    m.add(8)     #  增
    m.remove(2)  #  刪
                 #  改
    #改不了煌集,只能刪了加
    for itm in s:#  查
        print itm
    #  遍歷

可變和不可變對象##

一般的固有類型都是不可變對象,修改往往是改變指向捌省。而像list之類的苫纤,修改是直接作用在list對象上的

函數(shù)##

用def定義

    def add(a, b): return a + b

如果沒有函數(shù)體,可以填寫pass

    def empty(): pass

返回多個值

    def mulRet(): return 5, 10
    a, b = mulRet()
    #如果用一個變量接受多返回值的函數(shù)調(diào)用
    #會發(fā)現(xiàn)其實多返回值的函數(shù)返回的是一個tuple
    r = mulRet()
    print r

可以帶默認參數(shù)

    def sub(a, b = 0): return a - b
    print sub(5)

    def b(l = []):
        l.append("A")
    L = []
    b(L)
    print L
    b(L)
    print L
    #第二次打印的L為多少?

可變參數(shù)(用指針接受多參數(shù)【開玩笑-_-+】)

    def c(*args):
        for t in args:
            print t
    c(1, 2, "abcd")
    #可變參數(shù)接受的是一個tuple

    #關鍵字參數(shù)(其實就是給出KEY和VALUE卷拘,在函數(shù)內(nèi)部組成一個dict)
    def d(**args):
        for k in args:
            print k,"->",args[k]

    d(a=3, b=4)

注意:默認參數(shù)最好填寫不可變常值喊废,因為可變的會
被記錄到參數(shù)變量中,在下一次調(diào)用的時候發(fā)生錯誤

遞歸函數(shù)##

自己調(diào)用自己恭金,沒什么好說的

集合切片##

取子集

    #a[from:to[:step]]
    ary = [0, 1, 2, 3, 4, 5]
    print ary[1, 3]

    #不指定from操禀,則默認從0開始
    #不指定to,則默認取到最后一個元素

    #也可以用負數(shù)下標(但取只能正向群嵬取)
    print ary[-2:-1]

集合迭代##

遍歷的方式
list可以使用enumerate()函數(shù)獲取列表索引和值得映射表

    ary = [0, 1, 2, 3, 4]
    for idx, val in enumerate(ary):
        print idx,"->",val
    #這里enumerate函數(shù)返回的就是一個迭代器

跟list一樣颓屑,dict也有一組迭代器用于遍歷

    map = { "a": 0, "b": 1, "c": 2 }
    for val in map.itervalues():
        print val

    for k, v in map.iteritems():
        print k,"->",v

跟values()和items()不同,iterXXX()函數(shù)不會為for循環(huán)從新構造集合耿焊,而是在迭代器的基礎上做遍歷

生成器##

跟迭代器一樣揪惦,只不過元素需要通過調(diào)用next函數(shù)一個個被提取出來
簡單生成器跟定義列表生成式相似

    g = (x*x for x in range(1, 5))
    for i in g:
        print i

生成器函數(shù)

    def g(max):
        i = 0
        while i <= max:
            yield i
            i = i + 1#python居然沒有自加自減
    for i in g(6):
        print i
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市罗侯,隨后出現(xiàn)的幾起案子器腋,更是在濱河造成了極大的恐慌,老刑警劉巖钩杰,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纫塌,死亡現(xiàn)場離奇詭異,居然都是意外死亡讲弄,警方通過查閱死者的電腦和手機措左,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來避除,“玉大人怎披,你說我怎么就攤上這事∑堪冢” “怎么了凉逛?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長群井。 經(jīng)常有香客問我状飞,道長,這世上最難降的妖魔是什么书斜? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任诬辈,我火速辦了婚禮,結果婚禮上菩佑,老公的妹妹穿的比我還像新娘自晰。我一直安慰自己凝化,他們只是感情好稍坯,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般瞧哟。 火紅的嫁衣襯著肌膚如雪混巧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天勤揩,我揣著相機與錄音咧党,去河邊找鬼。 笑死陨亡,一個胖子當著我的面吹牛傍衡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播负蠕,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蛙埂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遮糖?” 一聲冷哼從身側響起绣的,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欲账,沒想到半個月后屡江,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡赛不,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年惩嘉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俄删。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡宏怔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畴椰,到底是詐尸還是另有隱情臊诊,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布斜脂,位于F島的核電站抓艳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏帚戳。R本人自食惡果不足惜玷或,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片任。 院中可真熱鬧偏友,春花似錦、人聲如沸对供。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹅髓,卻和暖如春舞竿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窿冯。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工骗奖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人醒串。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓执桌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芜赌。 傳聞我的和親對象是個殘疾皇子鼻吮,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一、python 變量和數(shù)據(jù)類型 1.整數(shù) Python可以處理任意大小的整數(shù)较鼓,當然包括負整數(shù)椎木,在Python程序...
    績重KF閱讀 1,662評論 0 1
  • 最近在慕課網(wǎng)學習廖雪峰老師的Python進階課程,做筆記總結一下重點博烂。 基本變量及其類型 變量 在Python中香椎,...
    victorsungo閱讀 1,667評論 0 5
  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,557評論 1 118
  • 今天一個朋友離我們而去了 當我知道這個消息的時候 我真的不知道如何去安慰 去說些什么 任何的表達都那么地無力 我們...
    黑土錢閱讀 188評論 1 1
  • 感覺自己已經(jīng)快被這個社會淘汰了,從14年畢業(yè)到現(xiàn)在禽篱。自己一事無成畜伐,一直處于迷茫狀態(tài)中,感覺自己什么也不會躺率,什...
    王梓的爸爸閱讀 154評論 0 1