青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Sunshine Alike

半完美主義

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  35 Posts :: 1 Stories :: 56 Comments :: 0 Trackbacks

常用鏈接

留言簿(15)

積分與排名

  • 積分 - 51326
  • 排名 - 451

最新隨筆

最新評論

突然一時興起找了個Python的Tutorial看了一下下,哈哈,感覺非常好,很小巧很討喜的語言,比較有特點。第一印象是很簡單,語法簡潔而又功能強大,準(zhǔn)備要嘗試學(xué)一下。

下面貼一點學(xué)習(xí)的筆記:

一、基本知識
Python同時即是腳本解釋器,又是一個可以運行命令行的shell。在shell里可以計算任務(wù)Python表達式,甚至包括變量賦值,這些變量在shell打開時一直有效,關(guān)閉時丟失數(shù)據(jù)。

函數(shù)聲明,以def開始,函數(shù)名,參數(shù),冒號后面跟函數(shù)體。需要注意的是Python里的格式都以縮進的形式來表達,沒有類C/C++中的大括號。另外函數(shù) 不需要指定返回值類型,實際上,如果函數(shù)有return語句,它將返回指定類型值,否則返回None(Python的空值)。

Python即是動態(tài)語言,它不需要顯示數(shù)據(jù)類型聲明,賦值的同時即完成變量聲明。又是強類型語言,一個變量一旦獲得一個數(shù)據(jù)類型,它實際上就一直是這個類型的了。

Python里的“對象”概念,這里的“對象”不同于以前接觸到的OO里的對象,Python里的對象定義更為廣泛。一個程序塊,一個變量,甚至一個字符串都可以是一個對象。其具體含義還需要根據(jù)上下文來判斷。

三種重要的內(nèi)置數(shù)據(jù)類型:Dictionary,List,Tuple:
Dictionary對應(yīng)于C++中的map和Java中的hashtable,也就是一個鍵值對集合。
List對應(yīng)于C++中的vector和java中的ArrayList,一個可以動態(tài)自動擴展的數(shù)組。
Tuple是一個不可變的list,一旦創(chuàng)建就不能以方式改變它,但是好在Python提供了在Tuple和List之間相互轉(zhuǎn)換的函數(shù)。
需要注意的是List和Tuple是可以存儲混合類型的數(shù)組的,并且都可以通過索引取值(包括負的索引值,其表示從逆序取值)

For語句:

Python里的for語句不同于C/C++中的for,更類似于C#中的foreach循環(huán)或者是Java中的for (int i : IntArray)。Python的for語句需要配合一個range函數(shù)使用,它有三個參數(shù),并返回一個Tupe數(shù)組用于表示索引,三個參數(shù)是start,stop,step,例如range(0,5,1)則返回[0,1,2,3,4];range(5,0,-1)則返回[5,4,3,2,1]。

字符串格式化:
與C中類似%d,%f,%s等等,通過字符串的join函數(shù)可以方便的將list的內(nèi)容合并成字符串。

and/or:
and和or負責(zé)執(zhí)行布爾邏輯運算,但是它們不返回布爾值而是返回它們實際進行比較的值之一。非空的對象被認(rèn)為是真,空對象則被認(rèn)為是假。and運算會返回第一個假值,而or運算返回第一個真值,其它部分都不會被計算到

lambda函數(shù):
一種快速定義的單行最小函數(shù),只有一行,類似于內(nèi)聯(lián)的感覺。例如一個例子:
ld = lambda i : i*i
ld(10) # == 100
理論上lambda函數(shù)可以有多個參數(shù)(包括可選參數(shù))并且隱含的返回單個表達式的值。

兩種導(dǎo)入(import)方法:

Python中有兩種導(dǎo)入模塊的方法: import xx / from xx import yy

它們的差別在于,from xx import yy這種方式,yy被直接導(dǎo)入到了局部命名空間中(類似于C++中的using),在以后使用yy的時候不再需要(不能)加上模塊名稱限定。也就是說,如果使用import方式導(dǎo)入模塊,在使用 它里面的一個變量的時候,你不得不每次都加上前綴xx.來表示使用的是位于xx模塊中的變量,而使用from導(dǎo)入時,則不需要加入前綴。

異常處理:
Python中使用try...except來處理異常,使用raise來引發(fā)異常。并且,一個except后面可以跟一個else塊來表示沒有捕獲預(yù)期異常時的行為。一個try塊后面也可以跟一個finally塊來保證一些代碼總是被執(zhí)行到,比如打開文件后的關(guān)閉操作。

注釋:
Python里使用#來作為單選注釋開始符,使用三個冒號作為多行注釋"""content""",
需要注意的是后一種形式的注意經(jīng)常被用來作為函數(shù)或者類的"說明",寫在這里的內(nèi)容可以被其使用者當(dāng)作參考手冊來使用,Ptyhon里所有對象都具有一個內(nèi)置的__doc__屬性,通過它可以查看各個對象的說明,應(yīng)該養(yǎng)成寫__doc__的習(xí)慣。一般其格式為首行以大寫字母開始,句號結(jié)尾。第二行是空行,從第三行開始是詳細的描述

引號:
Python里有單引號,雙引號和三引號。其中單引號和雙引號都可以用來表示字符串,例如
print 'string' == "string" 將會打印出True
設(shè)置這兩種字符串引號的目的是為了簡化引號的表示,例如如果字符串里含有引號本身就需要使用\來進行標(biāo)識,例如:'let\'s go!',“he said:\"get out!\"”。
如果字符串里含有大量這種情況會顯得非常麻煩,可以交替使用單引號和雙引號來避免這種情況。上面的例子可以改為:"let's go!",'he said:"get out!"'。
而三引號就是用來表示一個多行字符串。它們經(jīng)常被用來定義文檔字符串,它的首行以大寫字母開始,句號結(jié)尾。第二行是空行,從第三行開始是詳細的描述。建議從一開始就遵守這個慣例。

二、面向?qū)ο?/font>

類的定義:
以class開頭,pass表示結(jié)束(實際上沒有特定的u),例如一個簡單的類定義為
class Person:
??? pass
如果要表示繼承關(guān)系只需要將基類用括號回到類名后面即可,Python支持多重繼續(xù),每個基類中間以逗號隔開。
class Student(Person):
? pass
這里的pass語句僅表示占位之用,沒有特別的含義。

類成員定義:
__init__方法,這個函數(shù)的功能很類似于Java或者C++中的構(gòu)造函數(shù),但是仍存在一點細小的差別,__init__函數(shù)的第一個參數(shù)一定是self,類似于C++中的this指針。
__init__方法的定義并不是必須的,但是一旦你定義了它,就必須顯示的調(diào)用父類的__init__方法。
需要注意的是,所有的類成員方法都必須定義一個參數(shù)(self)但它的名字不是一定的,其作用類似于C++中的this指針。
__del__方法,類似于析構(gòu)函數(shù),在使用del語句的時候被調(diào)用。

重載:
Python的類沒有任何形式的函數(shù)重載,即一個方法名稱只能對應(yīng)一個方法,如果子類中定義的與基類中同名的方法,則會將其覆蓋掉。

成員屬性:
Python中有兩種類型的成員方法:普通類方法和專用類方法
成員也有兩種訪問級別:公開的和私有的
其中公開和私有成員的表示沒有特別的關(guān)鍵字,只是體現(xiàn)的方法名稱上,私有成員的名稱以兩個短小的下劃線作為開始例如:
class A:
? __privatevalue
? publicvalue
? def __set(self, v):
??? __privatevalue = v
? def get(self):
??? return publicvalue
? pass
并且,一個成員是屬于類的還是屬于對象的,是通過定義這個變量的域來確定的,定義在類體內(nèi)的變量由所有成員共享,通過self定義的變量則為成員變量。
此外,類的成員方法還分為:普通類方法和專用類方法。普通方法的定義與普通函數(shù)定義類似,它是公開的,在類外部可以被調(diào)用。而類的專用方法,沒有特殊的關(guān)鍵字來表示,只是在方法的名稱前后各加上兩個短的下劃線,例如def __getitem__。這種專用方法是由用戶顯式調(diào)用的,它有點操作符重載的意思在里面,但是功能比操作符重載要強大一些。Python允許我們自己定義需要的類專用方法,例如任何定義了__cmp__方法的類就可以用==進行比較,任何定義了__len__方法的類就可以用len(instance)進行取長度。

三、標(biāo)準(zhǔn)庫
1.文件操作
Python中有一個內(nèi)置函數(shù)open可以用來打開文件
file = open("pictures/dog.bmp","rb")
open函數(shù)可以接受三個參數(shù):文件名,模式和緩沖區(qū)參數(shù),但是只有每一個參數(shù)是必須的,文件會默認(rèn)以文本方式打開。
文件的讀取和C中類似,tell()返回當(dāng)前文件位置,seek來移動文件操作的位置。具體的函數(shù)使用方法可以使用print seek.__doc__來查看

處理I/O錯誤:
try:
? file = open(filename, "rb", 0)
? try:
??? file.seek(-128,2)
??? data = file.read(128)
??? file.seek(0,2)
??? file.write("succeeded")
??? finally:
????? file.close()
? expect IOError:
??? pass

Python提供了一個os.path模塊來進行目錄操作,具體使用方法就不詳細寫出來了,用過幾次就記住了。

2.序列化
標(biāo)準(zhǔn)庫里有兩個模塊都提供這個功能,picklecPickle,用于將對象存儲到文件中而后再讀取出來。
但是后者是使用C語言寫的,速度要比前面的快很多,但是功能都是一樣的。
使用也很簡便主要就是使用dump和load函數(shù)

------------------待續(xù)----------------


posted on 2010-03-30 22:34 Sunshine Alike 閱讀(981) 評論(0)  編輯 收藏 引用 所屬分類: Python

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            韩国av一区二区三区四区| 久久九九99视频| 另类春色校园亚洲| 久久精品动漫| 欧美成人激情在线| 亚洲国产欧美一区| 欧美激情成人在线| 夜夜嗨av一区二区三区| 午夜精品成人在线视频| 久久精视频免费在线久久完整在线看| 久久人人97超碰国产公开结果| 欧美成人第一页| 欧美日韩综合在线| 狠狠色丁香久久婷婷综合丁香| 亚洲国产日韩欧美综合久久| 在线一区二区三区四区| 久久久噜噜噜久久久| 亚洲日韩成人| 午夜日本精品| 欧美伦理a级免费电影| 国产视频亚洲精品| 夜夜爽www精品| 久热爱精品视频线路一| av不卡在线看| 久久婷婷国产综合国色天香| 欧美三日本三级少妇三99| 在线精品视频免费观看| 亚洲一区二区三区在线播放| 媚黑女一区二区| 亚洲男女自偷自拍| 欧美日韩国产成人在线免费 | 国产精品99久久久久久www| 久久激情五月婷婷| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久 | 欧美一区影院| 蜜桃av一区二区在线观看| 亚洲最新色图| 免费成人在线视频网站| 国产精品亚洲а∨天堂免在线| 亚洲人成毛片在线播放女女| 久久久久九九视频| 午夜精品区一区二区三| 国产精品久久久久久久久免费樱桃| 亚洲国产精选| 欧美www在线| 久久久夜精品| 亚洲高清久久网| 麻豆精品视频在线观看| 欧美一区二区三区免费视频| 国产精品女主播在线观看| 亚洲视频日本| 亚洲免费观看在线观看| 欧美精品综合| 99视频热这里只有精品免费| 亚洲风情亚aⅴ在线发布| 久久免费一区| 亚洲大胆av| 亚洲高清激情| 欧美成人高清| 一区二区av| 一区二区三区国产精华| 欧美色图五月天| 午夜精品久久久久| 午夜精品国产更新| 黄色在线成人| 欧美激情国产日韩精品一区18| 玖玖玖国产精品| 亚洲国产欧美一区二区三区久久| 欧美激情第9页| 欧美日韩国产91| 亚洲欧美日韩国产中文| 午夜在线精品| 亚洲国产精品视频| 亚洲精品久久久久久久久久久久久| 欧美日韩精品欧美日韩精品| 亚洲一区二区三区色| 午夜精品福利一区二区蜜股av| 国模一区二区三区| 欧美激情第五页| 国产精品久久久久久影视| 久久久精品动漫| 欧美激情二区三区| 欧美一区二区三区日韩| 久久综合九色九九| 亚洲一区二区成人在线观看| 欧美一区二区精品久久911| 亚洲欧洲视频在线| 亚洲一区二区三区在线| 亚洲黄色三级| 亚洲在线一区| 亚洲人成在线播放网站岛国| 亚洲香蕉成视频在线观看| 在线精品国精品国产尤物884a| 亚洲久久一区| 极品日韩久久| 国产精品r级在线| 亚洲第一在线视频| 一本一本久久a久久精品综合麻豆| 国产精品推荐精品| 欧美国产视频一区二区| 国产精品毛片a∨一区二区三区|国 | 欧美成人免费一级人片100| 欧美母乳在线| 久久久国产精彩视频美女艺术照福利| 鲁大师成人一区二区三区| 午夜精品区一区二区三| 欧美成人激情视频免费观看| 欧美一区国产二区| 欧美日韩国产成人在线91| 老司机免费视频一区二区| 欧美午夜精品久久久| 亚洲国产精品美女| 狠狠色伊人亚洲综合成人| 亚洲综合成人在线| 亚洲免费视频观看| 欧美日韩成人在线播放| 欧美暴力喷水在线| 国产欧美一区二区三区沐欲| 亚洲毛片在线看| 亚洲精品久久久蜜桃| 老**午夜毛片一区二区三区| 久久精品国产999大香线蕉| 国产精品美女久久福利网站| 亚洲精品在线二区| 亚洲精品日韩激情在线电影| 久久综合九色九九| 欧美不卡在线视频| 影音先锋中文字幕一区| 久久成人免费电影| 久久人人97超碰国产公开结果| 国产精品www网站| 99热在这里有精品免费| 亚洲一区二区欧美| 欧美午夜无遮挡| 亚洲私人影院| 久久动漫亚洲| 一区视频在线看| 久久久成人精品| 欧美h视频在线| 亚洲开发第一视频在线播放| 欧美激情成人在线| 中文高清一区| 性色av香蕉一区二区| 国产日本欧美在线观看 | 老司机精品视频网站| 欧美aⅴ一区二区三区视频| 1204国产成人精品视频| 鲁鲁狠狠狠7777一区二区| 欧美阿v一级看视频| 日韩视频免费观看高清在线视频| 欧美精品日韩一区| 亚洲一区不卡| 蜜臀久久99精品久久久久久9| 亚洲观看高清完整版在线观看| 欧美成人激情在线| 亚洲欧洲在线看| 国产色综合久久| 日韩视频在线观看| 午夜精品久久久久久久久久久久| 国产精品美女主播| 欧美一区二区在线播放| 欧美激情黄色片| 亚洲欧美国产一区二区三区| 国产在线精品成人一区二区三区| 久久久蜜臀国产一区二区| 91久久在线| 久久久久国产精品厨房| 亚洲精品乱码久久久久久蜜桃91| 欧美手机在线视频| 久久国产精品网站| 日韩一级黄色大片| 久久夜色精品国产欧美乱极品| 日韩一区二区精品在线观看| 国产毛片久久| 欧美日韩国产高清| 久久久xxx| 亚洲一区二区三区777| 欧美国产日本高清在线| 欧美一级电影久久| 亚洲欧洲日韩女同| 国产一区二区在线免费观看| 欧美日韩国产精品| 久久综合给合| 欧美一区二区三区在线免费观看| 亚洲欧洲一区| 免费中文字幕日韩欧美| 性感少妇一区| 亚洲天堂免费观看| 亚洲人成亚洲人成在线观看图片 | 91久久在线| 国产一区二区无遮挡| 欧美三级午夜理伦三级中视频| 久久精品国产精品| 亚洲天堂免费观看| 亚洲激情一区二区| 免费观看成人网| 久久精品国产一区二区电影| 一区二区三区你懂的| 亚洲精品美女久久7777777| 亚洲成人自拍视频|