Day1
Python簡介
Python,是一種面向對象的解釋型計算機程序設計語言舟茶,由荷蘭人Guido van Rossum于1989年發(fā)明吧凉,第一個公開發(fā)行版發(fā)行于1991年踏志。1989年圣誕節(jié)期間,在阿姆斯特丹饲鄙,Guido為了打發(fā)圣誕節(jié)的無趣圆雁,決心開發(fā)一個新的腳本解釋程序,做為ABC語言的一種繼承轴咱。之所以選中Python(大蟒蛇的意思)作為該編程語言的名字烈涮,是因為他是一個叫Monty Python的喜劇團體的愛好者。Python開發(fā)者的思路是“用一種方法戈稿,最好只有一種方法來做一件事”(There should be one-- and preferably only one—obvious way todo it)讶舰。在設計Python語言時需了,如果面臨多種選擇援所,Python開發(fā)者一般會拒絕花哨的語法欣除,而選擇明確沒有或者很少有歧義的語法。
Python語言特點:
簡單—Python是一種代表簡單主義思想的語言
簡潔—可以使用比JAVA滔岳、C++更少的代碼量實現(xiàn)同樣的功能
易學—Python有極其簡單的語法
優(yōu)雅—強制縮進使得程序更加清晰和美觀
解釋性—編譯性語言(C谱煤、C++)源文件經(jīng)過編譯器編譯成機器代碼的可執(zhí)行文件禽拔,再執(zhí)行;Python程序不需要編譯成二進制代碼硫惕,你可以直接從源代碼運行程序野来,在計算機內部,Python解釋器把源代碼轉換成稱為與平臺無關的字節(jié)碼的中間形式豁辉,然后再把它翻譯成計算機使用的機器語言并執(zhí)行舀患,而不是將其編譯成底層的二進制代碼,這個特性也決定Python的主要“缺點”灰追,執(zhí)行速度趕不上C狗超、C++。
面向對象—Python既支持面向過程的編程也支持面向對象的編程苦蒿,在“面向過程”的語言中渗稍,程序是由實現(xiàn)功能的函數(shù)構建起來的团滥;在“面向對象”的語言中灸姊,程序是由數(shù)據(jù)和功能組合而成的對象構建起來的秉溉,與JAVA類似,Python的所有元素父晶,均是對象
豐富的庫—Python標準庫很龐大弄跌,它可以幫助你處理各種工作,包括正則表達式埠胖、文檔生成淳玩、單元測試、線程、數(shù)據(jù)庫汽馋、網(wǎng)頁瀏覽器、FTP悄雅、電子郵件宽闲、XML、WAV文件容诬、GUI和其他與系統(tǒng)有關的操作
免費览徒、開源—Python是FLOSS(自由/開放源碼文件)之一颂龙。簡單的說纽什,你可以自由的發(fā)布這個軟件的拷貝躲叼、閱讀它的源代碼、對它做改動让蕾、把它的一部分用于新的自由軟件中
可移植性—由于它的開源本質涕俗,Python已經(jīng)被移植到許多平臺上神帅,你只需要把你的Python程序拷貝到另外一臺計算機上,它就可以工作了元镀。
可擴展性—在Python中嵌入其他語言(C霎桅、C++等等)。
較低的開發(fā)調試成本—在文本編輯器中編輯遇革,在shell下執(zhí)行揭糕,或者直接在shell下執(zhí)行代碼。
Python語法:
縮進:Python中不使用{ }(C語言經(jīng)典語法格式)作為函數(shù)和語句塊的分界線揪漩,而是用縮進來區(qū)分語句塊吏口,用不同的縮進代表不同的代碼塊的邏輯層次
注釋:在語句開始處使用“#”作為注釋,C語言中是//或/*……*/
三種引入方式:
1. import modulename:引入整個module昂勒,但是使用庫的函數(shù)或者類時舟铜,需要以modulename.func()或者modulename.class()形式使用;
2. from modulename import*:引入整個模塊
3. from modulename import XX:引入模塊的部分內容其中2和3奕谭,可以不加modulename直接使用函數(shù)名
Python函數(shù):
Python的函數(shù)支持遞歸、默認參數(shù)值官册、可變參數(shù)难捌,但不支持函數(shù)重載;使用關鍵字”def”作為函數(shù)定義的開始员淫,使用”:”做函數(shù)名的結束击敌,函數(shù)無需申明(解釋性的特性)
Python采用動態(tài)類型系統(tǒng),在編寫代碼的時候圣蝎,可以不顯式的指定變量的類型衡瓶,Python自動識別變量類型;支持強制類型轉換关面;Python本身是強類型的十厢,操作符和函數(shù)執(zhí)行是需要關注變量類型的
變量類型:Str、List澈驼、Tuple筛武、Set挎塌、Dict、Int待锈、Float嘴高、Bool和屎、Complex
List類型:List類型是一個元素的有序集合柴信,列表中的元素的數(shù)據(jù)類型可以各不相同宽气,使用“[]”來定義。例如:[1,2,3,4]绪氛、[‘strA’, ‘strB’, ‘strC’]涝影、[‘span’, 2, 0.5, [10, 20]]
可對List類型對象操作的函數(shù):
append:用于在列表末尾追加一個新的元素,列表調用該方法后询件,直接被該方法修改唆樊;
count:用于統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù);
extend:在列表的末尾一次性追加另一個列表中的多個元素嘿辟,該方法也是直接修改原列表片效,這也是與列表連接操作的區(qū)別;
index:找出某個匹配項第一次出現(xiàn)的索引昙读;
insert:在列表中插入新的對象膨桥;
pop:移出列表中的一個值(默認是最后一個),并返回該元素的值沮稚;
remove:用于移除某個值在列表中的第一個匹配項册舞;
reverse:將列表中的值反向存取盛杰;
sort:對列表進行排序;
sorted內建函數(shù):對序列進行反序徐伐,并返回一個列表募狂;
元組(Tuple):
元組與列表相似,也支持元素為不同數(shù)據(jù)類型性穿,但元組的元素是不可變的雷滚,元組一旦創(chuàng)建,用任何方法都不可以修改其元素祈远。使用“( )”來定義,(10, 20, 30), (‘str1”, 2.0, 1)
字典類型:(dict)字典是鍵值對的無序集合谋减,字典中每個元素都包含兩個部分:鍵和值扫沼,向字典中添加一個鍵的同時,必須為該鍵添加一個值缎除,實際使用中器罐,只可以使用鍵來查詢值使用“{ }”定義,{‘key1’:’Value1’, ‘server’:’jboss