6Python語言編程基礎(chǔ)

Python

技能目標(biāo)
    理解編程基本原理和思想
    掌握python語言的基礎(chǔ)語法
    能夠使用python進(jìn)行基本的開發(fā)工作
    熟練使用項目開發(fā)IDE:eclipse膳灶,PyDev
    能夠使用Python開發(fā)簡單入門的游戲和網(wǎng)頁
第一節(jié)
    概述
    環(huán)境配置
        python安裝
            python解釋器
            配置Windows環(huán)境變量
                配置pip和easy install,D:\Python27\Scripts
        Java環(huán)境變量配置
        eclipse下載安裝
            在help中查找PyDev進(jìn)行安裝
                在創(chuàng)建項目時需手動加入已安裝好的python解釋器:Interpreter
            注意:python2.7默認(rèn)編碼格式是ASCII,3.0默認(rèn)是utf-8
第二節(jié)
    數(shù)據(jù)表示番捂,即數(shù)據(jù)類型
        概述
            接入一個外接包
                requests:用于提供很多节芥,針對網(wǎng)頁上的抓取篇恒,以及相關(guān)的函數(shù)
            字符串
                單引號
                雙引號
                三引號
                Format字符串
                使用+號連接字符串
            變量
                命令規(guī)則:第一個字符必須是字母或下劃線核偿,其余字符可以是字母敲董,數(shù)字空免,下劃線空另,區(qū)分大小寫
            字面常量
                常量不會被改變
                比如5,6等等固定值
            注釋
                #號鍵
        numerics Type
            int(包含boolean
            float
            complex
            打印數(shù)據(jù)類型的方法type(變量名)
            運算符//是向下去整
        ,sequences
        ,mappings
        ,classes
        ,instances
        exceptions
第三節(jié)
    數(shù)據(jù)結(jié)構(gòu)
        print打印拓展
            打印中文字符串
                # coding=utf-8
            換行符:\n
        List
            創(chuàng)建list
                不要求list中必須有相同元素
            打印list
                在打印時蹋砚,需要將list類型轉(zhuǎn)化為str
                    str(list名)
            訪問list
                list名[]
        元祖tuple
            創(chuàng)建之后無法被更改扼菠,刪除和修改都不行
            將list中的方括號改為圓括號即可
            list中可以使用的函數(shù),tuple都可以使用
        list和tuple的對比
            tuple中可以包含list
                mixed_tuple = (1,2,['a','b'])
            Tuple是不可變的list
            相同點
                定義方式相同
                元素都是按次序排列
                索引都是從0開始
                負(fù)數(shù)索引與list一樣從tuple的尾部開始計數(shù)
            不同點
                tuple沒有append或extend方法
                tuple沒有remove或pop方法
            tuple可以一次賦多值
            內(nèi)置函數(shù)
                len([1,2,3])
                    打印list長度
                【‘Hello’】* 4
                    對一個list元素進(jìn)行重組
                list[-1]
                    代表從右邊開始數(shù)第2位
                list[1:]
                    代表從第二個元素開始的所有元素
                3 install【1坝咐,2循榆,3】
                    判斷一個元素是否在list中
                [1,2,3]+[4,5,6]
                    拼接
        dictionnary
            鍵值對
            常用方法
                創(chuàng)建
                    phone_book = {'Tom':123,'Jerry':456,'kim':789}
                修改
                    phone_book["Tom"] = 888
                新增
                    phone_book["Henry"] = 666
                刪除
                    del phone_book["kim"]
                清空內(nèi)容
                    phone_book.clear()
                刪除dictionnary
                    del phone_book
            特性
                一個鍵必須是唯一的
                    當(dāng)有重復(fù)時不會報錯,會依次取第一個出現(xiàn)的鍵
                鍵是不變的
                    不能使用list充當(dāng)鍵
                    字符串
                    數(shù)組
                    元組tuple
            內(nèi)置函數(shù)
                比較兩個字典元素
                    cmp(dict1,dict2)
                計算字典元素個數(shù)墨坚,即鍵的總數(shù)
                    len(dict)
                輸出字典可打印的字符串表示
                    str(dict)
                返回輸入的變量類型秧饮,如果變量是字典就返回字典類型
                    type(variable)
            內(nèi)置方法
                刪除字典內(nèi)所有元素
                    radiansdict.clear()
                返回一個字典的淺復(fù)制
                    radiansdict.copy()
                創(chuàng)建一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應(yīng)的初始值
                    radiansdict.fromkeys()
                返回指定鍵的值盗尸,如果值不在字典中返回default值
                    radiansdict.get(key,default=None)
                如果鍵在字典dict里返回true柑船,否則返回false
                    radiansdict.has_key(key)
                以列表返回可遍歷的鍵值元組數(shù)組
                    radiansdict.items()
                以列表返回一個字典所有鍵
                    radiansdict.keys()
                和get()類似,但如果鍵沒有存在于字典泼各,并將添加鍵并將值設(shè)為default
                    radiansdict.setdefault(key,default=None)
                把字典dict2的鍵/值對更新到dict里
                    radiansdict.update(dict2)
                以列表返回字典中的所有值
                    radiansdict.values()
    函數(shù)Function
        def定義函數(shù)
            def say_hi():
        帶參數(shù)的函數(shù)
            設(shè)置參數(shù)的默認(rèn)值
                def repeat_str(str,times = 1):
            參數(shù)的取值:形參和實參是一一對應(yīng)的關(guān)系
            *nums代表元組
            **words代表數(shù)組
                word = "python",another_word = "java"
        return:返回函數(shù)值
        全局變量
            global
            可以在函數(shù)內(nèi)進(jìn)行定義椎组,定義后變量的值為之后改變的值
        局部變量
第四節(jié)
    Control Flow控制流
        if for語句
        for語句
            for i in range(1,10):
                rang指定一個整數(shù)范圍,包括第一個值不包括最后一個值
            遍歷list历恐,tuple寸癌,dictionnary
        用戶輸入函數(shù)
            input
        while語句
            當(dāng)某個條件成立的時候會一直運行循環(huán)體,直到條件不成立
            while guess_flag == False:
        break
            跳出當(dāng)前循環(huán)弱贼,執(zhí)行循環(huán)之后的代碼
        continue
            忽略continue之后的代碼蒸苇,繼續(xù)從循環(huán)頭開始
        pass
            繼續(xù)執(zhí)行帕森斯之后的代碼,可以理解為什么也不做
第五節(jié)
    輸入輸出
        接受用戶的輸入:input()
            str_1 = input("Enter a string: ")
            str_2 = input("Enter another string: ")
            python2.7要求輸入字符串格式的數(shù)據(jù)
        輸入格式:str(),format
            print("str_1 is : " + str(str_1) + "str_2 is :" + str(str_2))
            print("str_1 is {1} + str_2 is {0}".format(str_1,str_2))
        寫出文件
            # 創(chuàng)建一個open實體對象吮旅,sentences.txt可以為絕對路徑溪烤,‘w’表示寫文件模式
            f = open('C:\Users\Administrator\Desktop\sentences.txt','w')
            f.write(some_sentences)
            f.close()
        讀入文件
            讀文件read是默認(rèn)的
            f =open('C:\Users\Administrator\Desktop\sentences.txt')
            while True:
                line = f.readline()
                if len(line) == 0:
                    break
                print(line)
            f.close()
第六節(jié)
    異常處理
        語法
            try:
            <語句>        #運行別的代碼
            except <名字>:
            <語句>        #如果在try部份引發(fā)了'name'異常
            except <名字>,<數(shù)據(jù)>:
            <語句>        #如果引發(fā)了'name'異常庇勃,獲得附加的數(shù)據(jù)
            else:
            <語句>        #如果沒有異常發(fā)生
        語法錯誤(Syntax Errors)
            while True:
                try:
                    x = int(input("Please enter a number"))
                    break
                except ValueError:
                    print("Not valid input,try again.......")
        異常(Exceptions)
            try:
                f = open('myfile.txt')
                s = f.readline()
                i = int(s.strip())
            except OSError as err:
                print("OS error: {0}".format(err))
            except ValueError:
                print("Could not convert data to an integer.")
第七節(jié)
    面向?qū)ο筇幚?Object-Oriented)
        類(class)
            現(xiàn)實世界中的一些事物的封裝檬嘀,如:學(xué)生
            屬性,如名字责嚷、成績
        引用
            通過引用對類的屬性和方法進(jìn)行操作
        實例化
            創(chuàng)建一個類的具體事例對象鸳兽,如學(xué)生張三
        代碼
            class Student:
                def __init__(self,name,grade):
                    self.name = name
                    self.grade = grade
                    
                def introduce(self):
                    print("hi! I'm "+ self.name)
                    print("My grade is : "+ str(self.grade))
                def improve(self,amount):
                    self.grade = self.grade + amount
                    print("My grade add : "+ str(self.grade))
            Henry = Student("Henry",99)
            Henry.introduce()
            Henry.improve(1)
        設(shè)計代碼思路
            初始化參數(shù)
            自我介紹
            增加分?jǐn)?shù)
            創(chuàng)建對象
            對象調(diào)用方法
    裝飾器(decorator)
        代碼設(shè)計思路
            定義一個做蛋糕函數(shù)
            定義一個加蠟燭函數(shù)
            通過裝飾器功能加蠟燭
            輸出加蠟燭后的結(jié)果
        裝飾器本質(zhì)上是一個Python函數(shù),它可以讓其他函數(shù)在不需要做任何代碼變動的前提下增加額外功能罕拂,裝飾器的返回值也是一個函數(shù)對象揍异。它經(jīng)常用于有切面需求的場景,比如:插入日志爆班、性能測試衷掷、事務(wù)處理、緩存柿菩、權(quán)限校驗等場景戚嗅。裝飾器是解決這類問題的絕佳設(shè)計,有了裝飾器枢舶,我們就可以抽離出大量與函數(shù)功能本身無關(guān)的雷同代碼并繼續(xù)重用
        @符號是裝飾器的語法糖懦胞,在定義函數(shù)的時候使用,避免再一次賦值操作
        代碼
            def add_candles(cake_func):
                def insert_candles():
                    return cake_func() + "and candles"
                return insert_candles
            # 注意:return cake_func()加括號表示函數(shù)執(zhí)行完成的結(jié)果祟辟;return insert_candles表示函數(shù)對象
            
            @add_candles
            def make_cake():
                return "cakes 22"
                print(6)
            # @add_candles這句話相當(dāng)于make_cake = add_candles(make_cake)
            print(make_cake())
第八節(jié)
    開發(fā)一個小游戲
        GUI:Graphical User Interface
            創(chuàng)建一個GUI程序
                    1医瘫、導(dǎo)入 Tkinter 模塊
                    2、創(chuàng)建控件
                    3旧困、指定這個控件的 master醇份, 即這個控件屬于哪一個
                    4稼锅、告訴 GM(geometry manager) 有一個控件產(chǎn)生了。
        tkinter:GUI library for Python
            Tkinter 模塊(Tk 接口)是 Python 的標(biāo)準(zhǔn) Tk GUI 工具包的接口 .
        代碼
            from Tkinter import *  #導(dǎo)入庫
            import Tkinter         #導(dǎo)入包
            import tkMessageBox    #導(dǎo)入包
            top = Tkinter.Tk()
            w = Label(top,text = "abc")
            w.pack() # 將小部件放置到主窗口中
            # tkMessageBox.showinfo("title", "message")
            tkMessageBox.askyesnocancel("問答", "Enter a number")
            top.mainloop()# 進(jìn)入消息循環(huán)
第九節(jié)
    制作一個簡單網(wǎng)頁
        1. 安裝python2.7
            easy_install windows installer(python 2.7 32bit)
        2. 安裝lpthw.web
            easy_install lpthw.web
        3. 創(chuàng)建目錄
        4. 目錄下創(chuàng)建app.py
        代碼
            import web
            
            urls = ('/','index')
            
            app = web.application(urls,globals())
            
            class index:
                def GET(self):
                    greeting = "Hello!"
                    return greeting
                
            if __name__ == "__main__":
                app.run()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末僚纷,一起剝皮案震驚了整個濱河市矩距,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌怖竭,老刑警劉巖锥债,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異痊臭,居然都是意外死亡哮肚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門广匙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來允趟,“玉大人,你說我怎么就攤上這事鸦致〕奔簦” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵分唾,是天一觀的道長抗碰。 經(jīng)常有香客問我,道長绽乔,這世上最難降的妖魔是什么弧蝇? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮迄汛,結(jié)果婚禮上捍壤,老公的妹妹穿的比我還像新娘。我一直安慰自己鞍爱,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布专酗。 她就那樣靜靜地躺著睹逃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祷肯。 梳的紋絲不亂的頭發(fā)上沉填,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音佑笋,去河邊找鬼翼闹。 笑死,一個胖子當(dāng)著我的面吹牛蒋纬,可吹牛的內(nèi)容都是我干的猎荠。 我是一名探鬼主播坚弱,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼关摇!你這毒婦竟也來了荒叶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤输虱,失蹤者是張志新(化名)和其女友劉穎些楣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪睹,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡愁茁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了亭病。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹅很。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖命贴,靈堂內(nèi)的尸體忽然破棺而出道宅,到底是詐尸還是另有隱情,我是刑警寧澤胸蛛,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布污茵,位于F島的核電站,受9級特大地震影響葬项,放射性物質(zhì)發(fā)生泄漏泞当。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一民珍、第九天 我趴在偏房一處隱蔽的房頂上張望襟士。 院中可真熱鬧,春花似錦嚷量、人聲如沸陋桂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗜历。三九已至,卻和暖如春抖所,著一層夾襖步出監(jiān)牢的瞬間梨州,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工田轧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暴匠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓傻粘,卻偏偏與公主長得像每窖,于是被迫代替她去往敵國和親帮掉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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