欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Python學(xué)習(xí)心得&總結(jié)(優(yōu)秀范文五篇)

      時間:2019-05-12 04:10:09下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《Python學(xué)習(xí)心得&總結(jié)》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《Python學(xué)習(xí)心得&總結(jié)》。

      第一篇:Python學(xué)習(xí)心得&總結(jié)

      0、命令行常用命令

      命令行(Windows下叫“命令提示符”,Mac下叫“終端”)里的常用命令。打開命令行,我們會看到每行前面都有諸如

      C:Documents and SettingsCrossin> 或者

      MyMacBook:~ crossin$ 之類的。

      這個提示符表示了當(dāng)前命令行所在目錄。

      第一個常用的命令是:

      dir(windows環(huán)境下)ls(mac環(huán)境下)

      dir和ls的作用差不多,都是顯示出當(dāng)前目錄下的文件和文件夾。

      第二個常用命令是: cd 目錄名

      通過dir或ls了解當(dāng)前目錄的結(jié)構(gòu)之后,可以通過“cd 目錄名”的方式,進(jìn)入到當(dāng)前目錄下的子目錄里。

      如果要跳回到上級目錄,可以用命令: cd..另外,Windows下如果要寫換盤符,需要輸入 盤符: 比如從c盤切換到d盤 C:Documents and SettingsCrossin>d:

      有了以上兩個命令,就可以在文件目錄的迷宮里游蕩了。雖然沒可視化的目錄下的操作那么直觀,但是會顯得你更像個程序員。。

      于是乎,再說個高階玩法:現(xiàn)在你可以不用idle那套東西了,隨便找個順手的文本軟件,把你的代碼寫好,保存好,最好是保存成py文件。然后在命令行下進(jìn)入到py文件保存的目錄,使用命令:python 程序保存的文件名 就可以運(yùn)行你寫的程序了。

      一、關(guān)于分號“;”

      在C、Java等語言的語法中規(guī)定,必須以分號作為語句結(jié)束的標(biāo)識。Python也支持分號,同樣用于一條語句的結(jié)束標(biāo)識。但在Python中分號的作用已經(jīng)不像C、Java中那么重要了,Python中的分號可以省略,主要通過換行來識別語句的結(jié)束。例如,以下兩行代碼是等價的: 1.print “hello world!” 2.print “hello world!”;第1行代碼的輸出結(jié)果:hello world!第2行代碼的輸出結(jié)果:hello world!如果要在一行中書寫多條句,就必須使用分號分隔每個語句,否則Python無法識別語句之間的間隔:

      1.# 使用分號分隔語句 2.x=1;y=1;z=1 第2行代碼有3條賦值語句,語句之間需要用分號隔開。如果不隔開語句,Python解釋器將不能正確解釋,提示語法錯誤:SyntaxError: invalid syntax 注意分號不是Python推薦使用的符號,Python傾向于使用換行符作為每條語句的分隔,簡單直白是Python語法的特點(diǎn)。通常一行只寫一條語句,這樣便于閱讀和理解程序。一行寫多條語句的方式是不好的習(xí)慣。

      二、關(guān)于連行符 “ ”(雙反斜杠好像不可以,已測試)Python同樣支持多行寫一條語句,Python使用“”作為連行符。在實(shí)踐中,一條語句寫在多行也是非常常見的。

      【例】把SQL語句作為參數(shù)傳遞給函數(shù),由于SQL的語句一般非常長,為了閱讀方便,因此需要換行書寫。

      1.# 字符串的換行 2.# 寫法一

      3.sql = “select id,name 4.from dept 5.where name = 'A'” 6.print sql 7.# 寫法二

      8.sql = “select id,name ” 9.“from dept ” 10.“where name = 'A'” 11.print sql 寫法一只使用了一對雙引號,把SQL語句分為select、from、where等3部分分別書寫。第6行代碼輸出結(jié)果:select id,name from dept where name = 'A' 寫法二使用了3對雙引號,select、from、where分別對應(yīng)一對雙引號。第11行代碼輸出結(jié)果:select id,name from dept where name = 'A' 第二種寫法比第一種寫法的可讀性更強(qiáng),可以使用空格和制表符對齊語句,使代碼顯得更工整。對于簡短的語句不推薦換行的寫法,這種寫法只會造成閱讀的復(fù)雜性。下面這段程序是不合理的換行寫法: 1.# 一條語句寫在多行 2.print 3.“hello world!” 第2行~第3行代碼是一個整體,調(diào)用print輸出“hello world!”,這種情況不適合分行書寫。

      三、關(guān)于單引號和雙引號

      雙引號和單引號都是可以用的,只不過用單引號的時候可以在字符串里面使用雙引號。同理,使用雙引號時也可以在字符串里面使用單引號

      先說1個雙引號與3個雙引號的區(qū)別,雙引號所表示的字符串通常要寫成一行 如:

      s1 = “hello,world” 如果要寫成多行,那么就要使用(“連行符”),如 s2 = “hello, world” s2與s1是一樣的。如果你用3個雙引號的話,就可以直接寫了,如下: s3 = “"”hello, world, hahaha.“"”,那么s3實(shí)際上就是“hello,n world,n hahaha.”, 注意“n”,所以,如果你的字符串里n很多,你又不想在字符串中用n的話,那么就可以使用3個雙 引號。而且使用3個雙引號還可以在字符串中增加注釋,如下:

      s3 = “"”hello, #hoho, this is hello, 在3個雙引號的字符串內(nèi)可以有注釋哦 world, #hoho, this is world hahaha.“"” 這里我試過一下,確實(shí)可以加注釋,不過在print s3的時候連注釋內(nèi)容會一起給打印出來 這就是3個雙引號和1個雙引號表示字符串的區(qū)別了,3個雙引號與1個單引號的區(qū)別也 是和這個一樣的,實(shí)際上python支持單引號是有原因的,下面我來比較1個單引號和 1個雙引號的區(qū)別。

      當(dāng)我用單引號來表示一個字符串時,如果要表示 Let's go 這個字符串,必須這樣:

      s4 = 'Let's go',注意沒有,字符串中有一個',而字符串又是用'來表示,所以 這個時候就要使用轉(zhuǎn)義符 , 如果你的字符串中有一大堆的轉(zhuǎn)義符,看起來肯定不舒服,python也很好的解決了這個問題,如下: s5 = “Let's go” 對于雙引號,也是一樣的,下面舉個例子 s6 = 'I realy like “python”!' 這就是單引號和雙引號都可以表示字符串的原因了。

      例子:

      (1)print(“Stay hungry,n”

      #這里換行符n必須寫在雙引號里面

      “stay foolish.n”

      “--Steve Jobs”)(2)print('''Stay hungry,#這里用了三個單引號,沒用換行符 stay foolish.--Steve Jobs''')(3)print(“"”Stay hungry,#這里用了三個雙引號,沒用換行符 stay foolish.--Steve Jobs“"”)這三個輸出的結(jié)果都是三行: Stay hungry, stay foolish.--Steve Jobs

      (4)print(“Stay hungry, stay foolish.--Steve Jobs”)這個輸出的結(jié)果是一行:Stay hungry, stay foolish.--Steve Jobs

      四、關(guān)于注釋符 用井號作為注釋一行 #此處為注釋

      一般用“"”(三個英文引號)也可以注釋多行,不過一般用來表示函數(shù)文檔 “"” 此處是注釋

      此函數(shù)功能為。?!?”

      五、邏輯量True和 False 首字母必須大寫

      Python中的None: None是一個特殊的常量。None和False不同。None不是0。None不是空字符串。

      None和任何其他的數(shù)據(jù)類型比較永遠(yuǎn)返回False。None有自己的數(shù)據(jù)類型NoneType。

      你可以將None復(fù)制給任何變量,但是你不能創(chuàng)建其他NoneType對象。

      六、if語句,if…elif…else語句,while循環(huán),for循環(huán), break和continue if 條件:

      #注意冒號必須有

      選擇執(zhí)行的語句

      #注意這里有四個空格的縮進(jìn)

      if, elif, else可組成一個整體的條件語句: if是必須有的;elif可以沒有,也可以有很多個,每個elif條件不滿足時會進(jìn)入下一個elif判斷;else可以沒有,如果有的話只能有一個,必須在條件語句的最后。if a == 1: print 'one' elif a == 2: print 'two' else: print 'too many'

      while 條件: #注意冒號必須有

      選擇執(zhí)行的語句

      #注意這里有四個空格的縮進(jìn)

      for i in range(1, 101): #i從1取到100

      print i 注:range(x, y, c)表示一個list:[x, x+c, x+2c, … , y-c]。如果沒有第三個參數(shù)c, 默認(rèn)c=1.break while 循環(huán)在條件不滿足時 結(jié)束,for 循環(huán)遍歷完序列后 結(jié)束。如果在循環(huán)條件仍然滿足或序列沒有遍歷完的時候,想要強(qiáng)行跳出循環(huán),就需要用到break語句。continue break是徹底地跳出循環(huán),而continue只是略過本次循環(huán)的余下內(nèi)容,直接進(jìn)入下一次循環(huán)。

      七、變量命名規(guī)則

      python在定義一個變量時不需要給它限定類型。變量會根據(jù)賦給它的值,自動決定它的類型。你也可以在程序中,改變它的值,于是也就改變了它的類型。變量命名時第一個字符必須是字母或者下劃線“_”,剩下的部分可以是字母、下劃線“_”或數(shù)字(0-9)

      變量名稱是對大小寫敏感的,myname和myName不是同一個變量。

      八、字符串的輸出和運(yùn)算

      字符串之間可以通過加法連接起來: str1 = 'good' str2 = 'bye' print(str1 + str2)print('very ' + str1)print(str1 + ' and ' + str2)

      print('My age is ' + str(18))num = 18 print('My age is %d' %num)#注意,%num可以直接用%18代替,但是%num和字符串之

      間不能加逗號,只能是空格(沒有空格也可以)

      print('Today is %s.' % 'Friday')print(?Price is %.2f? % 4.99)注意:%d表示整數(shù),%s表示字符串,%f表示浮點(diǎn)數(shù),%.4f表示帶4位小數(shù)的浮點(diǎn)數(shù)

      print(“%s's score is %d” %('Mike', 87))

      無論你有多少個值需要代入字符串中進(jìn)行格式化,只需要在字符串中的合適位置用對應(yīng)格式的%表示,然后在后面的括號中按順序提供代入的值就可以了。占位的%和括號中的值在數(shù)量上必須相等,類型也要匹配。

      ('Mike', 87)這種用()表示的一組數(shù)據(jù)在python中被稱為元組(tuple),是python的一種基本數(shù)據(jù)結(jié)構(gòu),以后我們還會用到。

      九、變量強(qiáng)制類型轉(zhuǎn)換 int(x)#把x轉(zhuǎn)換成整數(shù) float(x)#把x轉(zhuǎn)換成浮點(diǎn)數(shù) str(x)#把x轉(zhuǎn)換成字符串 bool(x)#把x轉(zhuǎn)換成bool值

      例如,以下等式的結(jié)果均為真:int('123')== 123

      float('3.3')== 3.3 str(111)== '111' bool(0)== False

      bool('abc')== True

      bool('False')== True bool('')== False 并不是所有的值都能做類型轉(zhuǎn)換,比如int('abc')同樣會報錯,python沒辦法把它轉(zhuǎn)成一個數(shù)。關(guān)于bool類型的轉(zhuǎn)換,在python中,以下數(shù)值會被認(rèn)為是False:

      為0的數(shù)字,包括0,0.0 空字符串,包括'',"" 表示空值的None(None是python中的一個特殊值,表示什么都沒有,它和0、空字符、False、空集合都不一樣)

      空集合,包括(),[],{} 其他的值都認(rèn)為是True。

      十、函數(shù)

      如果我們要寫一個函數(shù),就需要去定義它。Python里定義函數(shù)的關(guān)鍵字是def,格式如下: def sayHello():

      print 'hello world!' 我們用sayHello()來調(diào)用這個函數(shù)。(注意括號必須帶著)

      return是函數(shù)的結(jié)束語句,return后面的值被作為這個函數(shù)的返回值。函數(shù)中任何地方的return

      被執(zhí)行到的時候,這個函數(shù)就會結(jié)束。

      十一、list列表

      格式:用中括號包圍、逗號隔開的一組元素;列表中的元素可以是不同的類型。例如,range(1,10)或者[1, 2, 3, 4, 5, 6, 7, 8, 9];I = [365, 'everyday', 0.618, True]。操作list:

      1.訪問list中的元素 python計數(shù)是從0開始,例如I[0]=365, I[1]= 'everyday' 2.修改list中的元素

      修改list中的某一個元素,只需要直接給那個元素賦值就可以了:l[0] = 123 注意如下例子:c=[1,2,3] b=c a=c b[0]=2 print a 得到 a=[2,2,3] 特別注意:如果用一個list賦值給另一個list,但是想要改變一個list的時候另一個不變,這時需用如下賦值方法: a=[1,2]

      b=[]

      b[0 : len(a)]=a[0 : len(a)] b.append(3)

      print a

      得到[1,2] print b

      得到[1,2,3] 3.向list中添加元素

      list有一個append方法,可以增加元素。以I這個列表為例,調(diào)用的方法是:

      I.append(1024)#注意這里是小括號

      輸出I,你會看到[123, 'everyday', 0.618, True, 1024],1024被添加到了I,成為最后一個元素。(第一個元素在上一步被改成了123。)然后同樣可以用I[4]得到1024。4.刪除list中的元素

      刪除list中的某一個元素,要用到del: del I[0],然后輸出I,得到['everyday', 0.618, True, 1024]。這時候再調(diào)用I[0],會得到'everyday',其他元素的序號也相應(yīng)提前。例子,#==== 點(diǎn)球小游戲 ====# from random import choice print 'Choose one side to shoot:' print 'left, center, right' you = raw_input()print 'You kicked ' + you direction = ['left', 'center', 'right'] com = choice(direction)print 'Computer saved ' + com if you!= com: print 'Goal!' else: print 'Oops...'

      5.求和:例如 sum([1,2,3])=6, sum(range(101))=5050

      list有兩類常用操作:索引(index)和切片(slice)。用[]加序號訪問的方法就是索引操作。除了指定位置進(jìn)行索引外,list還可以處理負(fù)數(shù)的索引,例如I[-1]表示l中的最后一個元素,l[-3]表示倒數(shù)第3個元素。切片操作符是在[]內(nèi)提供一對可選數(shù)字,用冒號分割。冒號前的數(shù)表示切片的開始位置,冒號后的數(shù)字表示切片到哪里結(jié)束。同樣,計數(shù)從0開始。注意,開始位置包含在切片中,而結(jié)束位置不包括。例如,I = [365, 'everyday', 0.618, True],I[1:3]得到的結(jié)果是['everyday', 0.618]。

      如果不指定第一個數(shù),切片就從列表第一個元素開始。如果不指定第二個數(shù),就一直到最后一個元素結(jié)束。都不指定,則返回整個列表的一個拷貝。I[:3]

      I[1:]

      I[:] 同索引一樣,切片中的數(shù)字也可以使用負(fù)數(shù)。比如:I[1:-1] 得到['everyday', 0.618]

      十二、字符串的索引和切片(類似list的操作)1.遍歷

      通過for...in可以遍歷字符串中的每一個字符。word = 'helloworld' for c in word: print c 2.索引訪問

      通過[]加索引的方式,訪問字符串中的某個字符。word[0]= 'h' word[-2]= 'l' 與list不同的是,字符串不能通過索引訪問去更改其中的字符。word[1] = 'a' 這樣的賦值是錯誤的。3.切片

      通過兩個參數(shù),截取一段子串,具體規(guī)則和list相同。print word[5:7] print word[:-5] print word[:] 4.連接字符

      join方法也可以對字符串使用,與list的join用法類似。

      ','.join(word)= 'h,e,l,l,o,w,o,r,l,d'

      十三、字符串的分割--? list 假設(shè)需要把一個句子中的每一個單詞拿出來單獨(dú)處理。sentence = 'I am an English sentence' 這時就需要對字符串進(jìn)行分割:

      sentence.split()

      字符串.split()會把字符串按照其中的空格進(jìn)行分割,分割后的每一段都是一個新的字符串,最終返回這些字符串組成一個list。于是得到['I', 'am', 'an', 'English', 'sentence'] 除了空格外,split()同時也會按照換行符n,制表符t進(jìn)行分割。所以應(yīng)該說,split默認(rèn)是按照空白字符進(jìn)行分割。

      之所以說默認(rèn),是因為split還可以指定分割的符號。比如你有一個很長的字符串

      section ='Hi.I am the one.Bye.' 通過指定分割符號為'.',可以把每句話分開:section.split('.')得到['Hi', ' I am the one', ' Bye', '']。這時候,'.'作為分割符被去掉了,而空格仍然保留在它的位置上。注意最后那個空字符串。每個'.'都會被作為分割符,即使它的后面沒有其他字符,也會有一個空串被分割出來。例如 'aaa'.split('a')將會得到['', '', '', ''],由四個空串組成的list。

      十四、連接list--?字符串

      join:和split正好相反,join把一個list中的所有字符串連接成一個字符串,而split是把一個字符串分割成很多字符串組成的list。

      join的格式有些奇怪,它不是list的方法,而是字符串的方法。首先需要有一個字符串作為list中所有元素的連接符,然后再調(diào)用這個連接符的join方法,join的參數(shù)是被連接的list: 例如:s = ';' li = ['apple', 'pear', 'orange'] fruit = s.join(li)print fruit 得到結(jié)果'apple;pear;orange'。

      又例如:''.join(['hello', 'world'])得到'helloworld',字符串被無縫連接在一起。十一**、元組(tuple)

      元組(tuple)也是一種序列,和我們用了很多次的list類似,只是元組中的元素在創(chuàng)建之后就不能被修改。例如position =(1, 2)

      geeks =('Sheldon', 'Leonard', 'Rajesh', 'Howard')都是元組的實(shí)例。它有和list同樣的索引、切片、遍歷等操作:

      1.2.3.4.print postion[0] for g in geeks: print g print geeks[1:3] 其實(shí)我們之前一直在用元組,就是在print語句中:

      print '%s is %d years old' %('Mike', 23)('Mike', 23)就是一個元組。這是元組最常見的用處。

      再來看一下元組作為函數(shù)返回值的例子:

      1.def get_pos(n): 2.return(n/2, n*2)得到這個函數(shù)的返回值有兩種形式,一種是根據(jù)返回值元組中元素的個數(shù)提供變量:

      1.x, y = get_pos(50)2.print x 3.print y 這就是我們在開頭那句代碼中使用的方式。還有一種方法是用一個變量記錄返回的元組:

      1.pos = get_pos(50)2.print pos[0] 3.print pos[1]

      十五、讀文件

      新建個文件,就叫它data.txt。在里面隨便寫上一些話,保存。把這個文件放在接下來你打算保存代碼的文件夾下,這么做是為了方便我們的程序找到它。

      打開一個文件的命令很簡單:file('文件名')這里的文件名可以用文件的完整路徑,也可以是相對路徑。因為我們把要讀取的文件和代碼放在了同一個文件夾下,所以只需要寫它的文件名就夠了。f = file('data.txt')#注意這里f不是字符串,是文件對象

      但這一步只是打開了一個文件,并沒有得到其中的內(nèi)容。變量f保存了這個文件,還需要去讀取它的內(nèi)容。你可以通過read()函數(shù)把文件內(nèi)所有內(nèi)容讀進(jìn)一個字符串中。data = f.read()#這里data是字符串

      做完對文件的操作之后,記得用close()關(guān)閉文件,釋放資源。

      完整程序示例:

      f = file('data.txt')data = f.read()print data f.close()

      讀取文件內(nèi)容的方法還有: readline()#讀取一行內(nèi)容

      readlines()#把內(nèi)容按行讀取至一個list中 去替換程序的第二行,看看它們的區(qū)別。

      十六、寫文件

      打開文件的幾種模式:

      python默認(rèn)是以只讀模式打開文件。如果想要寫入內(nèi)容,在打開文件的時候需要指定打開模式為寫入: f = file('output.txt', 'w')

      'w'就是writing,以這種模式打開文件,原來文件中的內(nèi)容會被你新寫入的內(nèi)容覆蓋掉,如果文件不存在,會自動創(chuàng)建文件。不加參數(shù)時,file為你默認(rèn)為'r',reading,只讀模式,文件必須存在,否則引發(fā)異常。

      另外還有一種模式是f = file('output.txt', 'a'),其中'a'是appending。它也是一種寫入模式,但你寫入的內(nèi)容不會覆蓋之前的內(nèi)容,而是添加到文件中。

      打開文件還有一種方法,就是open(),用法和file()是一致的。寫文件:

      寫入內(nèi)容的方法同樣簡單:

      f.write('a string you want to write')write的參數(shù)可以是一個字符串,或者一個字符串變量。

      示例程序:

      data = 'I will be in a file.nSo cool!' out = open('output.txt', 'w')out.write(data)out.close()在你的程序保存目錄下,打開output.txt就會看到結(jié)果。類似的,writelines(list)#把list的每一個元素寫成一行 沒有writeline(list)。

      十七、處理文件中的數(shù)據(jù) 比如我現(xiàn)在拿到一份文檔,里面有某個班級里所有學(xué)生的平時作業(yè)成績。因為每個人交作業(yè)的次數(shù)不一樣,所以成績的數(shù)目也不同,沒交作業(yè)的時候就沒有分。我現(xiàn)在需要統(tǒng)計每個學(xué)生的平時作業(yè)總得分。

      看一下我們的文檔里的數(shù)據(jù): #--scores.txt 劉備 23 35 44 47 51 關(guān)羽 60 77 68 張飛 97 99 89 91 諸葛亮 100

      1.先把文件讀進(jìn)來:

      f = file('scores.txt')2.取得文件中的數(shù)據(jù)。因為每一行都是一條學(xué)生成績的記錄,所以用readlines,把每一行分開,便于之后的數(shù)據(jù)處理: lines = f.readlines()f.close()提示:在程序中,經(jīng)常使用print來查看數(shù)據(jù)的中間狀態(tài),可以便于你理解程序的運(yùn)行。比如這里你可以print lines,看一下內(nèi)容被存成了什么格式。3.對每一條數(shù)據(jù)進(jìn)行處理。按照空格,把姓名、每次的成績分割開:

      for line in lines: data = line.split()#這里data是list

      接下來的4、5兩個步驟都是針對一條數(shù)據(jù)的處理,所以都是在for循環(huán)的內(nèi)部。4.整個程序最核心的部分到了。如何把一個學(xué)生的幾次成績合并,并保存起來呢?我的做法是:對于每一條數(shù)據(jù),都新建一個字符串,把學(xué)生的名字和算好的總成績保存進(jìn)去。最后再把這些字符串一起保存到文件中: sum = 0 for score in data[1:]: sum += int(score)result = '%st: %dn' %(data[0], sum)這里幾個要注意的點(diǎn):

      對于每一行分割的數(shù)據(jù),data[0]是姓名,data[1:]是所有成績組成的列表。每次循環(huán)中,sum都要先清零。

      score是一個字符串,為了做計算,需要轉(zhuǎn)成整數(shù)值int。

      result中,我加了一個制表符t和換行符n,讓輸出的結(jié)果更好看些。5.得到一個學(xué)生的總成績后,把它添加到一個list中。

      results.append(result)#這里results是list results需要在循環(huán)之前初始化results = [] 6.最后,全部成績處理完畢后,把results中的內(nèi)容保存至文件。因為results是一個字符串組成的list,這里我們直接用writelines方法: output = file('result.txt', 'w')output.writelines(results)outpus.close()

      十八、異常處理

      在python中,可以使用try...except語句來處理異常。做法是,把可能引發(fā)異常的語句放在try-塊中,把處理異常的語句放在except-塊中。例如:

      try: f = file('non-exist.txt')print 'File opened!' f.close()except: print 'File not exists.' print 'Done'

      十九、字典dictionary python中的基本類型--字典(dictionary): 字典這種數(shù)據(jù)結(jié)構(gòu)有點(diǎn)像我們平常用的通訊錄,有一個名字和這個名字對應(yīng)的信息。在字典中,名字叫做“鍵(key)”,對應(yīng)的內(nèi)容信息叫做“值(value)”。字典就是一個鍵/值對的集合。鍵/值對用冒號分割,每個對之間用逗號分割,整個字典包括在花括號中。

      d = {key1 : value1, key2 : value2 } 舉個簡單的字典例子:score = {'蕭峰': 95, '段譽(yù)': 97,'虛竹': 89} 關(guān)于字典的鍵要注意的是: 1.鍵必須是唯一的; 2.鍵只能是簡單對象,比如字符串、整數(shù)、浮點(diǎn)數(shù)、bool值。list就不能作為鍵,但是 可以作為值。

      3.python字典中的鍵/值對沒有順序,我們無法用索引訪問字典中的某一項,而是要用鍵來訪問。例如print score['段譽(yù)'] 或者print score.get('段譽(yù)')。如果你的鍵是字符串,通過鍵訪問的時候就需要加引號,如果是數(shù)字作為鍵則不用。注意,字典類的get方法是按照給定key尋找對應(yīng)項,如果不存在這樣的key,就返回空值None 4.字典也可以通過for...in遍歷: for name in score: print score[name] #這里要用中括號

      或者 print score.get(name)#這里要用小括號

      注意,遍歷的變量中存儲的是字典的鍵。5.如果要改變某一項的值,就直接給這一項賦值: score['虛竹'] = 91 6.增加一項字典項的方法是,給一個新鍵賦值: score['慕容復(fù)'] = 88 7.刪除一項字典項的方法是del: del score['蕭峰'] 注意,這個鍵必須已存在于字典中。

      8.如果你想新建一個空的字典,只需要: d = {}

      二十、模塊

      python自帶了功能豐富的標(biāo)準(zhǔn)庫,另外還有數(shù)量龐大的各種第三方庫。使用這些功能的基本方法就是使用模塊。通過函數(shù),可以在程序里重用代碼;通過模塊,則可以重用別的程序中的代碼。

      模塊可以理解為是一個包含了函數(shù)和變量的py文件。在你的程序中引入了某個模塊,就可以使用其中的函數(shù)和變量。

      來看一個我們之前使用過的模塊: import random import語句告訴python,我們要用random模塊中的內(nèi)容。然后便可以使用random中的方法,比如:random.randint(1, 10)random.randchoic([1, 3, 5])注意,函數(shù)前面需要加上“random.”,這樣python才知道你是要調(diào)用random中的方法。想知道random有哪些函數(shù)和變量,可以用dir()方法:dir(random)

      如果你只是用到random中的某一個函數(shù)或變量,也可以通過from...import...指明: from random import randint; from math import pi print pi 等同于 import math print math.pi 為了便于理解和避免沖突,你還可以給引入的方法換個名字: from math import pi as math_pi print math_pi

      二十一、函數(shù)的默認(rèn)參數(shù)

      之前我們用過函數(shù),比如: def hello(name): print 'hello ' + name 然后我們?nèi)フ{(diào)用這個函數(shù):hello('world')程序就會輸出: hello world 如果很多時候,我們都是用world來調(diào)用這個函數(shù),少數(shù)情況才會去改參數(shù)。那么,我們就可以給這個函數(shù)一個默認(rèn)參數(shù): def hello(name = 'world'): print 'hello ' + name 當(dāng)你沒有提供參數(shù)值時,這個參數(shù)就會使用默認(rèn)值;如果你提供了,就用你給的。這樣,在默認(rèn)情況下,你只要調(diào)用hello()就可以輸出 hello world 同樣你也可以指定參數(shù):hello('python'),輸出hello python 注意,當(dāng)函數(shù)有多個參數(shù)時,如果你想給部分參數(shù)提供默認(rèn)參數(shù),那么這些參數(shù)必須在參數(shù)的末尾。比如: def func(a, b=5)是正確的

      def func(a=5, b)就會出錯

      二十二、數(shù)學(xué)運(yùn)算python的數(shù)學(xué)運(yùn)算模塊叫做math,再用之前,需要 import math

      1.math包里有兩個常量: math.pi 圓周率π:3.141592...math.e 自然常數(shù):2.718281...2.數(shù)值運(yùn)算:

      math.ceil(x)對x向上取整,比如x=1.2,返回2

      math.floor(x)對x向下取整,比如x=1.2,返回1

      math.pow(x,y)指數(shù)運(yùn)算,得到x的y次方

      math.log(x)對數(shù),默認(rèn)基底為e。可以使用第二個參數(shù),來改變對數(shù)的基底。比如math.log(100, 10)

      math.sqrt(x)平方根

      math.fabs(x)絕對值 三角函數(shù): math.sin(x)math.cos(x)math.tan(x)math.asin(x)math.acos(x)math.atan(x)注意:這里的x是以弧度為單位,所以計算角度的話,需要先換算

      角度和弧度互換: math.degrees(x)弧度轉(zhuǎn)角度 math.radians(x)角度轉(zhuǎn)弧度

      以上是你平??赡軙玫降暮瘮?shù)。除此之外,還有一些,這里就不羅列,可以去 http://docs.python.org/2/library/math.html 查看官方的完整文檔。

      二十三、類class和對象object class Person: def __init__(self, name): self.name = name def sayHi(self): print 'Hello, my name is', self.name p = Person('Swaroop')p.sayHi()__init__函數(shù)會在類被創(chuàng)建的時候自動調(diào)用,用來初始化類。它的參數(shù),要在創(chuàng)建類的時候提供(所以定義p時Person后面的括號里有東西)注意:__init__前后各有兩道下劃線

      第二篇:Python學(xué)習(xí)總結(jié)

      Python總結(jié)

      目錄

      Python總結(jié).....................................................................................................................1 前言.............................................................................................................................2

      (一)如何學(xué)習(xí)Python.........................................................................................2

      (二)一些Python免費(fèi)課程推薦.......................................................................4

      (三)Python爬蟲需要哪些知識?....................................................................5

      (四)Python爬蟲進(jìn)階.........................................................................................8

      (五)Python爬蟲面試指南..............................................................................11

      (六)推薦一些不錯的Python博客.................................................................13

      (七)Python如何進(jìn)階.......................................................................................14

      (八)Python爬蟲入門.......................................................................................16

      (九)Python開發(fā)微信公眾號..........................................................................20

      (十)Python面試概念和代碼..........................................................................24

      (十一)Python書籍...........................................................................................34

      前言

      知乎:路人甲

      微博:玩數(shù)據(jù)的路人甲 微信公眾號:一個程序員的日常

      在知乎分享已經(jīng)有一年多了,之前一直有朋友說我的回答能整理成書籍了,一直偷懶沒做,最近有空仔細(xì)整理了知乎上的回答和文章另外也添加了一些新的內(nèi)容,完成了幾本小小的電子書,這一本是有關(guān)于Python方面的。

      還有另外幾本包括我的一些數(shù)據(jù)分析方面的讀書筆記、增長黑客的讀書筆記、機(jī)器學(xué)習(xí)十大算法等等內(nèi)容。將會在我的微信公眾號:一個程序員的日常進(jìn)行更新,同時也可以關(guān)注我的知乎賬號:路人甲及時關(guān)注我的最新分享用數(shù)據(jù)講故事。

      (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個階段:

      1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法等,基礎(chǔ)過的很快,基本上1~2周時間就能過完了,我當(dāng)時是在這兒看的基礎(chǔ):Python 簡介 | 菜鳥教程 2.看完基礎(chǔ)后,就是做一些小項目鞏固基礎(chǔ),比方說:做一個終端計算器,如果實(shí)在找不到什么練手項目,可以在 Codecademy知乎專欄

      5.Python庫是開發(fā)者利器,用這些庫你可以做很多很多東西,最常見的網(wǎng)絡(luò)爬蟲、自然語言處理、圖像識別等等,這些領(lǐng)域都有很強(qiáng)大的Python庫做支持,所以當(dāng)你學(xué)了Python庫之后,一定要第一時間進(jìn)行練習(xí)。如何尋找自己需要的Python庫呢?推薦我之前的一個回答:如何找到適合需求的 Python 庫? 6.學(xué)習(xí)使用了這些Python庫,此時的你應(yīng)該是對Python十分滿意,也十分激動能遇到這樣的語言,就是這個時候不妨開始學(xué)習(xí)Python數(shù)據(jù)結(jié)構(gòu)與算法,Python設(shè)計模式,這是你進(jìn)一步學(xué)習(xí)的一個重要步驟:faif/python-patterns

      7.當(dāng)度過艱難的第六步,此時選擇你要研究的方向,如果你想做后端開發(fā),不妨研究研究Django,再往后,就是你自己自由發(fā)揮了。

      (二)一些Python免費(fèi)課程推薦 以下課程都為免費(fèi)課程

      1.python零基礎(chǔ)相關(guān)

      適用人群:Python零基礎(chǔ)的初學(xué)者、Web開發(fā)程序員、運(yùn)維人員、有志于從事互聯(lián)網(wǎng)行業(yè)以及各領(lǐng)域應(yīng)用Python的人群

      ? 瘋狂的Python:快速入門精講 ? 零基礎(chǔ)入門學(xué)習(xí)Python ? 玩轉(zhuǎn)Python語言 ? Python語言程序設(shè)計 ? 程序設(shè)計入門

      ? 可汗學(xué)院公開課:計算機(jī)科學(xué) ? python 入門到精通 ? Python交互式編程入門的課程主頁

      ? Python交互編程入門(第2部分)的課程主頁

      2.python web方向

      Python Django 快速Web應(yīng)用開發(fā)入門

      3.python爬蟲

      Python實(shí)戰(zhàn):一周學(xué)會爬取網(wǎng)頁

      4.python數(shù)據(jù)分析方向 數(shù)據(jù)分析實(shí)戰(zhàn)基礎(chǔ)課程

      (三)Python爬蟲需要哪些知識?

      要學(xué)會使用Python爬取網(wǎng)頁信息無外乎以下幾點(diǎn)內(nèi)容:

      1、要會Python

      2、知道網(wǎng)頁信息如何呈現(xiàn)

      3、了解網(wǎng)頁信息如何產(chǎn)生

      4、學(xué)會如何提取網(wǎng)頁信息

      第一步Python是工具,所以你必須熟練掌握它,要掌握到什么程度呢?如果你只想寫一寫簡單的爬蟲,不要炫技不考慮爬蟲效率,你只需要掌握: ? ? ? ? ? 數(shù)據(jù)類型和變量 字符串和編碼 使用list和tuple 條件判斷、循環(huán) 使用dict和set

      你甚至不需要掌握函數(shù)、異步、多線程、多進(jìn)程,當(dāng)然如果想要提高自己小爬蟲的爬蟲效率,提高數(shù)據(jù)的精確性,那么記住最好的方式是去系統(tǒng)的學(xué)習(xí)一遍Python,去哪兒學(xué)習(xí)?Python教程

      假設(shè)已經(jīng)熟悉了最基礎(chǔ)的Python知識,那么進(jìn)入第二步:知道網(wǎng)頁信息如何呈現(xiàn)?你首先要知道所需要抓取的數(shù)據(jù)是怎樣的呈現(xiàn)的,就像是你要學(xué)做一幅畫,在開始之前你要知道這幅畫是用什么畫出來的,鉛筆還是水彩筆...可能種類是多樣的,但是放到網(wǎng)頁信息來說這兒只有兩種呈現(xiàn)方式:

      1、HTML(HTML 簡介)

      2、JSON(JSON 簡介)HTML是用來描述網(wǎng)頁的一種語言 JSON是一種輕量級的數(shù)據(jù)交換格式

      假設(shè)你現(xiàn)在知道了數(shù)據(jù)是由HTML和JSON呈現(xiàn)出來的,那么我們緊接著第三步:數(shù)據(jù)怎么來?數(shù)據(jù)當(dāng)然是從服務(wù)器反饋給你的,為什么要反饋給你?因為你發(fā)出了請求?!癏i~,服務(wù)器我要這個資源” “正在傳輸中...”

      “已經(jīng)收到HTML或者JSON格式的數(shù)據(jù)”

      這個請求是什么請求?要搞清楚這一點(diǎn)你需要了解一下http的基礎(chǔ)知識,更加精確來說你需要去了解GET和POST是什么,區(qū)別是什么。也許你可以看看這個:淺談HTTP中Get與Post的區(qū)別博客園

      很高興你使用的是Python,那么你只需要去掌握好快速上手知乎專欄 知乎--Python學(xué)習(xí)路徑及練手項目合集

      (四)Python爬蟲進(jìn)階

      爬蟲無非分為這幾塊:分析目標(biāo)、下載頁面、解析頁面、存儲內(nèi)容,其中下載頁面不提。1.分析目標(biāo)

      所謂分析就是首先你要知道你需要抓取的數(shù)據(jù)來自哪里?怎么來?普通的網(wǎng)站一個簡單的POST或者GET請求,不加密不反爬,幾行代碼就能模擬出來,這是最基本的,進(jìn)階就是學(xué)會分析一些復(fù)雜的目標(biāo),比如說:淘寶、新浪微博登陸以及網(wǎng)易云的評論信息等等。

      2.解析頁面

      解析頁面主要是選擇什么庫或者那些庫結(jié)合能使解析速度更快,可能你一開始你通過種種地方了解到了bs庫,于是你對這個庫很癡迷,以后只要寫爬蟲,總是先寫上: importrequests

      frombs4importBeautifulSoup 當(dāng)然bs已經(jīng)很優(yōu)秀了,但是并不代表可以用正則表達(dá)式解析的頁面還需要使用bs,也不代表使用lxml能解決的還要動用bs,所以這些解析庫的速度是你在進(jìn)階時要考慮的問題。

      3.存儲內(nèi)容

      剛開始學(xué)爬蟲,一般爬取的結(jié)果只是打印出來,最后把在終端輸出的結(jié)果復(fù)制粘貼保存就好了;后來發(fā)現(xiàn)麻煩會用上xlwt/openpyxl/csv的把存儲內(nèi)容寫入表格,再后來使用數(shù)據(jù)庫sqlite/mysql/neo4j只要調(diào)用了庫都很簡單,當(dāng)然這是入門。

      進(jìn)階要開始學(xué)習(xí)如何選擇合適的數(shù)據(jù)庫,或者存儲方式。當(dāng)爬取的內(nèi)容過千萬的時候,如何設(shè)計使存儲速度更快,比如說當(dāng)既有人物關(guān)系又有人物關(guān)系的時候,一定會用neo4j來存儲關(guān)系,myslq用來存儲用戶信息,這樣分開是因為如果信息全部存入neo4j,后期的存儲速度經(jīng)十分的慢。

      當(dāng)你每個步驟都能做到很優(yōu)秀的時候,你應(yīng)該考慮如何組合這四個步驟,使你的爬蟲達(dá)到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計方案,比如說Scrapy。

      除了爬取策略以外,還有幾點(diǎn)也是必備的: 1.代理策略以及多用戶策略

      代理是爬蟲進(jìn)階階段必備的技能,與入門階段直接套用代理不同,在進(jìn)階階段你需要考慮如何設(shè)計使用代理策略,什么時候換代理,代理的作用范圍等等,多用戶的抓取策略考慮的問題基本上與代理策略相同。2.增量式抓取以及數(shù)據(jù)刷新

      比如說你抓取的是一個酒店網(wǎng)站關(guān)于酒店價格數(shù)據(jù)信息的,那么會有這些問題:酒店的房型的價格是每天變動的,酒店網(wǎng)站每天會新增一批酒店,那么如何進(jìn)行存儲、如何進(jìn)行數(shù)據(jù)刷新都是應(yīng)該考慮的問題。3.驗證碼相關(guān)的一些問題 有很多人提到驗證碼,我個人認(rèn)為驗證碼不是爬蟲主要去解決的問題,驗證碼不多的情況考慮下載到本地自己輸入驗證碼,在多的情況下考慮接入打碼平臺。

      (五)Python爬蟲面試指南

      前段時間快要畢業(yè),而我又不想找自己的老本行Java開發(fā)了,所以面了很多Python爬蟲崗位。因為我在南京上學(xué),所以我一開始只是在南京投了簡歷,我一共面試了十幾家企業(yè),其中只有一家沒有給我發(fā)offer,其他企業(yè)都愿意給到10K的薪資,不要拿南京的薪資水平和北上深的薪資水平比較,結(jié)合面試常問的問題類型說一說我的心得體會。

      第一點(diǎn):Python 因為面試的是Python爬蟲崗位,面試官大多數(shù)會考察面試者的基礎(chǔ)的Python知識,包括但不限于:

      ? ? ? ? Python2.x與Python3.x的區(qū)別 Python的裝飾器 Python的異步

      Python的一些常用內(nèi)置庫,比如多線程之類的

      第二點(diǎn):數(shù)據(jù)結(jié)構(gòu)與算法

      數(shù)據(jù)結(jié)構(gòu)與算法是對面試者尤其是校招生面試的一個很重要的點(diǎn),當(dāng)然小公司不會太在意這些,從目前的招聘情況來看對面試者的數(shù)據(jù)結(jié)構(gòu)與算法的重視程度與企業(yè)的好壞成正比,那些從不問你數(shù)據(jù)結(jié)構(gòu)的你就要當(dāng)心他們是否把你當(dāng)碼農(nóng)用的,當(dāng)然以上情況不絕對,最終解釋權(quán)歸面試官所有。

      第三點(diǎn):Python爬蟲

      最重要也是最關(guān)鍵的一點(diǎn)當(dāng)然是你的Python爬蟲相關(guān)的知識與經(jīng)驗儲備,這通常也是面試官考察的重點(diǎn),包括但不限于:

      ? ? ? ? ? 你遇到過的反爬蟲的策略有哪些? 你常用的反反爬蟲的方案有哪些?

      你用過多線程和異步嗎?除此之外你還用過什么方法來提高爬蟲效率? 有沒有做過增量式抓?。?對Python爬蟲框架是否有了解?

      第四點(diǎn):爬蟲相關(guān)的項目經(jīng)驗

      爬蟲重在實(shí)踐,除了理論知識之外,面試官也會十分注重爬蟲相關(guān)的項目:

      ? 你做過哪些爬蟲項目?如果有Github最好 ? 你認(rèn)為你做的最好的爬蟲項目是哪個?其中解決了什么難題?有什么特別之處?

      以上是我在面試過程中,會碰到的一些技術(shù)相關(guān)的問題的總結(jié),當(dāng)然面試中不光是技術(shù)這一點(diǎn),但是對于做技術(shù)的,過了技術(shù)面基本上就是薪資問題了。

      (六)推薦一些不錯的Python博客

      如果是Python基礎(chǔ)的話,廖雪峰的博客教程會是一個不錯的選擇:

      ? ? Python3教程 Python 2.7教程

      當(dāng)然很多剛接觸Python的同學(xué)反應(yīng)廖大大的教程中部分跳躍性太大,如果覺得跳躍性太大可以結(jié)合菜鳥教程一起看:

      ? ? Python3 教程 | 菜鳥教程 Python 基礎(chǔ)教程 | 菜鳥教程

      如果你英文稍好的話推薦還是看官方文檔:Python 3.6.0 documentation 如果不是為了學(xué)習(xí)Python基礎(chǔ)的話,推薦幾個其他的博客。

      ? ? ? ? 董老師的博客:小明明s à domicile 《Python-Web開發(fā)實(shí)戰(zhàn)》的作者,知乎某位工程師的博客:分類《Python》,具體是哪位大神我不太清楚。依云大大的博客文章值得深讀:依云's Blog

      《從Python開始學(xué)編程》的作者博客:PythonVamei博客園

      Python | the5fire的技術(shù)博客

      (七)Python如何進(jìn)階

      很多人在學(xué)習(xí)編程之初都會碰到這種問題:學(xué)會了基礎(chǔ)的語法了,但是還是做不了項目,不知道如何下手。

      當(dāng)初,我學(xué)習(xí)C的時候是這樣、Java的時候是這樣、Python的時候也是這樣,其實(shí)不管什么語言、什么知識都是這樣:理論基礎(chǔ)知識謝科的回答 如果你想學(xué)習(xí)編程,但是找不到學(xué)習(xí)路徑和資源,歡迎關(guān)注專欄:學(xué)習(xí)編程

      第一:Python爬蟲學(xué)習(xí)系列教程 Python版本:2.7 整體目錄:

      一、爬蟲入門 ? Python爬蟲入門一之綜述 ? Python爬蟲入門二之爬蟲基礎(chǔ)了解 ? Python爬蟲入門三之Urllib庫的基本使用 ? Python爬蟲入門四之Urllib庫的高級用法 ? Python爬蟲入門五之URLError異常處理 ? Python爬蟲入門六之Cookie的使用 ? Python爬蟲入門七之正則表達(dá)式

      二、爬蟲實(shí)戰(zhàn)

      ? Python爬蟲實(shí)戰(zhàn)一之爬取糗事百科段子 ? Python爬蟲實(shí)戰(zhàn)二之爬取百度貼吧帖子

      ? Python爬蟲實(shí)戰(zhàn)三之實(shí)現(xiàn)山東大學(xué)無線網(wǎng)絡(luò)掉線自動重連 ? Python爬蟲實(shí)戰(zhàn)四之抓取淘寶MM照片

      ? Python爬蟲實(shí)戰(zhàn)五之模擬登錄淘寶并獲取所有訂單 ? Python爬蟲實(shí)戰(zhàn)六之抓取愛問知識人問題并保存至數(shù)據(jù)庫 ? Python爬蟲實(shí)戰(zhàn)七之計算大學(xué)本學(xué)期績點(diǎn)

      ? Python爬蟲實(shí)戰(zhàn)八之利用Selenium抓取淘寶匿名旺旺

      三、爬蟲利器

      ? Python爬蟲利器一之Requests庫的用法 ? Python爬蟲利器二之Beautiful Soup的用法 ? Python爬蟲利器三之Xpath語法與lxml庫的用法 ? Python爬蟲利器四之PhantomJS的用法 ? Python爬蟲利器五之Selenium的用法 ? Python爬蟲利器六之PyQuery的用法

      四、爬蟲進(jìn)階

      ? Python爬蟲進(jìn)階一之爬蟲框架概述

      ? Python爬蟲進(jìn)階二之PySpider框架安裝配置 ? Python爬蟲進(jìn)階三之爬蟲框架Scrapy安裝配置 ? Python爬蟲進(jìn)階四之PySpider的用法

      第二(第一的姊妹篇):Python爬蟲入門教程 Python版本:2.7 教程目錄:

      ? [Python]網(wǎng)絡(luò)爬蟲

      (一):抓取網(wǎng)頁的含義和URL基本構(gòu)成

      ? [Python]網(wǎng)絡(luò)爬蟲

      (二):利用urllib2通過指定的URL抓取網(wǎng)頁內(nèi)容 ? [Python]網(wǎng)絡(luò)爬蟲

      (三):異常的處理和HTTP狀態(tài)碼的分類 ? [Python]網(wǎng)絡(luò)爬蟲

      (四):Opener與Handler的介紹和實(shí)例應(yīng)用 ? [Python]網(wǎng)絡(luò)爬蟲

      (五):urllib2的使用細(xì)節(jié)與抓站技巧 ? [Python]網(wǎng)絡(luò)爬蟲

      (六):一個簡單的百度貼吧的小爬蟲 ? [Python]網(wǎng)絡(luò)爬蟲

      (七):Python中的正則表達(dá)式教程

      ? [Python]網(wǎng)絡(luò)爬蟲

      (八):糗事百科的網(wǎng)絡(luò)爬蟲(v0.3)源碼及解析(簡化更新)

      ? [Python]網(wǎng)絡(luò)爬蟲

      (九):百度貼吧的網(wǎng)絡(luò)爬蟲(v0.4)源碼及解析 ? [Python]網(wǎng)絡(luò)爬蟲

      (十):一個爬蟲的誕生全過程(以山東大學(xué)績點(diǎn)運(yùn)算為例)

      ? [Python]網(wǎng)絡(luò)爬蟲(11):亮劍!爬蟲框架小抓抓Scrapy閃亮登場!? [Python]網(wǎng)絡(luò)爬蟲(12):爬蟲框架Scrapy的第一個爬蟲示例入門教程

      第三:你已經(jīng)看完上面(第一或者第二)的教程:再推薦知乎用戶@陳唯源 的實(shí)戰(zhàn)練習(xí)博客

      ? Python爬蟲學(xué)習(xí)記錄(1)——Xiami全站播放數(shù) ? Python爬蟲學(xué)習(xí)記錄(2)——LDA處理歌詞 ? 百度音樂帶標(biāo)簽,作曲,演唱者,類別的歌詞數(shù)據(jù)

      ? Python爬蟲學(xué)習(xí)記錄(4)——傳說中的足彩倍投法。好像也不是那么靠譜

      ? 2011~2013.5全球所有足球比賽比分?jǐn)?shù)據(jù)以及足彩各公司盤口

      ? Python爬蟲學(xué)習(xí)記錄(3)——用Python獲取蝦米加心歌曲,并獲取MP3下載地址

      ? Python爬蟲學(xué)習(xí)記錄(5)——python mongodb + 爬蟲 + web.py 的acfun視頻排行榜

      ? Python爬蟲學(xué)習(xí)記錄(0)——Python 爬蟲抓站 記錄(蝦米,百度,豆瓣,新浪微博)

      第四:最后推薦知乎用戶@gaga salamer 的實(shí)戰(zhàn)練習(xí)博客

      ? 爬蟲教程(1)基礎(chǔ)入門 ? 爬蟲教程(2)性能進(jìn)階

      ? 知乎用戶信息爬蟲(規(guī)?;廊。? 用scrapy爬取豆瓣電影新片榜

      ? 用scrapy對豆瓣top250頁面爬?。ǘ囗撁媾廊。? 用scrapy自動爬取下載圖片

      ? 用scrapy自動下載石原sama的豆瓣影人圖集(727張圖片,自動下載)

      希望以上的教程可以幫助到大家。

      (九)Python開發(fā)微信公眾號

      我的第一個Python項目就是做的微信公眾號機(jī)器人,按照當(dāng)時我的思路來講講如何學(xué)習(xí)使用Python來開發(fā)微信公眾號:大家伙收藏順手點(diǎn)個贊唄。微信公眾號功能開發(fā)分為兩大塊:需要調(diào)用微信內(nèi)部功能、不需要調(diào)用微信內(nèi)部功能,重點(diǎn)在調(diào)用微信內(nèi)部功能組建。

      1、需要調(diào)用微信內(nèi)部功能 需要調(diào)用微信內(nèi)部功能組件的比如:公眾號收發(fā)消息|圖片、頁面分享至朋友圈、用戶授權(quán)提取用戶基本信息、微信小店、微信公眾號菜單等內(nèi)部功能組件,這些功能組件在微信公眾號開發(fā)者文檔里面找到:微信公眾平臺開發(fā)者文檔

      對于這些功能組件,開發(fā)者文檔都提供了詳細(xì)的接口文檔,告訴你如何調(diào)用,而你只需要用Python調(diào)用這些接口即可。比如一個很簡單的消息發(fā)送的方法如下:

      當(dāng)然在這所有的調(diào)用之前,需要進(jìn)行一些授權(quán)驗證,同樣開發(fā)者文檔有一套完整的接入指南:接入指南廖雪峰的官方網(wǎng)站

      (三)、簡要描述Python的垃圾回收機(jī)制(garbage collection)Python中的垃圾回收是以引用計數(shù)為主,標(biāo)記-清除和分代收集為輔。引用計數(shù):Python在內(nèi)存中存儲每個對象的引用計數(shù),如果計數(shù)變成0,該對象就會消失,分配給該對象的內(nèi)存就會釋放出來。標(biāo)記-清除:一些容器對象,比如list、dict、tuple,instance等可能會出現(xiàn)引用循環(huán),對于這些循環(huán),垃圾回收器會定時回收這些循環(huán)(對象之間通過引用(指針)連在一起,構(gòu)成一個有向圖,對象構(gòu)成這個有向圖的節(jié)點(diǎn),而引用關(guān)系構(gòu)成這個有向圖的邊)。

      分代收集:Python把內(nèi)存根據(jù)對象存活時間劃分為三代,對象創(chuàng)建之后,垃圾回收器會分配它們所屬的代。每個對象都會被分配一個代,而被分配更年輕的代是被優(yōu)先處理的,因此越晚創(chuàng)建的對象越容易被回收。

      如果你想要深入了解Python的GC機(jī)制,點(diǎn)擊這里:[轉(zhuǎn)載]Python垃圾回收機(jī)制--完美講解!

      (四)、Python多線程(multi-threading)。這是個好主意嗎?

      Python并不支持真正意義上的多線程,Python提供了多線程包。Python中有一個叫Global Interpreter Lock(GIL)的東西,它能確保你的代碼中永遠(yuǎn)只有一個線程在執(zhí)行。經(jīng)過GIL的處理,會增加執(zhí)行的開銷。這就意味著如果你先要提高代碼執(zhí)行效率,使用threading不是一個明智的選擇,當(dāng)然如果你的代碼是IO密集型,多線程可以明顯提高效率,相反如果你的代碼是CPU密集型的這種情況下多線程大部分是雞肋。

      想要深入詳細(xì)了解多線程,點(diǎn)擊這里:詳解Python中的多線程編程_python 想了解一下IO密集和CPU密集可以點(diǎn)擊這里:CPU-bound(計算密集型)和I/O bound(I/O密集型)

      (五)、說明os,sys模塊不同,并列舉常用的模塊方法? 官方文檔:

      os模板提供了一種方便的使用操作系統(tǒng)函數(shù)的方法

      sys模板可供訪問由解釋器使用或維護(hù)的變量和與解釋器交互的函數(shù) 另一種回答:

      os模塊負(fù)責(zé)程序與操作系統(tǒng)的交互,提供了訪問操作系統(tǒng)底層的接口。sys模塊負(fù)責(zé)程序與Python解釋器的交互,提供了一系列的函數(shù)和變量用戶操作Python運(yùn)行時的環(huán)境。一些常用的方法:

      一些常用的用法示例:

      想要了解更詳細(xì)的使用請訪問:os和sys模塊Python

      (七)、Python中pass語句的作用是什么?

      pass語句不會執(zhí)行任何操作,一般作為占位符或者創(chuàng)建占位程序

      (八)、Python是如何進(jìn)行類型轉(zhuǎn)換的?

      Python提供了將變量或值從一種類型轉(zhuǎn)換為另一種類型的內(nèi)置方法。

      (九)、Python里面如何拷貝一個對象?

      Python中對象之間的賦值是按引用傳遞的,如果要拷貝對象需要使用標(biāo)準(zhǔn)模板中的copy copy.copy:淺拷貝,只拷貝父對象,不拷貝父對象的子對象。copy.deepcopy:深拷貝,拷貝父對象和子對象。

      (十)、__new__和__init__的區(qū)別。

      __init__為初始化方法,__new__方法是真正的構(gòu)造函數(shù)。

      __new__是實(shí)例創(chuàng)建之前被調(diào)用,它的任務(wù)是創(chuàng)建并返回該實(shí)例,是靜態(tài)方法 __init__是實(shí)例創(chuàng)建之后被調(diào)用的,然后設(shè)置對象屬性的一些初始值??偨Y(jié):__new__方法在__init__方法之前被調(diào)用,并且__new__方法的返回值將傳遞給__init__方法作為第一個參數(shù),最后__init__給這個實(shí)例設(shè)置一些參數(shù)。

      想要更加詳細(xì)的了解這兩個方法,請點(diǎn)擊:Python中的__new__及其用法

      (十一)、Python中單下劃線和雙下劃線分別是什么?

      __name__:一種約定,Python內(nèi)部的名字,用來與用戶自定義的名字區(qū)分開,防止沖突

      _name:一種約定,用來指定變量私有

      __name:解釋器用_classname__name來代替這個名字用以區(qū)別和其他類相同的命名

      想要更加詳細(xì)的了解這兩者的區(qū)別,請點(diǎn)擊:Python中的下劃線(譯文)

      (十二)、說一說Python自省。

      自省就是面向?qū)ο蟮恼Z言所寫的程序在運(yùn)行時,所能知道對象的類型。簡單一句話就是運(yùn)行時能夠獲得對象的類型。比如:type()、dir()、getattr()、hasattr()、isinstance()

      想要完整的理解Python自省,請點(diǎn)擊:Python自省(反射)指南 有關(guān)于元類以及單例模式會在后面文章中做詳細(xì)的解釋說明。

      本文參考文獻(xiàn)資料: ?

      七、PYTHON 一些基礎(chǔ)面試題目總結(jié) ? 很全的 Python 面試題 ? Python自?。ǚ瓷洌┲改?/p>

      ? Python學(xué)習(xí)筆記

      (十二):lambda表達(dá)式與函數(shù)式編程 ? Python面試必須要看的15個問題

      (十一)Python書籍 入門書籍

      ? 《Python學(xué)習(xí)手冊》 ? 《Head First Python》

      ? 《Learn Python The Hard Way》 ? 《Python編程:入門到實(shí)踐》 ? 《笨辦法學(xué)Python》 ? 《簡明Python教程》

      進(jìn)階書籍

      ? 《Python Cookbook(第三版)》 ? 《流暢的Python》 ? 《Python源碼剖析》 ? 《Python進(jìn)階》

      ? 《Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn)》

      第三篇:python語法小結(jié)

      1.在Python中,一般來說一條語句占用一行。一條語句結(jié)束一般不需要使用C語言中的“;”,但在Python中也可以使用“;”將兩條語句寫在一行。另外,如果縮進(jìn)語句中只有一條語句,也可以將其寫在“:”之后。

      2.單引號中的字符串可以包含雙引號,雙引號中的字符串可以包含單引號,而不需要使用轉(zhuǎn)義字符。另外3個引號所包圍的字符可以作為注釋,還可以作為格式化的字符串,該字符串可以不再一行,格式化后行尾會自動轉(zhuǎn)化為“n”轉(zhuǎn)義字符。

      3.在Python中可以使用“”將較長的語句分成幾行來寫,但是注意每行后面不可以有#注釋。或者可以使用圓括號將較長的語句分行,每行后面可以使用#注釋。

      4.類型間轉(zhuǎn)換

      hex():將整數(shù)轉(zhuǎn)換為十六進(jìn)制字符串,包含前綴“0x” oct():將整數(shù)轉(zhuǎn)換為八進(jìn)制字符串,包含前綴“0o”

      注:string模塊中有string.atoi(x, base = 10),類似int(),但是可以選擇變換后的進(jìn)制

      5.math模塊中數(shù)學(xué)函數(shù):

      hypot(x, y):求直角三角形的斜邊長度,x和y為兩個直角邊長度 fmod(x, y):求x / y的余數(shù),等同于x % y ceil(x):求不小于x的最大整數(shù) floor(x):求不大于x的最小整數(shù) fabs(x):求x的絕對值 exp(x):求e的x次冪

      pow(x, y):求x的y次冪,等同于x ** y log10(x):求x以log10為底的對數(shù) sqrt(x):求x的平方根 pi:求pi的值

      6.字符串操作

      string.capitalize():將字符串第一個字母大寫 string.count(x):獲得字符串中某字符串的數(shù)目 string.find(x):獲得字符串中某子字符串的起始位置 string.isalnum():是否僅包含0~

      9、A~Z、a~z string.isalpha():是否僅包含A~Z、a~z string.isaldigit():是否僅包含0~9 string.islower()string.isupper()string.lower()string.upper()string.isspace()string.istitle():字符串中所有單詞是否首字母大寫 string.title()string.join(x):將string插入x中的每兩個字符之間 string.swapcase():大小寫字母轉(zhuǎn)換 string.split(x):利用分割字符串的單詞(默認(rèn)是space)len(string)7.格式化字符串

      %f %d %s %o:八進(jìn)制整數(shù) %x:十六進(jìn)制整數(shù)

      注:r“xxxxx”或者R“xxxxx”表示原始字符串,常用語正則表達(dá)式或者路徑表示中,其間沒有轉(zhuǎn)義字符,均是正常字符。

      8.列表list list.append(x):追加成員x list.count(x):參數(shù)x出現(xiàn)的次數(shù)

      list.extend(x):list1+list2無法改變list1,只能返回一個新的list,但是list2.extend(list2)函數(shù)可以改變list1的值

      list.index(x):獲得x在list中的位置 list.insert(index, x):在index處插入x list.pop(index):刪除索引為index的成員

      list.remove(x):刪除值為x的成員 list.reverse()list.sort()list.clear()注:tuple的操作與list類似,但是不包含可修改元組的操作。

      9.字典dict dict.clear()dict.copy(x):將字典x拷貝給dict dict.get(key):等同于dict[k] dict.has_key(key):是否包含key鍵 dict.items():獲得鍵-值對組成的列表 dict.keys():獲得鍵組成的列表 dict.values():獲得值組成的列表 dict.pop(key)dict.update(x):利用字典x更新原字典

      10.文件操作

      open(filename, mode, bufsize)filename:要打開的文件名

      mode:打開模式(r是只讀,w是替換寫,a是追加寫,+是讀寫等)bufsize:緩沖區(qū)大小,可以默認(rèn) file.read():整個文件讀入字符串中 file.readlines():整個文件讀入列表中 file.readline():某行讀入字符串中 file.write(x):寫入字符串 file.writelines(x):寫入列表x file.close().11.函數(shù)參數(shù)

      調(diào)用函數(shù)可以同時使用按順序傳遞參數(shù),以及關(guān)鍵字傳遞參數(shù)等,但是必須注意按順序傳遞的參數(shù)要位于按關(guān)鍵字傳遞的參數(shù)之前,而且不能有重復(fù)的情況發(fā)生。例如: def sample(x, y, z): pass mysum(1, z = 5, y = 6)#ok mysum(z = 6, y = 7, 3)#error 使用可變長參數(shù)的函數(shù),將其所有參數(shù)保存在一個元組里,在函數(shù)中可以使用for循環(huán)來處理,聲明一個可變長參數(shù)的函數(shù)只需用*開頭定義一個參數(shù)即可。

      12.局部/全局變量

      局部作用域內(nèi)的變量的改變并不影響全局作用域內(nèi)的變量,除非通過引用的方式傳遞參數(shù)。如果要在函數(shù)內(nèi)使用函數(shù)外的變量,可以在變量名前使用global關(guān)鍵字。例如: def func(x): global a return x + a 13.模塊查找路徑

      導(dǎo)入模塊時,python解釋器首先在當(dāng)前目錄中查找導(dǎo)入的模塊;如果未找到,解釋器會從sys模塊中的path變量指定的目錄查找導(dǎo)入模塊;如果均未找到,則會出錯。import sys sys.path 在腳本中可以向sys.path添加查找路徑,例如可以在.py中如下: import os import sys modulepath = os.getcwd()+ ?module? #module是當(dāng)前目錄下的module子目錄 sys.path.append(modulepath)import mymodule #mymodule在module子目錄中 ************ 14.dir(x)可以獲得導(dǎo)入模塊中的所有定義的名字和函數(shù)等。

      import sys dir(sys)當(dāng)不使用參數(shù)時,該函數(shù)將返回當(dāng)前腳本的所有名字列表。

      15.模塊包

      包可以看成是出于同一個目錄中的模塊,在python中首先使用目錄名,然后再使用模塊名導(dǎo)入所需要的模塊。在包的每個目錄(包括子目錄)中都必須包含一個“__init__.py”的文件,該文件甚至可以是一個空文件,僅用于表示該目錄為一個包。

      在__init__.py中設(shè)置__all__變量和包初始化所需的代碼,可以保證在from中使用*時名字的正確導(dǎo)入。from A.B import a import A.B.a 有了包的概念可以很好地解決模塊查找路徑的問題,只要將所有的模塊放在當(dāng)前目錄中的某個文件夾內(nèi)(子目錄),然后在子目錄內(nèi)新建一個__init__.py文件即可,而不需將子目錄的路徑添加到sys.path中。

      第四篇:Python教學(xué)心得

      Python教學(xué)心得

      Python教學(xué)心得1

      1、定義方法

      關(guān)鍵字def是方法定義的標(biāo)志。接下來緊跟方法名和被圓括號所包圍的參數(shù)列表。方法的主

      體語句將在下一行開始并且必須縮進(jìn)。

      方法主體的首句可選擇性地是一句字符,用來說明方法的主要功能

      例如:

      “”“print a finabo series up to n.”“”

      2、默認(rèn)參數(shù)值

      默認(rèn)值僅被設(shè)置一次,這與以前默認(rèn)值為可變對象(如列表、字典和多數(shù)類實(shí)

      例時)有很大的區(qū)別。

      例如:

      i=5

      def f(arg=i):

      print(arg)

      i=6

      f

      將會輸出5

      3、關(guān)鍵字參數(shù)

      可以通過形式關(guān)鍵字參數(shù)調(diào)用方法

      在方法調(diào)用中,關(guān)鍵字參數(shù)必須遵循位置參數(shù)。所有的關(guān)鍵參數(shù)必須符合方法接受的參數(shù)

      其中之一。但是他們的次序不重要,這包含非選擇的參數(shù)。沒有參數(shù)可以多次接受一個值。

      當(dāng)最后一個形參是__name時,它可以接受包含除了形式參數(shù)之外的所有關(guān)鍵字的字典,

      _name必須在__name之前出現(xiàn)

      4、可變參數(shù)列表

      正常來說,這些可變參數(shù)常常放在正式參數(shù)列表的后面,因為它們會包攬所有傳遞給該方法

      的剩余輸入?yún)?shù)。任何出現(xiàn)在_args參數(shù)后低的正式參數(shù)會被認(rèn)為是關(guān)鍵字參數(shù),意味著它

      們只能當(dāng)關(guān)鍵字使用而不是位置參數(shù)。

      >>>def concat(_args,sep=“/”):

      ...returnsep.join(args)

      ...

      >>>concat(“earth”,“mars”,“venus”)

      ’earth/mars/venus’

      >>>concat(“earth”,“mars”,“venus”, sep=“.”)

      ’earth.mars.venus’

      5、拆分參數(shù)列表

      當(dāng)參數(shù)已經(jīng)存在列表或者元組中,但是需要分拆以供要求分離位置參數(shù)調(diào)用的方法,如果單獨(dú)

      分開它們無法使用,就需要寫一個方法用_操作符來調(diào)用實(shí)現(xiàn)分拆列表或者元組中的參數(shù)。

      同樣的使用形式,字典可以用__操作符實(shí)現(xiàn)關(guān)鍵字參數(shù)。

      6、形式

      lamdba a,b:a+b該函數(shù)表示兩個數(shù)的和,像內(nèi)嵌函數(shù)

      7、代碼風(fēng)格

      對于python,PEP8作為許多項目應(yīng)該遵守的編碼指導(dǎo)書而做的。它提出了一種可讀而悅

      目的編碼風(fēng)格。每位python開發(fā)者應(yīng)該讀它。這里抽出一個重要的事項與你分享:

      用四個空格代替tab鍵

      每行不要超過79個字符。

      用空行分離方法和類,大塊代碼中的方法。

      必要的時候為每行添加注釋。

      用文檔字符串

      在操作符兩邊用空格

      用統(tǒng)一的風(fēng)格命名自定義的方法和類

      如果你的代碼打算用在國際環(huán)境中,請不要用想象的字符編碼。Python默認(rèn)的是

      utf-8,在任何情況下可以用Ascii .

      同樣的,即使有很少機(jī)會讓說不同語言的人們讀代碼或者維護(hù)代碼,但在定義中不

      要用非ASCII編碼字符。

      Python教學(xué)心得2

      由于我是自學(xué)Python,非科班出生,所以只能分享一些關(guān)于我的學(xué)習(xí)心得,如果有不對地方歡迎指正。

      不過非科班出生雖然是一個痛點(diǎn),但是在工作上,我其實(shí)不輸給我其他同事,這點(diǎn)我倒是很有自信,而且我也統(tǒng)一一句話“目前互聯(lián)網(wǎng)上的免費(fèi)編程課程,足夠讓你成為一個合格的碼農(nóng)”。

      編程入門

      我剛開始學(xué)習(xí)編程,主要是因為自己想動手做個網(wǎng)站,但是由于技術(shù)原因,再加上朋友都比較忙,最后抱著“求人不如求己”的想法,干脆自學(xué)。

      編程難不難?

      這個問題我覺得所有認(rèn)真學(xué)過的人,都一定會肯定告訴你編程不難,但是精通那是相當(dāng)困難的。

      如果你還沒去學(xué)習(xí),就覺得編程一定很難,那么其實(shí)你是沒有資格說這句話的,任何事情一定是要去嘗試后,才能這么說。

      編程其實(shí)很像堆積木,然后根據(jù)需求,把東西造出來,可以是房子,也可以是橋梁。

      學(xué)習(xí)編程無非運(yùn)用這些積木,來創(chuàng)造你要的東西。

      編程語言選擇

      這邊說個題外話,關(guān)于當(dāng)時編程語言的選擇,很多時候我覺得不是你選擇編程語言,而是編程語言選擇你,也就是你的“本命編程語言”。

      人的性格會影響你適合的編程語言,比如你做事有條理,喜歡定期清理房間,那么可能C語言很適合你;如果你不喜歡打掃房間,實(shí)在受不了,才打掃一次,可能你適合Java。

      哈哈,開個玩笑,不過確實(shí)有這種很玄的存在。

      我當(dāng)時在編程語言的選擇上,用了一個笨方法。

      我跑到w3cschool上面,把所有編程語言的第一章都去試了一遍,看看自己喜歡哪個語言,然后就選哪個語言,如果你不知道選哪門語言,可以用我的方法試試看。

      至于編程語言,沒有高低之分,因為無論你學(xué)習(xí)哪門語言,你都非常有市場,而且你都能夠拿到高薪,關(guān)鍵是哪門語言適合你,并且能夠讓你有興趣學(xué)下去,能學(xué)好,這個很關(guān)鍵。

      興趣是學(xué)習(xí)編程最大的驅(qū)動力!

      為什么是Python

      說下為什么選擇Python?

      因為簡單,Python是公認(rèn)的最容易入門的編程語言,而且也是公認(rèn)有發(fā)展前景的編程語言,適用于機(jī)器人、大數(shù)據(jù)、人工智商等未來高科技。

      基于以上的原因,我選擇Python來作為自己的入門語言,而且我覺得我適合Python這么語言。(因為我很懶)

      之前有個梗,大概就是其他編程語言在討論某個問題,怎么解決,而Python的程序員已經(jīng)下班了,由此可見Python的效率。

      總結(jié):Python的語言特點(diǎn)就是“一氣呵成,痛快如拉稀”。

      學(xué)習(xí)心得

      由于我是自學(xué)的,所以參考的網(wǎng)站比較多,小伙伴可以按照我的學(xué)習(xí)路線,一般來說不會出現(xiàn)什么問題。

      基礎(chǔ):教程+視頻

      進(jìn)階:視頻+實(shí)踐

      進(jìn)階pro:視頻+實(shí)踐+書籍+交流

      基礎(chǔ)

      剛開始學(xué)習(xí)的時候,我比較推薦w3cschool和菜鳥教程這兩個網(wǎng)站。

      w3cschool-學(xué)編程,從w3cschool開始www.w3cschool.cn!

      菜鳥教程-學(xué)的不僅是技術(shù),更是夢想!www.runoob.com

      這兩個網(wǎng)站在我看來,是編程自學(xué)的福音。

      w3cschool這個網(wǎng)站手冊非常棒,另外這個網(wǎng)站的編程微課以及編程實(shí)戰(zhàn)對新手來說非常友好!

      我當(dāng)時就是靠這兩個,引發(fā)我學(xué)習(xí)的樂趣,不然對著枯燥的代碼,說實(shí)話,很無聊的。

      菜鳥教程,這個網(wǎng)站的實(shí)例是最棒的,很多時候,你不僅僅要自己看教程,還要去看看為什么,而菜鳥教程的實(shí)例就能夠讓你清晰的知道,為什么,并且會原來如此。

      總的來說,這兩個網(wǎng)站就像新手村剛出來的劍和盾!是新手入門絕對不能少的,尤其是w3cschool,強(qiáng)烈推薦。

      還有一個就是視頻,視頻我是在慕課網(wǎng)上面看的,我很喜歡慕課網(wǎng)這個網(wǎng)站,網(wǎng)站風(fēng)格很棒,而且視頻也很清晰。

      也可以在阿里云上面看Python的視頻,也很不錯,并且是免費(fèi)的。

      進(jìn)階

      進(jìn)階結(jié)束后,代表你是個初級工程師。

      這一步實(shí)踐非常重要,你要自己動手,做一些小玩意,實(shí)踐才是最重要的,在實(shí)踐中發(fā)現(xiàn)問題,那是學(xué)習(xí)最快并且效率最高的時刻。

      你可以先給自己定下一個目標(biāo),比如我要做一個簡單的頁面,或者我要做一個簡單的小程序。

      然后就開始動手去實(shí)踐,這步很重要。

      同時還是要多看書籍。

      進(jìn)階pro

      到這一步,我建議務(wù)必買書,你需要書籍幫你反向梳理你的知識,這決定了你以后的高度,而不是這個也懂,那個也懂,但是東西就是做不出來。

      我記得當(dāng)時我買完書,看完后的第一感受就是:原來這個世界是這樣的!

      書會非常系統(tǒng)性的幫你梳理你自己學(xué)過的知識!

      這里只推薦兩本書:《Python入門手冊》和《Python核心編程》

      小伙伴可以自己去亞馬遜購買。

      然后就是和身邊的小伙伴交流!

      多看看別人的代碼,自己多敲敲代碼,是必經(jīng)之路,也是一定要做的。

      以上,希望對想入門Python的小伙伴能夠提供一點(diǎn)點(diǎn)幫助。

      Python教學(xué)心得3

      最近這段時間我們學(xué)習(xí)了很多內(nèi)容,增長了很多關(guān)于Python的知識,萬事萬物是相通的,正如學(xué)習(xí)新的知識就像吃飯一樣。

      吃多了就會消化不良,反映到學(xué)習(xí)上也是一樣,不知各位最近的感覺怎樣,反正學(xué)記是需要一些時間好好消化,掌握到手中,為下一步的知識補(bǔ)齊缺口。

      接下來,學(xué)記和大家一起回顧一下最近學(xué)習(xí)的內(nèi)容,循序漸進(jìn),循序漸進(jìn)。

      分支結(jié)構(gòu)

      分支結(jié)構(gòu)就像上圖一樣,是用來選擇道路的。

      所用的關(guān)鍵字是

      If elif else

      這三個詞的意思分別是

      如果否則如果其他的

      分支語句的寫法需要將與關(guān)鍵字與關(guān)鍵字對齊

      循環(huán)結(jié)構(gòu)

      循環(huán)結(jié)構(gòu)應(yīng)用于一些重復(fù)的進(jìn)程

      通常我們只接觸兩種循環(huán)

      for-in循環(huán)和while循環(huán)

      for-in循環(huán)適用于

      確切的知道到底循環(huán)幾次

      while循環(huán)適用于

      不知道到底有幾次循環(huán)

      此時要搭配bool來進(jìn)行

      即True和Flase

      關(guān)鍵字

      關(guān)鍵字的熟練運(yùn)用對于今后的開發(fā)工作

      有非常重要的作用,但這么多關(guān)鍵字我們不能***記硬背

      只有在一個一個代碼的驗證當(dāng)中去熟悉去掌握

      那樣是最可靠的

      def設(shè)置模組

      len計算字符串長度

      capitalize獲得字符串首字母大寫的拷貝

      upper獲得字符串變大寫后的拷貝

      find從字符串中查找子串所在位置

      index與find類似但找不到子串時會引發(fā)異常

      startswith檢查字符串是否以指定的字符串開頭

      endswith檢查字符串是否以指定的字符串結(jié)尾

      center將字符串以指定的寬度居中并在兩側(cè)填充指定的字符

      rjust將字符串以指定的寬度靠右放置左側(cè)填充指定的字符

      isdigit檢查字符串是否由數(shù)字構(gòu)成

      isalpha檢查字符串是否以字母構(gòu)成

      isalnum檢查字符串是否以數(shù)字和字母構(gòu)成

      append添加元素

      remove刪除元素

      clear清空元素

      sorted排序

      大家可能會有些疑惑,學(xué)習(xí)這些東西真的有用嗎?這些隨處可見的基礎(chǔ)方面的知識真的有用嗎?

      我可以非??隙ǖ馗嬖V大家

      有用的!

      這些知識就像是建筑工地隨處可見的磚石,不管這些磚石怎樣的不起眼,但是沒有一幢建筑可以離開磚石,學(xué)習(xí)的過程是枯燥的,不過這也正符合非?,F(xiàn)實(shí)的一條規(guī)律。

      學(xué)如逆水行舟,不進(jìn)則退!

      也正是因為它枯燥苦悶,學(xué)習(xí)有難度,才保證了,我們學(xué)習(xí)了這些知識以后,可以靠它們?yōu)樯谶@個知識時代闖出自己的一片天!

      不要放棄,絕對不要放棄!

      黎明之前是最黑暗的!

      為了自己的未來好好堅守吧!

      青年學(xué)記陪伴著各位青年

      Python教學(xué)心得4

      011月,一群編程零基礎(chǔ)的小伙伴們成立了Python學(xué)習(xí)小組,12名學(xué)員從此夜以繼日地奔赴學(xué)習(xí)的征程。一個月過去了,從在屏幕上用最簡單的語句打印出“Hello,Python; Hello,World”開始,我們逐步地學(xué)習(xí)Python語法,學(xué)習(xí)操作列表、字典,學(xué)習(xí)For,While,If語句,現(xiàn)在遇到了第一個難點(diǎn):類。通過研讀、練習(xí)、交流、討論,作為程序界的小白,我們逐步地理解了類的概念,明白了面向?qū)ο笈c面向過程編程的差異,以下是我們的'小小心得,與大家分享:

      編程基本思想

      現(xiàn)實(shí)世界中,每個復(fù)雜的事務(wù)都可以拆分為多個組成部分,其中的每一部分就可稱之為對象。比如要實(shí)現(xiàn)一個很大很復(fù)雜的項目,我們可以把項目拆分成不同的組成部分,然后分別對不同部分通過編程實(shí)現(xiàn),最終再把各個部分組裝起來完成整個項目。這讓我們能夠從整體上來控制項目,從而讓程序開發(fā)更有效。

      比如汽車制造,汽車廠所做的僅僅是各個部件的組裝和匹配,而各個部件的生產(chǎn)是由相對專業(yè)的廠商完成。如果需要研發(fā)新型號汽車,整車廠所考慮的是如何對各個新式的零部件進(jìn)行新的組裝和匹配,而不是從頭到尾重新生產(chǎn)一輛汽車。

      面向?qū)ο蟮木幊?/p>

      VS

      面向過程的編程

      面向過程編程是針對一個需求的具體實(shí)現(xiàn)過程,但是對于大型項目的復(fù)雜需求,一步一步的做,這種編程效率顯然是低下的。

      面向?qū)ο缶幊虅t是對項目進(jìn)行拆分后(一般按照功能拆分),分別實(shí)現(xiàn),再將各個對象組裝起來。因此簡單的小程序使用面向過程方法編程更適合。面向?qū)ο蟮木幊烫匦允且拙S護(hù)(可讀性高),效率高,質(zhì)量高(重用性),擴(kuò)展性好(高內(nèi)聚,低耦合)。

      對象

      通俗的講,對象就是事物,一個公司、一個部門、一個人,甚至一本書都可以是一個對象,程序員可以自由決定把什么作為對象。

      比如eHR系統(tǒng),需要對組織架構(gòu),員工進(jìn)行管理,所以使用的對象可能是公司,部門,崗位,員工,等等。對象可大可小,可復(fù)雜也可簡單,如果僅僅是做一個考勤系統(tǒng),員工這個對象一定要比eHR系統(tǒng)中的員工對象簡單。

      現(xiàn)實(shí)世界中,類代表一組有共同特性的事物,把不同對象之間的共性抽象出來,就形成類的概念。比如說男人、女人可以抽象成人這個類;處長、秘書可以抽象成員工類。至于類如何去抽象,粒度的粗細(xì),這是一個需要在學(xué)習(xí)和實(shí)踐中摸索的過程。

      實(shí)例

      以下是一個實(shí)例,大家體會一下:

      1.定義父類:

      class Employee:

      def __init__(self, name, age): #抽象員工共性(名字,年齡)

      self.name = name

      self.age = age

      def signON(self):

      print(self.name+“ sign on.”) #抽象簽到的動作

      def work(self):

      print(self.name + “ on work.”) #抽象工作的動作

      2.繼承出子類:

      class MEmployee(Employee): #繼承父類的共性

      def __init__(self, name, age):

      super.__init__(name, age)

      def work(self): #重寫子類的方法(抽象出從事管理崗位工作的動作)

      print(self.name + “ on manager_work.”)

      3.繼承出第二個子類:

      class TEmployee(Employee):

      def __init__(self, name, age, devLanguage): #繼承父類的共性,增加語言的屬性

      super().__init__(name, age)

      self.devLanguage = devLanguage

      def work(self): #重寫子類的方法(抽象出從事技術(shù)崗位工作的動作)

      print(self.name + “ on technology_work.”)

      def showLanguage(self): #增加子類的方法(抽象出會某種編程語言的動作)

      print(“use ”+self.devLanguage+“ language.”)

      在上面的程序中,我們先定義了一個父類:包含員工的姓名、年齡等一般特性,可以執(zhí)行簽到、工作這兩類動作。在第一個子類中,管理層在前面一般特性的基礎(chǔ)上,執(zhí)行管理工作;在第二個子類中,作為一般員工在前面一般特性的基礎(chǔ)上,執(zhí)行技術(shù)工作,從事編程。

      Python教學(xué)心得5

      python是一門非常有潛力的高級語言,歷經(jīng)多年的發(fā)展,其在編程上發(fā)揮著越來越大的作用。在這學(xué)期中,通過選修python課上的基礎(chǔ)知識學(xué)習(xí),我對python也有了一定的認(rèn)識。而且,在字符串上的處理,python相對于c語言也是給程序員極大的便利。而python不僅如此,它的庫也很多,正因為它強(qiáng)大的庫,讓編程變得不再艱難。但是,我認(rèn)為python雖然在許多方面相對于c語言比較方便,但也有其相對于弱一點(diǎn)的方面,比如說for循環(huán)等方面。雖然一學(xué)期下來,我對python的學(xué)習(xí)也僅僅只是它的基礎(chǔ)方面,但python的強(qiáng)大,也是足足地吸引著我,希望自己能夠在不斷地學(xué)習(xí)中,將python學(xué)習(xí)的更加好。

      python是一門非常有潛力的高級語言,歷經(jīng)多年的發(fā)展,其在編程上發(fā)揮著越來越大的作用。在這學(xué)期中,通過選修python課上的基礎(chǔ)知識學(xué)習(xí),我對python也有了一定的認(rèn)識。

      在學(xué)習(xí)python的第一節(jié)課上,其對我的最初的印象就是,相較于我學(xué)習(xí)過的c語言編程,它更加的簡潔。所有的變量都不需要像c語言編程那樣需要提前去定義,這樣給了編程者很大的自由空間與方便。如x=2,即可同時完成變量的定義與賦值。對于簡化程序的代碼,起到了許多的作用。而且,在字符串上的處理,python相對于c語言也是給程序員極大的便利。在c語言中,只能用字符類的數(shù)組對字符串進(jìn)行相應(yīng)的操作,步驟也是相對于比較繁瑣的,而在python中,當(dāng)我們需要創(chuàng)建一個字符串的時候,只需要在創(chuàng)建字符串的時候用“s=”就可以了。而python不僅如此,它的庫也很多,正因為它強(qiáng)大的庫,讓編程變得不再艱難。我們只需要調(diào)用庫中的函數(shù),而對于函數(shù)的具體實(shí)現(xiàn),也沒有特殊的需求。

      但是,我認(rèn)為python雖然在許多方面相對于c語言比較方便,但也有其相對于弱一點(diǎn)的方面,比如說for循環(huán)等方面。不過也依然不會影響到python的強(qiáng)大,而隨著近幾年來的發(fā)展,python的受歡迎度也越來越高,而它的運(yùn)用的領(lǐng)域也是越來越多,比如人工智能和大數(shù)據(jù)等領(lǐng)域,python都是在其中扮演者重要的角色。雖然一學(xué)期下來,我對python的學(xué)習(xí)也僅僅只是它的基礎(chǔ)方面,但python的強(qiáng)大,也是足足地吸引著我,希望自己能夠在不斷地學(xué)習(xí)中,將python學(xué)習(xí)的更加好。

      第五篇:Python程序設(shè)計基礎(chǔ)實(shí)驗報告

      “"

      實(shí)驗報告

      課程名稱: Python程序設(shè)計基礎(chǔ)

      學(xué) 院: 汽車工程學(xué)院

      專 業(yè): 機(jī)器人工程

      年 級: 2020級

      班 級: 1班

      學(xué)生姓名: 趙良滔 學(xué)號: 201114040045

      任課教師: 盤龍

      開課時間: 2020 至 2021 學(xué)年第 2 學(xué)期

      吉利學(xué)院實(shí)驗報告

      課 程 名 稱

      Python程序設(shè)計基礎(chǔ)

      任課教師

      盤龍

      學(xué) 院

      汽車工程學(xué)院

      學(xué)生姓名/學(xué)號

      (小組成員)

      趙良滔201114040045

      專 業(yè)

      班 級

      機(jī)器人工程1班

      實(shí) 驗 地 點(diǎn)

      立德樓567

      實(shí)驗日期

      實(shí)驗項目名稱

      班級花名冊分析

      實(shí) 驗 類 型

      □演示性 □驗證性 ?綜合性 ?設(shè)計性 □創(chuàng)新性 □其他

      實(shí)驗?zāi)康募耙?/p>

      實(shí)驗?zāi)康腻憻扨ython程序的模塊化劃分和調(diào)用思維;

      1.掌握Python第三方庫xlrd打開Excel表格,讀取表格數(shù)據(jù)的操作;

      2.掌握Python第三方庫wordcloud的安裝方法,學(xué)會使用WordCloud接口繪制云圖;

      3.掌握imageio庫加載圖片的功能。

      實(shí)驗要求

      獨(dú)立完成xlrd、wordcloud和imageio庫的安裝和測試;

      1.獨(dú)立學(xué)習(xí)三個庫的基本使用方法和注意事項;

      2.獨(dú)立完成參考代碼的編寫和調(diào)試工作,并在參考代碼的基礎(chǔ)上做一定的改進(jìn);

      3.記錄實(shí)驗過程和改進(jìn)內(nèi)容,并獨(dú)立撰寫實(shí)驗報告。

      實(shí) 驗 原 理

      lrd是Python的第三方庫,主要用來操作Excel表格的庫之一,可以通過data = xlrd.open_workbook(filename)函數(shù)來打開名為filename的Excel表格并將打開的表格賦值給data變量。

      實(shí)驗儀器、材料

      計算機(jī)、Python解釋器、Python開發(fā)環(huán)境

      實(shí)驗內(nèi)容及過程記錄

      1.需求分析

      2.算法設(shè)計與驗證

      3.程序流程圖

      4.程序的編寫

      5.import xlrd

      6.import wordcloud #引用庫,需要wheel協(xié)助

      7.import imageio

      8.9.#打開excel表,并讀取表中的數(shù)據(jù)

      10.def read_xlrdFile(excelFile):

      11.data = xlrd.open_workbook(excelFile)

      12.table = data.sheet_by_index(0)

      13.datals = []

      14.for rowNum in range(table.nrows):

      15.if rowNum >= 5:

      16.rowValues = table.row_values(rowNum)

      17.datals.append(rowValues[2][0])#獲取學(xué)生名稱的姓氏

      18.return datals

      19.20.#調(diào)用wordcloud模塊進(jìn)行云圖繪制

      21.def drawWordcloud(excelFile, maskFile):

      22.mask = imageio.imread(maskFile)#讀取圖片,并設(shè)置云圖顯示的形狀

      23.datals = read_xlrdFile(excelFile)

      24.txt = ” “.join(datals)

      25.w = wordcloud.WordCloud(font_path=”msyh.ttc“, width=1000, height=700, background_color=”white“, mask=mask)

      26.w.generate(txt)

      27.w.to_file(excelFile[:-4]+”.png“)#輸出云圖的名稱和格式

      28.29.#當(dāng)前目錄下“機(jī)械類2班花名冊.xls”作為數(shù)據(jù)源,“./心形圖片.jpg”作為繪制圖形模板進(jìn)行繪制云圖

      30.drawWordcloud(”./機(jī)器人2班花名冊.xls“, ”./心形圖片.jpg“)#需要找到圖片路徑

      結(jié)果與分析

      ”“

      教師評閱意見

      實(shí)驗成績

      □優(yōu) □良 □中 □及格 □不及格 得分:

      下載Python學(xué)習(xí)心得&總結(jié)(優(yōu)秀范文五篇)word格式文檔
      下載Python學(xué)習(xí)心得&總結(jié)(優(yōu)秀范文五篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        什么是Python演講稿(精選五篇)

        選擇使用Python的第一大原因就是,Python的應(yīng)用范圍廣泛:編寫游戲,創(chuàng)建Web應(yīng)用程序,解決商業(yè)問題以及提供各類有趣的公 ......

        我的Python學(xué)習(xí)經(jīng)驗

        Python經(jīng)常出現(xiàn)的錯誤,Python作為語言是一中對縮進(jìn)非常敏感的語言,給很多初學(xué)者帶來了困惑,即便是很有經(jīng)驗的Python程序員,也可能陷入陷阱當(dāng)中。最常見的情況是tab和空格的混用......

        HTTP協(xié)議以及Python開發(fā)技巧

        TTPYTHONhttp協(xié)議的相關(guān)知識應(yīng)該都很清楚,這里簡單回顧下其流程。首先HTTP底層是利用TCP進(jìn)行通訊的;其次,HTTP本身協(xié)議是面向無連接的:限制每次連接只處理一個請求,服務(wù)器處理完......

        英語學(xué)習(xí)心得總結(jié)(優(yōu)秀范文五篇)

        就我個人學(xué)習(xí)英語的經(jīng)歷而言,也曾是多次放棄、重來;再放棄,再重來。開始都是懷著積極的心態(tài),投入到英語學(xué)習(xí)的戰(zhàn)斗中去。恨不能一天之內(nèi)就要學(xué)會兩課書、三課書。一個月就要學(xué)完......

        利用python輕松玩轉(zhuǎn)Excel,完成數(shù)據(jù)分析與統(tǒng)計,學(xué)習(xí)心得分享

        利用python輕松玩轉(zhuǎn)Excel,完成數(shù)據(jù)分析與統(tǒng)計,學(xué)習(xí)心得分享 寫在前面這是我學(xué)習(xí)python寫的第一個完整的腳本過程大概是從一頭懵逼,到滿是問題,再到一個個解決問題我沒有系統(tǒng)的學(xué)......

        Python語句、函數(shù)與方法的使用技巧總結(jié)

        Python語句、函數(shù)與方法的使用技巧總結(jié) 顯示有限的接口到外部 當(dāng)發(fā)布python第三方package時,并不希望代碼中所有的函數(shù)或者class可以被外部import,在__init__.py中添加__all_......

        Python為什么這么火熱,粵嵌總結(jié)有這幾個原因

        Python為什么這么火熱,粵嵌總結(jié)有這幾個原因 Python為什么這么火熱,除了去年人工智能的帶動,Python本身也具有自己的優(yōu)勢,在不久之前IEEE Spectrum發(fā)布了第四屆頂級編程語言交......

        17個新手常見Python運(yùn)行時錯誤

        17個新手常見Python運(yùn)行時錯誤 來源:OSChina作者:彭博發(fā)表于:2012-07-31 12:53當(dāng)初學(xué) Python 時,想要弄懂 Python 的錯誤信息的含義可能有點(diǎn)復(fù)雜。這里列出了常見的的一些讓你程......