《Python語(yǔ)言教程》課件(共十二章)_第1頁(yè)
《Python語(yǔ)言教程》課件(共十二章)_第2頁(yè)
《Python語(yǔ)言教程》課件(共十二章)_第3頁(yè)
《Python語(yǔ)言教程》課件(共十二章)_第4頁(yè)
《Python語(yǔ)言教程》課件(共十二章)_第5頁(yè)
已閱讀5頁(yè),還剩612頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

ISBN:978-7-111-59261-7

Python語(yǔ)言是一種功能強(qiáng)大的跨平臺(tái)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,是目前應(yīng)用最為廣泛的計(jì)算機(jī)語(yǔ)言之一。它具有簡(jiǎn)單易學(xué)、面象對(duì)象、跨平臺(tái)、交互解釋、模塊庫(kù)豐富、應(yīng)用廣泛等特點(diǎn)。第1章Python概述學(xué)習(xí)重點(diǎn)和難點(diǎn):程序設(shè)計(jì)語(yǔ)言與Python語(yǔ)言簡(jiǎn)介Python語(yǔ)法概述安裝Python與常用編輯器Python程序運(yùn)行示例學(xué)習(xí)本章后將對(duì)Python語(yǔ)言及Python語(yǔ)言程序有初步認(rèn)識(shí),并能開(kāi)展Python語(yǔ)言程序的運(yùn)行實(shí)踐。整體上認(rèn)識(shí)與把握Python語(yǔ)言是學(xué)習(xí)它的第一步吧。第1章Python概述1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介1.2Python語(yǔ)言簡(jiǎn)介1.3安裝Python1.4常用編輯器1.5Python語(yǔ)法概述1.6應(yīng)用實(shí)例第1章C語(yǔ)言概述語(yǔ)言?程序?程序設(shè)計(jì)?自從第一臺(tái)計(jì)算機(jī)誕生以來(lái),程序設(shè)計(jì)語(yǔ)言和程序設(shè)計(jì)方法不斷發(fā)展。語(yǔ)言是思維的載體。人和計(jì)算機(jī)打交道,必須要解決一個(gè)“語(yǔ)言”溝通的問(wèn)題。計(jì)算機(jī)并不能理解和執(zhí)行人們使用的自然語(yǔ)言,而只能接受和執(zhí)行二進(jìn)制的指令。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的這種指令,稱(chēng)為機(jī)器指令,這種機(jī)器指令的集合就是機(jī)器語(yǔ)言指令系統(tǒng),簡(jiǎn)稱(chēng)為機(jī)器語(yǔ)言。為了解決某一特定問(wèn)題,需要選用指令系統(tǒng)中的某一些指令,這些指令按要求選取并組織起來(lái)就組成一個(gè)“程序”。書(shū)上有8086指令系統(tǒng)對(duì)應(yīng)的二進(jìn)制代碼程序,能完成兩個(gè)十六進(jìn)制數(shù)相加的功能。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介為了繞開(kāi)機(jī)器指令,克服機(jī)器指令程序的缺陷,人們提出了程序設(shè)計(jì)語(yǔ)言的構(gòu)想,即使用人們熟悉、習(xí)慣的語(yǔ)言符號(hào)來(lái)編寫(xiě)程序,最好是直接使用人們間交流的自然語(yǔ)言來(lái)編程。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介這是程序設(shè)計(jì)語(yǔ)言的努力方向之一高級(jí)語(yǔ)言類(lèi)似自然語(yǔ)言(主要是英語(yǔ)),由專(zhuān)門(mén)的符號(hào)根據(jù)詞匯規(guī)則構(gòu)成單詞,由單詞根據(jù)句法規(guī)則構(gòu)成語(yǔ)句,每種語(yǔ)句有確切的語(yǔ)義并能由計(jì)算機(jī)解釋。高級(jí)語(yǔ)言包含許多英語(yǔ)單詞,有“自然化”的特點(diǎn);高級(jí)語(yǔ)言書(shū)寫(xiě)計(jì)算式子接近于熟知的數(shù)學(xué)公式的規(guī)則。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介如TurboC2.0(簡(jiǎn)稱(chēng)TC)為第三代高級(jí)語(yǔ)言,而VB6.0、VC++6.0、C#、VB.NET、Java等可認(rèn)為是第四代高級(jí)語(yǔ)言。第四代高級(jí)語(yǔ)言一般是具有面向?qū)ο筇匦?、具有快速或自?dòng)生成部分應(yīng)用程序能力的高級(jí)語(yǔ)言,它表達(dá)能力強(qiáng),編寫(xiě)程序效率高,更接近人的使用語(yǔ)言,高一級(jí)別的語(yǔ)言一般具有低一級(jí)別語(yǔ)言的語(yǔ)言表達(dá)能力。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介

如下是輸入兩個(gè)整數(shù)并隨即顯示兩整數(shù)之和的Python語(yǔ)言程序:num1=input("Inputintegernumber1:");#提示并輸入num1的值num2=input("Inputintegernumber2:");#提示并輸入num2的值num12=int(num1)+int(num2)

#計(jì)算兩整數(shù)之和print("Thesumis%d\n"%num12);#屏幕上顯示兩整數(shù)之和顯然,高級(jí)語(yǔ)言程序要比面向機(jī)器的低級(jí)語(yǔ)言要易懂、明了、簡(jiǎn)短得多。1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)介Python由GuidovanRossum于1989年底開(kāi)始研制,經(jīng)過(guò)近30年的發(fā)展,Python已經(jīng)滲透應(yīng)用到各行各業(yè)。Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類(lèi)型的高級(jí)程序設(shè)計(jì)語(yǔ)言。像Perl語(yǔ)言一樣,Python源代碼同樣遵循GPL(GNUGeneralPublicLicense)協(xié)議。1.2Python語(yǔ)言簡(jiǎn)介1、Python發(fā)展歷史

Python是由GuidovanRossum在八十年代末和九十年代初,在荷蘭國(guó)家數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究所設(shè)計(jì)出來(lái)的。Guido希望創(chuàng)造一種C和shell之間,功能全面,易學(xué)易用,可拓展的語(yǔ)言。Python本身也是由諸多其他語(yǔ)言發(fā)展而來(lái)的,這包括ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unixshell和其他的腳本語(yǔ)言等等。像Perl語(yǔ)言一樣,Python源代碼同樣遵循GPL(GNUGeneralPublicLicense)協(xié)議。1.2Python語(yǔ)言簡(jiǎn)介Python2.6-2008/10/1Python2.7-2010/07/03Python3.0-2008/12/03Python3.1-2009/06/27Python3.2-2011/02/20Python3.3-2012/09/29Python3.4-2014/03/16Python3.5-2015/09/13Python3.6-2016/12/231.2Python語(yǔ)言簡(jiǎn)介各版本發(fā)行日期現(xiàn)在Python是由一個(gè)核心開(kāi)發(fā)團(tuán)隊(duì)在維護(hù),GuidovanRossum仍然重要參與。2014年11月,Python2.7將在2020年停止支持的消息被發(fā)布,并且不會(huì)再發(fā)布2.8版本,建議用戶(hù)盡可能的遷移到3.4及后續(xù)版本。Python最初發(fā)布時(shí),在設(shè)計(jì)上有一些缺陷,比如Unicode標(biāo)準(zhǔn)晚于Python出現(xiàn),所以一直以來(lái)對(duì)Unicode的支持并不完全,而ASCII編碼支持的字符有限。例如:對(duì)中文支持不好。1.2Python語(yǔ)言簡(jiǎn)介

使用Python時(shí),如何知道其版本呢?

可以使用以下命令來(lái)查看Python版本:Python-V

譬如以上命令執(zhí)行結(jié)果為:Python3.6.0

也可以在命令窗口(Windows中開(kāi)始->運(yùn)行->輸入cmd)

中輸入Python進(jìn)入交互式編程模式,查看到版本信息:

Python3.6.0(v3.6.0:41df79263a11,Dec232016,07:18:10)[MSGv.190032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>

1.2Python語(yǔ)言簡(jiǎn)介2、Python特點(diǎn)Python是一種解釋型、面向?qū)ο?、?dòng)態(tài)數(shù)據(jù)類(lèi)型的高級(jí)程序設(shè)計(jì)語(yǔ)言,在計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的歷史演變中具有劃時(shí)代的意義。Python作為一種功能強(qiáng)大的通用型語(yǔ)言,其優(yōu)點(diǎn)有很多:1.2Python語(yǔ)言簡(jiǎn)介至少具有如下特性:(1)簡(jiǎn)單易學(xué),免費(fèi)開(kāi)源(2)擁有豐富的庫(kù)(3)可嵌入性(4)跨平臺(tái),可移植性(5)互動(dòng)模式,解釋型語(yǔ)言(6)具有便攜式特性(7)是面向?qū)ο笳Z(yǔ)言1.2Python語(yǔ)言簡(jiǎn)介3、Python應(yīng)用場(chǎng)合從YouTube到大型網(wǎng)絡(luò)游戲的開(kāi)發(fā),從動(dòng)畫(huà)設(shè)計(jì)到科學(xué)計(jì)算,從系統(tǒng)編程到原型開(kāi)發(fā),從數(shù)據(jù)庫(kù)到網(wǎng)絡(luò)腳本,從機(jī)器人系統(tǒng)到美國(guó)國(guó)家宇航局NASA的數(shù)據(jù)加密,都有Python的用武之地。1.2Python語(yǔ)言簡(jiǎn)介1、下載PythonPython最新源碼、二進(jìn)制文檔、新聞資訊等可以在Python的官網(wǎng)查看到,也可以在以下鏈接中下載Python的文檔,可以下載HTML、PDF和PostScript等格式的文檔。Python官網(wǎng):http://www.P/Python文檔下載地址:http:///doc/Python已經(jīng)被移植在許多操作系統(tǒng)平臺(tái)上。需要下載適用于自己使用平臺(tái)的二進(jìn)制代碼,然后安裝Python。以下是不同平臺(tái)上安裝Python的方法:1.3安裝Python2、Unix&Linux平臺(tái)安裝Python

以下為在Unix&Linux平臺(tái)上安裝Python的簡(jiǎn)單步驟:(1)打開(kāi)WEB瀏覽器訪問(wèn)http://www.P/download/。(2)選擇使用于Unix/Linux的源碼壓縮包。(3)下載及解壓壓縮包。(4)如果你需要自定義一些選項(xiàng)修改Modules/Setup(5)執(zhí)行./configure腳本(6)執(zhí)行make來(lái)編譯和執(zhí)行makeinstall來(lái)安裝1.3安裝Python安裝完成后開(kāi)始菜單中有Python3.6程序組如下圖1-4所示:

圖1-4Python3.6.0程序組點(diǎn)選“IDLE(Python3.632-bit)”功能菜單1.3安裝Python如下圖1-5所示啟動(dòng)IDLE(自帶PythonGUI):

圖1-5IDLE(Python3.632-bit)運(yùn)行界面點(diǎn)選“Python3.6(32-bit)”功能菜單1.3安裝Python啟動(dòng)如下圖1-6所示Python命令窗口:

圖1-6Python3.6命令窗口點(diǎn)選“Python3.6Manuals(32-bit)”功能菜單1.3安裝Python啟動(dòng)如下圖1-7所示Python幫助文檔:

圖1-7Python3.6幫助文檔點(diǎn)選“Python3.6ModuleDocs(32-bit)”功能菜單1.3安裝Python啟動(dòng)如下圖1-8所示Python模塊文檔:

圖1-8Python3.6模塊文檔點(diǎn)選“Python3.6其它操作系統(tǒng)平臺(tái)下安裝與運(yùn)行Python的情況類(lèi)似。1.3安裝Python4、環(huán)境變量配置

程序和可執(zhí)行文件可以在許多目錄,而這些路徑很可能不在操作系統(tǒng)提供可執(zhí)行文件的搜索路徑中。Path(路徑)存儲(chǔ)在環(huán)境變量中,這是由操作系統(tǒng)維護(hù)的一個(gè)命名的字符串。這些變量包含可用的命令行解釋器和其他程序的路徑信息。Unix或Windows中路徑變量為PATH(Unix區(qū)分大小寫(xiě),Windows則不區(qū)分)。1.3安裝Python

編寫(xiě)Python程序需要使用源程序編輯器。這里介紹幾款不錯(cuò)的Python集成開(kāi)發(fā)環(huán)境(PythonIDE),比較推薦PyCharm,當(dāng)然可以根據(jù)自己喜好來(lái)選擇適合的PythonIDE。1.4常用編輯器1、IDLE開(kāi)始菜單中,選擇IDLE(PythonGUI)運(yùn)行,這是一個(gè)Python編寫(xiě)的GUI程序,能在這個(gè)IDE程序里輸入、運(yùn)行Python命令或程序,能完成基本的編輯器與解釋器功能。下面輸出一條Python字符串,計(jì)算2個(gè)變量相加的值,并輸出在屏幕上面。1.4常用編輯器如上圖所示是Windows平臺(tái)上的PythonIDLE運(yùn)行情況,通常Linux系統(tǒng),如:Ubuntu、CentOS都已經(jīng)默認(rèn)隨系統(tǒng)安裝好Python程序了,在Linux類(lèi)系統(tǒng)中,可以在Terminal(Ctrl+Alt+T)中輸入:ls/usr/bin|greppython進(jìn)行查看。1.4常用編輯器2、PyCharmPyCharm是由JetBrains打造的一款PythonIDE。PyCharm具備一般PythonIDE的功能,比如:調(diào)試、語(yǔ)法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制等。另外,PyCharm還提供一些很好的功能用于Django(一個(gè)Web應(yīng)用框架)開(kāi)發(fā)。PyCharm官方下載地址:http:///pycharm/download/1.4常用編輯器PyCharm針對(duì)Windows、mscOS、Linux分別有PyCharmProfessional(專(zhuān)業(yè))與PyCharmCommunity(社區(qū)版,是免費(fèi)開(kāi)源的版本)兩個(gè)版本可選擇安裝。在Windows7下雙擊“pycharm-community-2017.1.exe”運(yùn)行安裝PyCharmCommunityEdition的過(guò)程見(jiàn)書(shū)本。1.4常用編輯器PyCharm運(yùn)行效果圖,可以進(jìn)行新建Python源程序文件,輸入源程序并調(diào)試運(yùn)行等一系列操作。1.4常用編輯器3、Eclipse+PydevEclipse+Pydev構(gòu)成Python的Eclipse編程環(huán)境。具體安裝、設(shè)置與使用情況詳見(jiàn)書(shū)本。1.4常用編輯器Python語(yǔ)言與Perl、C和Java等語(yǔ)言有許多相似之處。但是,也存在一些差異。Python程序可以交互命令式解釋執(zhí)行或腳本源程序方式解釋運(yùn)行。1.5Python語(yǔ)法概述1、交互式解釋執(zhí)行Python解釋器的交互模式,提示窗口如下:$python#這里$提示符,表示在Linux環(huán)境下運(yùn)行PythonPython2.7.6(default,Mar222014,22:59:56)[GCC4.8.2]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>

1.5Python語(yǔ)法概述在Python“>>>”提示符右邊輸入以下命令信息,然后按Enter鍵查看運(yùn)行效果:>>>print("Hello,Python!");#Python2.x也可:print"Hello,Python!";說(shuō)明:Python2.x是指Python2的多種版本,本書(shū)中是指Python2.7.6版本。輸出結(jié)果為:Hello,Python!1.5Python語(yǔ)法概述2、腳本式解釋運(yùn)行通過(guò)腳本源程序文件調(diào)用解釋器執(zhí)行腳本代碼,直到腳本執(zhí)行完畢。當(dāng)腳本執(zhí)行完成后,解釋器不再有效。所有Python程序文件將以“.py”為擴(kuò)展名。1.5Python語(yǔ)法概述【例1-1】先來(lái)寫(xiě)一個(gè)簡(jiǎn)單的Python腳本程序。將print("Hello,Python!");源代碼拷貝粘貼或輸入到test.py文件中。這里,假設(shè)已經(jīng)設(shè)置了Python解釋器PATH變量。使用以下命令運(yùn)行程序:$pythontest.py#python–h可獲得幫助信息輸出結(jié)果:Hello,Python!讓我們嘗試在Linux系統(tǒng)下,用另一種方式來(lái)執(zhí)行Python腳本。修改test.py文件,增加一條Python解釋器指示指令“#!/usr/bin/python”。1.5Python語(yǔ)法概述#!/usr/bin/pythonprint("Hello,Python!");這里,假定Python解釋器在/usr/bin目錄中,使用以下命令執(zhí)行腳本文件:$chmod+xtest.py#為程序文件test.py添加可執(zhí)行權(quán)限$./test.py

#類(lèi)似Linuxshell腳本方式解釋執(zhí)行Python源程序輸出結(jié)果:Hello,Python!1.5Python語(yǔ)法概述1.5.1程序結(jié)構(gòu)特點(diǎn)Python的程序由包(對(duì)應(yīng)文件夾)、模塊(即一個(gè)Python文件)、函數(shù)和類(lèi)(存在于Python文件)等組成。包是由一系列模塊組成的集合,模塊是處理某一類(lèi)問(wèn)題的函數(shù)和類(lèi)等的集合。1.5Python語(yǔ)法概述函數(shù)模塊1類(lèi)函數(shù)類(lèi)模塊n………包1、Python程序的構(gòu)架Python程序的構(gòu)架是指:將一個(gè)程序分割為源代碼文件的集合以及將這些部分連接在一起的方法。1.5Python語(yǔ)法概述2、模塊模塊是Python中最高級(jí)別的組織單元,它將程序代碼和數(shù)據(jù)封裝起來(lái)以便重用。其實(shí),每一個(gè)以擴(kuò)展名.py結(jié)尾的Python文件都是一個(gè)模塊。模塊的三個(gè)角色:(1)代碼重用;(2)系統(tǒng)命名空間的劃分(模塊可理解為變量名封裝,即模塊就是命名空間);(3)實(shí)現(xiàn)共享服務(wù)和共享數(shù)據(jù)。1.5Python語(yǔ)法概述

圖1-30描述了模塊內(nèi)的情況以及與其他模塊的交互,即模塊的執(zhí)行環(huán)境:1.5Python語(yǔ)法概述模塊可以被導(dǎo)入,模塊也會(huì)導(dǎo)入和使用其它模塊,而這些模塊可以是用Python或其它語(yǔ)言(如,C語(yǔ)言)寫(xiě)成的。3、import(導(dǎo)入)一個(gè)文件可通過(guò)導(dǎo)入一個(gè)模塊(文件)讀取這個(gè)模塊的內(nèi)容,即導(dǎo)入從本質(zhì)上講,就是在一個(gè)文件中載入另一個(gè)文件,并且能夠讀取那個(gè)文件的內(nèi)容。一個(gè)模塊內(nèi)的內(nèi)容通過(guò)這樣的特性(object.attribute)能夠被外界使用。導(dǎo)入是Python中程序結(jié)構(gòu)的重點(diǎn)所在。1.5Python語(yǔ)法概述(1)import模塊的四種方式1)importX:導(dǎo)入模塊X,并在當(dāng)前命名空間(Namesapce)創(chuàng)建該模塊的引用。2)fromXimport*:導(dǎo)入模塊X,并在當(dāng)前命名空間,創(chuàng)建該模塊中所有公共對(duì)象(名字不以__開(kāi)頭)的引用。3)fromXimporta,b,c:導(dǎo)入模塊X,并在當(dāng)前命名空間創(chuàng)建該模塊給定對(duì)象的引用。4)X=__import__('X'):類(lèi)似1)importX,區(qū)別在于:該方式顯式指定了X為當(dāng)前命名空間中的變量。使用方法同1)。1.5Python語(yǔ)法概述(2)import模塊時(shí),Python所做的行為import模塊時(shí),首先,Python解釋器會(huì)檢查moduleregistry(sys.modules)部分,查看是否該模塊先前就已經(jīng)導(dǎo)入,如果sys.modules中已經(jīng)存在(即已注冊(cè)),則使用當(dāng)前存在的模塊對(duì)象即可。如果sys.modules中還不存在,則:1)創(chuàng)建一個(gè)新的、空的模塊對(duì)象(本質(zhì)上是一個(gè)字典);2)在sys.modules字典中插入該模塊對(duì)象;3)加載該模塊代碼所對(duì)應(yīng)的對(duì)象(如果需要,可以先編譯好(編成位碼))。

然后在新的模塊命名空間、執(zhí)行該模塊代碼對(duì)象(CodeObject)。所有由該代碼指定的變量均可以通過(guò)該模塊對(duì)象引用。1.5Python語(yǔ)法概述(3)import搜索路徑順序import模塊時(shí),模塊搜索路徑順序一般為:1)程序的主目錄:即程序(頂層)文件所在的目錄(有時(shí)候不同于當(dāng)前工作目錄(指啟動(dòng)程序時(shí)所在目錄));2)PYTHONPATH(環(huán)境變量)預(yù)設(shè)置的目錄;3)標(biāo)準(zhǔn)鏈接庫(kù)目錄;4)任何.pth文件的內(nèi)容(如果存在的話):安裝目錄下找到該文件,以行的形式加入所需要的目錄即可。1.5Python語(yǔ)法概述4、簡(jiǎn)單的Python程序

【例1-2】簡(jiǎn)單的Python程序。(包含foo.py和demo.py兩個(gè)文件)#foo.py文件defadd(a,b):#定義add函數(shù)

returna+b#demo.py文件importfoo#導(dǎo)入模塊foo.pya=[1,'Python']a='astring'1.5Python語(yǔ)法概述deffunc():#定義func函數(shù)

a=1;b=257

print(a+b)print(a)if__name__=='__main__':

#表示當(dāng)模塊(本文件)被直接運(yùn)行時(shí),本條件成立;當(dāng)模塊(本文件)被import導(dǎo)入時(shí),本條件不成立

func()#函數(shù)調(diào)用

foo.add(1,2)

#注意:這里add函數(shù)相加和沒(méi)有被利用到(或被輸出)1.5Python語(yǔ)法概述執(zhí)行這個(gè)程序:Pythondemo.py輸出結(jié)果為:astring258Python將.py文件視為一個(gè)模塊,這些模塊中,有一個(gè)主模塊,也就是程序運(yùn)行的入口。在本例中,主模塊是demo.py。1.5Python語(yǔ)法概述1.5.2程序語(yǔ)法規(guī)則1、字符集Python2.x的默認(rèn)編碼是ASCII,不能識(shí)別中文字符,需要顯式指定字符編碼;Python3.x的默認(rèn)編碼為Unicode,可以識(shí)別中文字符。為表達(dá)字符或字符串的需要,Python程序中常要用到一類(lèi)字符的特殊表示方法,叫做轉(zhuǎn)義字符或轉(zhuǎn)義符。1.5Python語(yǔ)法概述

輸出若干轉(zhuǎn)義符的示例:print('\123')

#S大寫(xiě)字母Sprint('\x02')

#ASCII2對(duì)應(yīng)的控制符print("\N{SOLIDUS}")

#/斜杠符/print("\N{BLACKSPADESUIT}")

#?黑桃符print('\u3333')#?某中日韓字符集兼容中的字符print('\U00004e60')

#習(xí)漢字“習(xí)”1.5Python語(yǔ)法概述轉(zhuǎn)義序列意義注意事項(xiàng)\newline反斜線且忽略換行\(zhòng)\反斜線(\)\’單引號(hào)(’)\"

雙引號(hào)(”)\aASCIIBell(BEL)\bASCII退格(BS)\fASCII換頁(yè)符(FF)\nASCII換行符(LF)\rASCII回車(chē)符(CR)\tASCII水平制表符(TAB)\vASCII垂直制表符(VT)\ooo八進(jìn)制值為ooo的字符至多3位(1)\xhh十六進(jìn)制值為hh的字符只能2位(1)轉(zhuǎn)義符表字符串文本中的轉(zhuǎn)義符表轉(zhuǎn)義序列意義注意事項(xiàng)\N{name}Unicode數(shù)據(jù)庫(kù)中以name命名的字符(2)\uxxxx共16位的16進(jìn)制字符值:xxxx(3)\Uxxxxxxxx共32位的16進(jìn)制字符值:xxxxxxxx(4)2、Python標(biāo)識(shí)符在Python語(yǔ)言中,變量名、函數(shù)名、對(duì)象名等同樣是通過(guò)標(biāo)識(shí)符來(lái)命名的。標(biāo)識(shí)符第一個(gè)字符必須是字母表中字母或下劃線'_',標(biāo)識(shí)符的其他的部分有字母、數(shù)字和下劃線組成。Python中的標(biāo)識(shí)符是區(qū)分大小寫(xiě)的。在Python3.x中,非-ASCII標(biāo)識(shí)符也是允許的,譬如:data_人數(shù)=100“data_人數(shù)”為含漢字的標(biāo)識(shí)符,但一般不太這樣用。1.5Python語(yǔ)法概述3、Python保留字符保留字即關(guān)鍵字,保留字不能用作常數(shù)或變數(shù),也不能用作任何其他標(biāo)識(shí)符名稱(chēng)。Python的標(biāo)準(zhǔn)庫(kù)提供了一個(gè)keywordmodule,可以輸出當(dāng)前版本的所有關(guān)鍵字:>>>importkeyword>>>keyword.kwlist#這里輸出的是Python3.5.2版本的關(guān)鍵字1.5Python語(yǔ)法概述4、行與縮進(jìn)

較其它語(yǔ)言,Python最具特色的就是使用縮進(jìn)來(lái)表示代碼塊(又稱(chēng)代碼組),而不使用大括號(hào)({})來(lái)控制類(lèi)、函數(shù)以及其他邏輯判斷代碼塊。

像if、while、def和class這樣的復(fù)合語(yǔ)句,首行以關(guān)鍵字開(kāi)始,以冒號(hào)(:)結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼塊。將首行及后面的代碼塊統(tǒng)稱(chēng)為一個(gè)子句(clause)。

代碼塊縮進(jìn)的空格數(shù)是可變的,但是同一個(gè)代碼塊的語(yǔ)句必須包含相同的縮進(jìn)空格數(shù),這個(gè)必須嚴(yán)格執(zhí)行。1.5Python語(yǔ)法概述5、多行語(yǔ)句Python語(yǔ)句中一般以新行(換行符)作為語(yǔ)句的結(jié)束符。但是我們可以使用反斜杠(\)將一行的語(yǔ)句分為多行顯示,如下所示:total=item_one+\item_two+\item_three1.5Python語(yǔ)法概述語(yǔ)句中包含[],{}或()括號(hào)就不需要使用多行連接符(自動(dòng)判斷是多行的)。如:days=['Monday','Tuesday','Wednesday','Thursday','Friday']6、同一行顯示多條語(yǔ)句Python可以在同一行中使用多條語(yǔ)句,語(yǔ)句之間使用英文分號(hào)(;)分割,例如:importsys;x='foo';sys.stdout.write(x+'\n');#一行有3個(gè)語(yǔ)句1.5Python語(yǔ)法概述7、空行函數(shù)之間或類(lèi)的方法之間用空行分隔,表示一段新的代碼的開(kāi)始。類(lèi)和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開(kāi)始??招信c代碼縮進(jìn)不同,空行并不是Python語(yǔ)法的一部分。書(shū)寫(xiě)時(shí)不插入空行,Python解釋器運(yùn)行也不會(huì)出錯(cuò)。但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護(hù)或重構(gòu)。1.5Python語(yǔ)法概述8、Python引號(hào)Python接收單引號(hào)(')、雙引號(hào)(")、三引號(hào)('''""")來(lái)表示字符串,引號(hào)的開(kāi)始與結(jié)束必須是相同種類(lèi)的引號(hào)。其中三引號(hào)可以由多行組成,是編寫(xiě)多行文本的快捷語(yǔ)法。word='word'sentence="Thisisasentence."paragraph="""Thisisaparagraph.Itismadeupofmultiplelinesandsentences."""三引號(hào)常用于文檔字符串,在文件的特定地點(diǎn),被當(dāng)做注釋。具體見(jiàn)下注釋。1.5Python語(yǔ)法概述9、Python注釋Python中單行注釋采用#開(kāi)頭(可以在語(yǔ)句或表達(dá)式行末)。塊注釋?zhuān)ǘ嘈凶⑨專(zhuān)┮部刹捎枚嘈?開(kāi)頭來(lái)表示,如:#!/usr/bin/python#指定Linux系統(tǒng)中Python解釋器位置,后續(xù)程序?qū)⑹÷栽撝噶?Firstcommentprint("Hello,Python!");#secondcomment輸出結(jié)果:Hello,Python!1.5Python語(yǔ)法概述10、Python的數(shù)值類(lèi)型與字符串(1)數(shù)值類(lèi)型Python中有四種數(shù)值類(lèi)型:整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)(具體見(jiàn)第2章)。1)整數(shù),如1;2)長(zhǎng)整數(shù)是比較大的整數(shù);3)浮點(diǎn)數(shù),如1.23、3E-2;4)復(fù)數(shù),如1+2j、1.1+2.2j。1.5Python語(yǔ)法概述(2)字符串Python用單引號(hào)('),雙引號(hào)(")或三引號(hào)('''""")括起字符序列構(gòu)成字符串。關(guān)于字符串:1)Python中使用單引號(hào)和雙引號(hào)效果相同;2)使用三引號(hào)('''或""")可以指定一個(gè)多行字符串;3)'\'是用于字符串的轉(zhuǎn)義符1.5Python語(yǔ)法概述4)自然字符串,通過(guò)在字符串前加r或R來(lái)表示。如r"thisisalinewith\n"則\n會(huì)顯示,并不再是換行;5)Python允許處理Unicode字符串,只要前面加前綴u或U,如u"thisisanunicodestring";6)字符串是不可改變的;7)Python可以按字面意義級(jí)聯(lián)來(lái)形成新字符串,如"this""is""string"會(huì)被自動(dòng)轉(zhuǎn)換為thisisstring字符串。1.5Python語(yǔ)法概述1、Python基礎(chǔ)模塊之os模塊的應(yīng)用實(shí)例【例1-3】利用os模塊在Linux或Windows環(huán)境中當(dāng)前目錄下創(chuàng)建子目錄與文件,并Python解釋執(zhí)行之。os意即操作系統(tǒng)(OperatingSystem),所以os模塊肯定就是操作系統(tǒng)相關(guān)的功能了,os模塊可以處理文件和目錄這些日常需要做的操作,譬如:顯示當(dāng)前目錄下所有文件/刪除某個(gè)文件/獲取文件大小……。1.6應(yīng)用實(shí)例2、參照Python官網(wǎng)與yCharm官方下載地址,安裝某版本的Python及某種Python程序集成開(kāi)發(fā)環(huán)境。Python官網(wǎng):http://www.P/PyCharm官方下載地址:/pycharm/download/1.6應(yīng)用實(shí)例3、實(shí)踐本章例題及如下應(yīng)用實(shí)例【例1-4】輸入數(shù)x計(jì)算sin(x)的值并輸出。程序的每個(gè)語(yǔ)句功能由注釋可知。#coding=utf-8

#支持使用utf-8編碼#!/usr/bin/python#使用/usr/bin/python解釋器importmath#導(dǎo)入math模塊snum=input("Inputnumber:");#提示并輸入x的值x=float(snum);#轉(zhuǎn)換為一個(gè)實(shí)數(shù),賦值給xs=math.sin(x);#求x的正弦值,并把它賦給變量sprint("sin(%lf)=%lf\n"%(x,s));

#顯示程序運(yùn)算結(jié)果1.6應(yīng)用實(shí)例

【例1-5】從鍵盤(pán)輸入兩個(gè)整數(shù),輸出這兩個(gè)整數(shù)之積。#coding=utf-8

#支持使用utf-8編碼#!/usr/bin/python

#使用/usr/bin/python解釋器importmath

#導(dǎo)入math模塊snum=input("Inputnumberx:");#提示并輸入x的值x=float(snum);#轉(zhuǎn)換為一個(gè)實(shí)數(shù)并賦值給xy=float(input("Inputnumbery:"));

#提示輸入y的值print("%lf*%lf=%lf\n"%(x,y,x*y));#顯示程序運(yùn)算結(jié)果1.6應(yīng)用實(shí)例第2章語(yǔ)言基礎(chǔ)

本章內(nèi)容包含Python語(yǔ)言的一些基本知識(shí)和基本概念,包括:Python語(yǔ)言的基本數(shù)據(jù)類(lèi)型、Python語(yǔ)言的數(shù)據(jù)運(yùn)算符及表達(dá)式、Python語(yǔ)言基本輸入輸出功能等。它們是學(xué)習(xí)、理解與編寫(xiě)Python語(yǔ)言程序的基礎(chǔ)。第2章語(yǔ)言基礎(chǔ)學(xué)習(xí)重點(diǎn)和難點(diǎn):Python語(yǔ)言的數(shù)據(jù)類(lèi)型常量和變量運(yùn)算符和表達(dá)式

學(xué)習(xí)本章后將對(duì)Python語(yǔ)言的基本數(shù)據(jù)及其基本運(yùn)算有個(gè)全面了解與把握。第2章語(yǔ)言基礎(chǔ)2.1數(shù)據(jù)類(lèi)型2.2運(yùn)算符與表達(dá)式2.3基本輸入與輸出2.4應(yīng)用實(shí)例2.1數(shù)據(jù)類(lèi)型Python3.6中主要的內(nèi)置類(lèi)型有:(1)數(shù)值numericint(整型)、float(浮點(diǎn)數(shù))、bool(布爾型)、complex(復(fù)數(shù)型)等;(2)序列sequencelist(列表)、tuple(元組)、range(范圍)、str(字符串)、bytes(字節(jié)串)、set(集合)等;(3)映射mappingsdict(字典);(4)類(lèi)classe;(5)實(shí)例instance;(6)例外exception;

2.1數(shù)據(jù)類(lèi)型這里主要其中對(duì)幾種數(shù)據(jù)類(lèi)型作介紹。

2.1.1類(lèi)型常量

2.1.2類(lèi)型變量

2.1.3數(shù)值(numerics)

2.1.4字符串(str)

2.1.5列表(list)

2.1.6元組(tuple)

2.1.7集合(set)

2.1.8字典(dict)

2.1.9數(shù)據(jù)類(lèi)型轉(zhuǎn)換2.1.1類(lèi)型常量

在程序執(zhí)行過(guò)程中,其值不發(fā)生改變的量稱(chēng)為常量。下面介紹幾種常用類(lèi)型的不同常量(詳見(jiàn)書(shū)本)。

1.整型常量2.浮點(diǎn)型常量3.復(fù)數(shù)型常量4.布爾常量5.其他類(lèi)型可能的常量形式2.1.2類(lèi)型變量

常量是一塊只讀的內(nèi)存區(qū)域,常量一旦被初始化就不能被改變。變量是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,變量可以存儲(chǔ)規(guī)定范圍內(nèi)的值,而且值可以改變?;谧兞康臄?shù)據(jù)類(lèi)型,解釋器會(huì)分配指定大小內(nèi)存,并決定什么數(shù)據(jù)可以被存儲(chǔ)在內(nèi)存中。變量命名應(yīng)符合標(biāo)識(shí)符命名的規(guī)定。

對(duì)于Python而言,Python的一切變量都是對(duì)象,變量的存儲(chǔ),采用了引用語(yǔ)義的方式,存儲(chǔ)的只是一個(gè)變量的值所在的內(nèi)存地址,而不是這個(gè)變量的值本身。2.1.2類(lèi)型變量

Python中的變量不需要聲明,每個(gè)變量在使用前都必須賦值。變量的賦值操作即是變量的聲明和定義的過(guò)程。每個(gè)變量在內(nèi)存中創(chuàng)建都包括變量的唯一標(biāo)識(shí)id、名稱(chēng)和數(shù)據(jù)值這些信息。為此,變量?jī)?nèi)部結(jié)構(gòu)示意圖,如圖2-1所示。在Python中,變量就是變量,本質(zhì)上變量是沒(méi)有類(lèi)型的,所說(shuō)的“類(lèi)型”是變量所指的內(nèi)存中對(duì)象的類(lèi)型。因此,變量可以指定不同的數(shù)據(jù)類(lèi)型,這些變量在不同時(shí)候可以存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)或字符串等。2.1.2類(lèi)型變量1、變量賦值

每個(gè)變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識(shí)、名稱(chēng)和數(shù)據(jù)值這些信息。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。一個(gè)變量可以通過(guò)賦值指向不同類(lèi)型的對(duì)象。

等號(hào)(=)用來(lái)給變量賦值。等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。例如:

counter=100

#賦值整型值

miles=1000.0

#賦值浮點(diǎn)型值

name="John"

#賦值字符串值2.1.2類(lèi)型變量2、多個(gè)變量同時(shí)賦值Python可以同時(shí)為多個(gè)變量賦值,如:a,b,c=1,2,"john"

兩個(gè)整型對(duì)象1和2分配給變量a和b,字符串對(duì)象"john"分配給變量c。

又如:a=b=c=1

以上語(yǔ)句,創(chuàng)建一個(gè)整型對(duì)象其值為1,三個(gè)變量被分配引用到相同的內(nèi)存空間上。

又如:a=(1,2,3)#定義一個(gè)元組x,y,z=a#把元組序列的值分別賦給變量x、y、zprint("a:%d,b:%d,z:%d"%(x,y,z))#打印結(jié)果,x,y,z按順序分別對(duì)應(yīng)%d2.1.2類(lèi)型變量3、下劃線(_)開(kāi)始的特殊變量

Python用下劃線作為變量前綴和后綴指定特殊變量。

(1)_xxx變量名_xxx被看作是“私有的”,在模塊或類(lèi)外不可以使用。當(dāng)變量是私有的時(shí)候,用_xxx來(lái)表示變量是很好的習(xí)慣。_xxx變量是不能用'frommoduleimport*'導(dǎo)入的。在類(lèi)中“單下劃線”開(kāi)始(_foo)的成員變量或類(lèi)屬性叫做保護(hù)變量,意思是只有類(lèi)對(duì)象和子類(lèi)對(duì)象自己能訪問(wèn)到這些變量。

(2)__xxx類(lèi)中的私有變量名?!半p下劃線”開(kāi)始(__foo)的是私有成員變量,意思是只有類(lèi)對(duì)象自己能訪問(wèn),連子類(lèi)對(duì)象也不能訪問(wèn)到這個(gè)數(shù)據(jù)。2.1.2類(lèi)型變量(3)__xxx__xxx為系統(tǒng)定義名字。以雙下劃線開(kāi)頭和結(jié)尾的(__foo__)代表Python里特殊方法專(zhuān)用的標(biāo)識(shí),如__init__(self,...)代表類(lèi)的構(gòu)造函數(shù)。這樣的系統(tǒng)特殊方法還有許多,如:

__new__(cls[,...])、__del__(self)、__str__(self)、__lt__(self,other)、__getitem__(self,key)、__len__(self)、__repr__(s)、_cmp__(s,o)、__call__(self,*args)等等。

注意:避免用下劃線作為一般變量名的開(kāi)始。2.1.3數(shù)值

Python3支持int、float、bool、complex等數(shù)值類(lèi)型。數(shù)值類(lèi)型是不可改變的數(shù)據(jù)類(lèi)型,這意味著改變數(shù)值會(huì)分配創(chuàng)建一個(gè)新的對(duì)象。

數(shù)值類(lèi)型的賦值和計(jì)算都是很直觀的,就像大多數(shù)語(yǔ)言一樣。內(nèi)置的type()函數(shù)可以用來(lái)查詢(xún)變量所指的對(duì)象類(lèi)型。>>>a,b,c,d=20,5.5,True,4+3j>>>print(type(a),type(b),type(c),type(d))<class'int'><class'float'><class'bool'><class'complex'>2.1.3數(shù)值

變量賦值可以理解為給變量數(shù)值對(duì)象的引用,為此也可以使用del語(yǔ)句刪除對(duì)象的引用,這樣變量就沒(méi)定義、不存在而不能用了。del語(yǔ)句的語(yǔ)法是:delvar1[,var2[,var3[,varN]]]]

例如:dela,b#這樣a,b就不能使用了2.1.3數(shù)值下面是基本的數(shù)值運(yùn)算情況:>>>5+4#9加法>>>4.3-2#2.3減法>>>3*7#21乘法>>>2/4#0.5除法,得到一個(gè)浮點(diǎn)數(shù)>>>2//4#0整除法,得到一個(gè)整數(shù)>>>17%3#2取余>>>2**5#32乘方注意:1)數(shù)值的除法(/)總是返回一個(gè)浮點(diǎn)數(shù),要獲取整數(shù)使用//操作符。2)在混合計(jì)算時(shí),Python會(huì)把整型轉(zhuǎn)換成為浮點(diǎn)數(shù)。2.1.4字符串

字符串是一系列的字符序列,Python中用單引號(hào)('')、雙引號(hào)("")或者三個(gè)單引號(hào)('''''')或三個(gè)雙引號(hào)("""""")來(lái)表示字符串常量。同時(shí)可使用反斜杠(\)轉(zhuǎn)義特殊字符(見(jiàn)轉(zhuǎn)義符表1-1)。>>>s='Yes,hedoesn\'t'>>>print(s,type(s),len(s))#Yes,hedoesn't<class'str'>14>>>"doesn't"#"doesn't">>>'"Yes,"hesaid.'#'"Yes,"hesaid.'>>>"\"Yes,\"hesaid."#'"Yes,"hesaid.'>>>'"Isn\'t,"shesaid.'#'"Isn\'t,"shesaid.'2.1.4字符串

如果字符串包含有單引號(hào)但不含雙引號(hào),則字符串會(huì)用雙引號(hào)括起來(lái),否則用單引號(hào)括起來(lái)。對(duì)于這樣的輸入字符串,print()函數(shù)會(huì)產(chǎn)生更易讀的輸出。

如果你不想讓反斜杠發(fā)生轉(zhuǎn)義,可以在字符串前面添加一個(gè)r,表示原始字符串:>>>print('C:\some\name')C:\someame>>>print(r'C:\some\name')#C:\some\name2.1.4字符串以下使用反斜線(\)來(lái)續(xù)行:>>>hello="Thisisaratherlongstringcontaining\n\...severallinesoftextjustasyouwoulddoinC.\n\...Notethatwhitespaceatthebeginningofthelineis\...significant.">>>hello#其中的換行符仍然要使用\n表示,反斜杠后的換行符被丟棄了Thisisaratherlongstringcontaining\nseverallinesoftextjustasyouwoulddoinC.\nNotethatwhitespaceatthebeginningofthelineissignificant2.1.4字符串

使用3個(gè)引號(hào)時(shí),換行符不需要轉(zhuǎn)義,它們會(huì)包含在字符串中。以下的例子只使用了一個(gè)轉(zhuǎn)義符(\),避免在最開(kāi)始產(chǎn)生一個(gè)不需要的空行。

print("""\

Usage:thingy[OPTIONS]

-hDisplaythisusagemessage

-HhostnameHostnametoconnectto

""")其輸出如下:Usage:thingy[OPTIONS]-hDisplaythisusagemessage-HhostnameHostnametoconnectto2.1.4字符串

字符串可以使用+運(yùn)算符串連接在一起,或者用*運(yùn)算符重復(fù)。>>>print('str'+'ing','my'*3)#stringmymymy>>>'str''ing'#'string'

這樣操作正確>>>'str'.strip()+'ing'#'string'

這樣操作正確>>>'str'.strip()'ing'#

這樣操作錯(cuò)誤Python中的字符串有兩種索引方式,第一種是從左往右,從0開(kāi)始依次增加;第二種是從右往左,從-1開(kāi)始依次減少。++++++|H|e|l|l|o|++++++

012345-5-4-3-2-12.1.4字符串

第一行的數(shù)字0...5給出了字符串中索引的位置;第二行給出了相應(yīng)的負(fù)數(shù)索引。分切部分從i到j(luò)分別由在邊緣被標(biāo)記為i和j的全部字符組成。

注意:Python沒(méi)有單獨(dú)的字符類(lèi)型(char類(lèi)型),一個(gè)字符就是長(zhǎng)度為1的字符串。>>>word='Python'>>>print(word[0],word[5])#Pn>>>print(word[-1],word[-6])#nP2.1.4字符串

還可以對(duì)字符串進(jìn)行切片,獲取一段子串。用冒號(hào)分隔兩個(gè)索引,形式為:

變量[頭下標(biāo):尾下標(biāo)]

截取的范圍是前閉后開(kāi)的,并且兩個(gè)索引都可以省略。默認(rèn)的第一個(gè)索引為零,第二個(gè)索引默認(rèn)為字符串可以被分切的長(zhǎng)度。>>>word='ilovePython'>>>word[1:5]#'love'>>>word[:]#'ilovePython'>>>word[:2]#'il'#前兩個(gè)字符>>>word[5:]#'Python'>>>word[-10:-6]#'love'2.1.4字符串

與C字符串不同的是,Python字符串不能被改變。向一個(gè)索引位置賦值,比如word[0]='m'會(huì)導(dǎo)致錯(cuò)誤。然而,用組合內(nèi)容的方法來(lái)創(chuàng)建新的字符串是簡(jiǎn)單高效的:>>>'I'+word[1:]#'IlovePython'

在分切操作字符串時(shí),有一個(gè)很有用的規(guī)律:s[:i]+s[i:]等于s。對(duì)于有偏差的分切索引的處理方式規(guī)定:一個(gè)過(guò)大的索引值將由字符串的實(shí)際大小取代,上限值小于下限值時(shí)將返回一個(gè)空字符串。>>>word[1:100]#'lovePython'>>>word[20:]##返回空字符串''>>>word[2:1]##返回空字符串''2.1.4字符串

超出范圍的負(fù)數(shù)索引會(huì)被截去多余負(fù)數(shù)表示的部分,但不要嘗試在一個(gè)單元素索引(非分切索引)里使用:>>>word[-100:]#'ilovePython'>>>word[-10:5]#'love'#分別由-10負(fù)數(shù)索引與5正數(shù)索引所分切的部分>>>word[-10]#錯(cuò)誤

對(duì)于非負(fù)數(shù)分切部分,如果索引都在有效范圍內(nèi),分切部分的長(zhǎng)度就是索引的差值。例如,word[1:3]的長(zhǎng)度是2。內(nèi)置的函數(shù)len()用于返回一個(gè)字符串的長(zhǎng)度:>>>len(word)#11

注意:1)反斜杠可以用來(lái)轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義。2)字符串可以用+運(yùn)算符連接在一起,用*n運(yùn)算符重復(fù)n次。3)Python中的字符串有兩種索引方式,從左往右以0開(kāi)始,從右往左以-1開(kāi)始。4)Python中的字符串不能改變。2.1.5列表

list(列表)是Python中使用最頻繁的數(shù)據(jù)類(lèi)型。列表是寫(xiě)在方括號(hào)([])之間、用逗號(hào)分隔開(kāi)的元素列表。列表中元素的類(lèi)型可以不相同。列表可以完成大多數(shù)集合類(lèi)的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符、數(shù)字、字符串甚至可以包含列表(所謂嵌套),是Python最通用的復(fù)合數(shù)據(jù)類(lèi)型。

列表中的值的分割(或分片、切片)可以用到“列表變量[頭下標(biāo):尾下標(biāo):步長(zhǎng)]”,就可以截取相應(yīng)的列表,從左到右索引默認(rèn)0開(kāi)始的,從右到左索引默認(rèn)-1開(kāi)始,下標(biāo)可以為空表示取到頭或尾。2.1.5列表>>>a=['him',25,100,'her']>>>print(a)#['him',25,100,'her']

1)和字符串一樣,列表同樣可以被索引和切片,列表被切片后返回一個(gè)包含所含元素的新列表。

首先設(shè)列表內(nèi)容為:Array=[2,3,9,1,4,7,6,8]

這個(gè)是一個(gè)數(shù)字列表[2,3,9,1,4,7,6,8]

從前面開(kāi)始的索引號(hào)為{0,1,2,3,4,5,6,7}——>前面序號(hào)

從后面開(kāi)始的索引號(hào)為{-8,-7,-6,-5,-4,-3,-2,-1}——>后面序號(hào)2.1.5列表>>>Array[0:]#切片從前面序號(hào)“0”開(kāi)始到結(jié)尾,包括“0”位:[2,3,9,1,4,7,6,8]>>>Array[:-1]#切片從后面序號(hào)“-1”到最前,不包括“-1”位:[2,3,9,1,4,7,6]>>>Array[3:-2]#切從前面序號(hào)“3”開(kāi)始(包括)到從后面序號(hào)“-2”結(jié)束(不包括):[1,4,7]>>>Array[::2]#[2,9,4,6]#從整列表中切出,分隔“2”2.1.5列表>>>Array[3::2]#從前面序號(hào)“3”(包括)到最后,其中分隔為“2”:[1,7,8]>>>Array[3::]#[1,4,7,6,8]#從前面序號(hào)“3”開(kāi)始到最后,沒(méi)有分隔>>>Array[3::-2]#從前面序號(hào)“3”開(kāi)始,往回?cái)?shù)第2個(gè),因?yàn)榉指魹椤?2”:[1,3]>>>Array[-1]#8#此為切出最后一個(gè)>>>Array[::-1]#[8,6,7,4,1,9,3,2]此為倒序2.1.5列表2)加號(hào)(+)是列表連接運(yùn)算符,星號(hào)(*)是重復(fù)操作。>>>a=[1,2,3,4,5]>>>a+[6,7,8]#[1,2,3,4,5,6,7,8]>>>a*2#[1,2,3,4,5,1,2,3,4,5]2.1.5列表3)與Python字符串不一樣的是,列表中的元素是可以改變的。>>>a=[1,2,3,4,5,6]#賦值>>>a[0]=9#元素賦值改變>>>a[2:5]=[13,14,15]#區(qū)段賦值改變>>>a#[9,2,13,14,15,6]>>>a[2:5]=[]#刪除>>>a#[9,2,6]list內(nèi)置了有很多方法,例如append()、pop()等等,這在后面會(huì)講到。

注意:1)list寫(xiě)在方括號(hào)之間,元素用逗號(hào)隔開(kāi)。2)和字符串一樣,list可以被索引和切片。3)list中的元素是可以改變的。2.1.6元組

元組(tuple)與列表類(lèi)似,不同之處在于元組的元素不能修改。元組寫(xiě)在小括號(hào)“()”里,元素之間用逗號(hào)隔開(kāi)。元組中的元素類(lèi)型也可以不相同:>>>a=(1991,2014,'physics','math')>>>print(a,type(a),len(a))(1991,2014,'physics','math')<class'tuple'>4

元組與字符串類(lèi)似,可以被索引且下標(biāo)索引從0開(kāi)始,也可以進(jìn)行截取/切片(看上面,這里不再贅述)。其實(shí),可以把字符串看作一種特殊的元組。2.1.6元組>>>tup=(1,2,3,4,5,6)>>>print(tup[0],tup[1:5])#1(2,3,4,5)>>>tup[0]=11#修改元組元素的操作是非法的

雖然tuple的元素不可改變,但它可以包含可變的對(duì)象,比如list列表。構(gòu)造包含0個(gè)或1個(gè)元素的tuple是個(gè)特殊的問(wèn)題,所以有一些額外的語(yǔ)法規(guī)則:tup1=()#空元組tup2=(20,)#一個(gè)元素,需要在元素后添加逗號(hào)

另外,元組也支持用+操作符:>>>tup1,tup2=(1,2,3),(4,5,6)#同時(shí)賦值>>>print(tup1+tup2)#(1,2,3,4,5,6)#+操作合并一起注意:1)與字符串一樣,元組的元素不能修改。2)元組也可以被索引和切片,方法一樣。3)注意構(gòu)造包含0或1個(gè)元素的元組的特殊語(yǔ)法規(guī)則。4)元組也可以使用+操作符進(jìn)行拼接。2.1.7集合set是一個(gè)無(wú)序不重復(fù)元素的集合。基本功能是進(jìn)行成員關(guān)系測(cè)試和消除重復(fù)元素。

可以使用大括號(hào)或者set()函數(shù)創(chuàng)建set集合,

注意:創(chuàng)建一個(gè)空集合必須用set()而不是{},因?yàn)閧}是用來(lái)創(chuàng)建一個(gè)空字典。>>>student={'Tom','Jim','Mary','Tom','Jack',}>>>print(student)#重復(fù)的元素被自動(dòng)去掉{'Mary','Jim','Tom','Rose','Jack'}>>>'Rose'instudent#True成員測(cè)試>>>a=set('abracadabra')#set集合運(yùn)算,先賦值2.1.7集合>>>b=set('alacazam')#{'c','z','l','m','a'}>>>a#{'a','b','c','d','r'}>>>a-b#{'b','d','r'}#a和b的差集>>>a|b#{'l','m','a','b','c','d','z','r'}#a和b的并集>>>a&b#{'a','c'}#a和b的交集>>>a^b#{'l','m','b','d','z','r'}#a和b中不同時(shí)存在的元素2.1.8字典

字典(dictionary)是Python中另一個(gè)非常有用的內(nèi)置數(shù)據(jù)類(lèi)型。

字典是一種映射類(lèi)型(mappingtype),它是一個(gè)無(wú)序的“鍵:值”對(duì)集合。

鍵(即關(guān)鍵字)必須使用不可變類(lèi)型,也就是說(shuō)list和包含可變類(lèi)型的tuple不能做關(guān)鍵字。在同一個(gè)字典中,關(guān)鍵字還必須互不相同。列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象集合。字典用“{}”來(lái)標(biāo)識(shí)。字典中元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。2.1.8字典

>>>dic={}#創(chuàng)建空字典>>>tel={'Jack':1557,'Tom':1320,'Rose':1886}>>>tel#{'Tom':1320,'Jack':1557,'Rose':1886}>>>tel['Jack']#1557#主要的操作:通過(guò)key查詢(xún)>>>deltel['Rose']#刪除一個(gè)鍵值對(duì)>>>tel['Mary']=4127#添加一個(gè)鍵值對(duì)>>>tel#{'Tom':1320,'Jack':1557,'Mary':4127}>>>list(tel.keys())#['Tom','Jack','Mary']#返回所有key組成的list>>>sorted(tel.keys())#['Jack','Mary','Tom']#按key排序2.1.8字典

>>>'Tom'intel#True成員測(cè)試>>>'Mary'notintel#False成員測(cè)試

構(gòu)造函數(shù)dict()直接從鍵值對(duì)sequence中構(gòu)建字典,當(dāng)然也可以進(jìn)行推導(dǎo),如下:>>>dict([('sape',4139),('guido',4127),('jack',4098)]){'jack':4098,'sape':4139,'guido':4127}>>>{x:x**2forxin(2,4,6)}#{2:4,4:16,6:36}>>>dict(sape=4139,guido=4127,jack=4098){'jack':4098,'sape':4139,'guido':4127}

另外,字典類(lèi)型也有一些內(nèi)置的函數(shù),例如clear()、keys()、values()等。

注意:1)字典是一種映射類(lèi)型,它的元素是鍵值對(duì)。2)字典的關(guān)鍵字必須為不可變類(lèi)型,且不能重復(fù)。3)創(chuàng)建空字典使用{}。2.1.9數(shù)據(jù)類(lèi)型轉(zhuǎn)換

有時(shí)候,需要對(duì)數(shù)據(jù)類(lèi)型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,只需要將數(shù)據(jù)類(lèi)型作為函數(shù)名即可。表2-1的內(nèi)置函數(shù)可以執(zhí)行數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換。這些函數(shù)返回一個(gè)新的對(duì)象,表示轉(zhuǎn)換的值。2.2運(yùn)算符與表達(dá)式

Python語(yǔ)言同樣有高級(jí)語(yǔ)言常規(guī)有的運(yùn)算符。Python語(yǔ)言支持以下類(lèi)型的運(yùn)算符:算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。表達(dá)式是將不同類(lèi)型的數(shù)據(jù)(常量、變量、函數(shù))用運(yùn)算符按照一定的規(guī)則連接起來(lái)的式子。下面分別介紹運(yùn)算符、表達(dá)式及其相關(guān)知識(shí)。2.2運(yùn)算符與表達(dá)式

2.2.1運(yùn)算符2.2.2優(yōu)先級(jí)2.2.3表達(dá)式與結(jié)合性2.2.4常用內(nèi)置函數(shù)2.2.1運(yùn)算符

下面來(lái)分類(lèi)學(xué)習(xí)這7類(lèi)運(yùn)算符。

(1)算術(shù)運(yùn)算符

表2-2算術(shù)運(yùn)算符中,假設(shè)變量a為10,變量b為20:2.2.1運(yùn)算符

+,-,*和/等算術(shù)運(yùn)算符和在許多其它語(yǔ)言(如Pascal或C)里一樣;括號(hào)可以用來(lái)為運(yùn)算分組。有了這些運(yùn)算符,Python解釋器可以作為一個(gè)簡(jiǎn)單的計(jì)算器,可以在解釋器里輸入一個(gè)表達(dá)式,它將輸出表達(dá)式的值。例如:>>>2+2#4>>>50-5*6#20>>>(50-5*6)/4#5.0>>>8/5#1.6#總是返回一個(gè)浮點(diǎn)數(shù)

注意:在不同的機(jī)器上浮點(diǎn)運(yùn)算的結(jié)果可能會(huì)不一樣。2.2.1運(yùn)算符

在整數(shù)除法中,除法(/)總是返回一個(gè)浮點(diǎn)數(shù),如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用運(yùn)算符//:>>>17/3#5.666666666666667#整數(shù)除法返回浮點(diǎn)型,15-16位有效數(shù)位>>>17//3#5#整數(shù)除法返回向下取整后的結(jié)果>>>17%3#2#%操作符返回除法的余數(shù)>>>5*3+2#17

等號(hào)('=')用于給變量賦值。賦值后給出下一個(gè)提示符,解釋器不會(huì)顯示任何結(jié)果。2.2.1運(yùn)算符>>>width=20>>>height=5*9>>>width*height#900Python可以使用**操作來(lái)進(jìn)行冪運(yùn)算:>>>5**2#25#5的平方>>>2**7#128#2的7次方

變量在使用前必須先“賦值來(lái)獲得定義”(即賦予變量一個(gè)值),否則會(huì)出現(xiàn)錯(cuò)誤:2.2.1運(yùn)算符>>>n#嘗試訪問(wèn)一個(gè)未定義的變量Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>NameError:name'n'isnotdef

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論