入門與精通整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)_第1頁
入門與精通整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)_第2頁
入門與精通整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)_第3頁
入門與精通整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)_第4頁
入門與精通整本書課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)_第5頁
已閱讀5頁,還剩624頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Python簡介第一章Python(蟒蛇)是荷蘭人Guido van Rossum發(fā)明的面向?qū)ο蟮慕忉屝途幊陶Z言。隨著近幾年云計(jì)算、大數(shù)據(jù)和人工智能的興起,Python語言也越來越受到開發(fā)人員的重視。如今,Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語言之一,甚至已經(jīng)進(jìn)入了小學(xué)教材,學(xué)習(xí)Python已然變得刻不容緩。Python概述Python概述01Python的安裝02編寫第一個(gè)Python程序03Python概述Python是一種計(jì)算機(jī)編程語言以及配套的軟件工具和庫。Python簡單易學(xué),代碼十分簡潔,它使用強(qiáng)制空白符作為縮進(jìn),這大大提高了Python的開發(fā)效率,使用Python能夠在更短的時(shí)

2、間內(nèi)完成更多的工作。Python是一門開源的語言,并且Python還有許多強(qiáng)大的開源庫,這些庫使得Python無論是對云計(jì)算、大數(shù)據(jù)、還是人工智能,都有很強(qiáng)的支持能力。PART 01Python程序運(yùn)行時(shí)是先將源碼轉(zhuǎn)換成字節(jié)碼,然后再由Python解釋器來執(zhí)行這些字節(jié)碼,所以就跳過了編譯這一步,如圖2所示。這使Python無需改動(dòng)就可以在不同的平臺(tái)上運(yùn)行,擁有了良好的可移植性。雖然Python語言與C語言的運(yùn)行機(jī)制不同,但是Python的底層是基于C語言編寫的,這將在以后要講解的Python的變量存儲(chǔ)機(jī)制上有所體現(xiàn)。 需要注意的是,目前市面上存在的Python版本大體上分為Python 2和P

3、ython 3這兩個(gè)版本,Python 3相比于Python 2是一個(gè)較大的升級,并且Python 3是不向下兼容的。本書使用的Python版本為Python 3。Python是一門解釋型語言。它不需要編譯就可以執(zhí)行,代碼由Python解釋器直接解釋運(yùn)行,因此它的運(yùn)行機(jī)制和C語言是不同的。如圖1所示,在Windows系統(tǒng)下執(zhí)行C語言需要編譯成Windows系統(tǒng)的二進(jìn)制序列,在Linux系統(tǒng)下執(zhí)行C語言需要編譯成Linux系統(tǒng)的二進(jìn)制序列,在Mac系統(tǒng)下執(zhí)行C語言需要編譯成Mac系統(tǒng)的二進(jìn)制序列,在其他系統(tǒng)條件下執(zhí)行C語言需要編譯成其他系統(tǒng)的二進(jìn)制序列。 圖1 C語言運(yùn)行機(jī)制 圖2 Python

4、運(yùn)行機(jī)制Python具有以下特點(diǎn)(1)簡單易學(xué)。(2)功能強(qiáng)大。Python擁有豐富的開源庫,其中有Python自帶的庫,如OS、SYS、Re等,也有第三方庫,如NumPy、Pandas、Requests等。有了這些庫的支持使得Python能被廣泛地應(yīng)用于Web開發(fā)、科學(xué)計(jì)算、機(jī)器學(xué)習(xí)(Machine Learning,ML)、人工智能(Artificial Intelligence,AI)、網(wǎng)絡(luò)爬蟲等諸多領(lǐng)域。(3)面向?qū)ο?。Python雖然常用來做面向過程編程,但是它也可以很好地用來做面向?qū)ο缶幊?。?)可移植性。Python的可移植是Python得以強(qiáng)大的原因之一,同一個(gè)Python程序

5、幾乎無須任何修改就可以在不同的平臺(tái)中運(yùn)行。(5)開發(fā)周期短。代碼的簡潔使得Python能從眾多的編程語言中脫穎而出,使用Python開發(fā)程序比用其他語言能夠縮短可觀的開發(fā)時(shí)間。 雖然Python語言相比于其他語言有很多的優(yōu)點(diǎn),但是它也有一些不可避免的缺點(diǎn),如它的運(yùn)行速度明顯落后于Java語言和C語言。另外,Python語言的縮進(jìn)也是一個(gè)問題,Python的語句塊并沒有像Java和C那樣使用大括號包起來,取而代之的是使用縮進(jìn)的方法。初學(xué)者很容易因?yàn)橐粋€(gè)空格而尋找許久的bug。最后,Python語言雖然也可以拿來做面向?qū)ο缶幊蹋窍啾扔贘ava,它還是有一些不足,當(dāng)要開發(fā)一個(gè)大型的項(xiàng)目時(shí),最好還

6、是選擇使用Java、C+等語言,畢竟Python語言設(shè)計(jì)的初衷也不是用來開發(fā)大型的項(xiàng)目。 Python的安裝本節(jié)主要講解Python在Windows、Linux、Mac系統(tǒng)中的安裝。PART 021.Python在Windows系統(tǒng)中的安裝1.準(zhǔn)備工作(1)裝有Windows系統(tǒng)的計(jì)算機(jī)一臺(tái)。(2)Python可執(zhí)行安裝包,可到Python官網(wǎng)下載。2.具體安裝步驟(1)選擇最新的Python版本,根據(jù)自己計(jì)算機(jī)的參數(shù)選擇相應(yīng)的版本下載。32位計(jì)算機(jī)系統(tǒng)選擇X86版,64位計(jì)算機(jī)系統(tǒng)選擇X86-X64版。為了更快捷、方便地安裝,建議采用可執(zhí)行文件的安裝方式安裝Python。(2)下載完成后,開

7、始安裝Python。有兩種安裝方式,Install Now(快捷安裝)和Customize installation(自定義安裝)。這里選擇自定義安裝,并勾選Add Python 3.7 to PATH,勾選其可以省去修改環(huán)境變量的步驟,實(shí)現(xiàn)自動(dòng)添加到系統(tǒng)路徑的功能,然后單擊Customize installation。(3)單擊Customize installation后會(huì)進(jìn)入Python的安裝配置界面1,單擊“Next”按鈕進(jìn)入下一步。這時(shí)進(jìn)入Python安裝配置界面2。這里只需勾選前五個(gè)選項(xiàng),前五個(gè)選項(xiàng)包含了Python絕大部分功能,如果有需要可以再次安裝。并單擊“Browse”按鈕選

8、擇安裝路徑,然后單擊“Install”按鈕開始安裝。安裝完成后單擊“Close”按鈕關(guān)閉窗口后,Python安裝完成。(4)Python安裝完成后需要檢驗(yàn)是否安裝成功。使用快捷鍵Win+R鍵進(jìn)入DOS命令控制臺(tái),在命令行內(nèi)輸入Python或者Python 3。如果安裝成功,則會(huì)輸出Python的版本信息,如下所示。C:Users1PythonPython 3.7.0 (v3.7.0:41df79263a11, Dec 23 2016, 08:06:12) MSC v.1900 64 bit (AMD64) on win32Type help, copyright, credits or lic

9、ense for more information.2.Python在Linux系統(tǒng)中的安裝1.準(zhǔn)備工作(1)裝有Linux系統(tǒng)的計(jì)算機(jī)或安裝了Linux系統(tǒng)的虛擬機(jī)。有的Linux系統(tǒng)自帶有Python,但是可能不是Python 3版本,如果要確認(rèn)Python版本的話,可以分別在終端輸入命令:Python和Python 3查看,前者用于檢查是否安裝了Python 2,后者用于檢查是否安裝了Python 3。不同的Linux系統(tǒng)安裝Python的方法可能有所不同。本書講解的是在CentOS 7.0版本下的Linux系統(tǒng)上安裝Python。(2)Python 3源碼包,可到Python官網(wǎng)下載。

10、2.具體安裝步驟(1)輸入命令su -進(jìn)入root用戶: adminroot $ su -(2)輸入命令:wget /ftp/python/3.7.0/Python-3.7.0.tgz,下載源碼包或直接在瀏覽器下載。(3)下載完成后,執(zhí)行命令:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel,安裝Python 3依賴包。執(zhí)行命令后,可以看到Python 3依賴包安裝信息,輸入“y”確認(rèn)安裝。(4)Python 3依賴包安裝完成后執(zhí)行命令:tar -xzvf Pytho

11、n-3.7.0.tgz,解壓下載好的Python安裝包,如下所示。rootroot /# tar -xzvf Python-3.7.0.tgz(5)解壓完成后,輸入命令:cd Python-3.7.0/,進(jìn)入生成的目錄,如下所示。rootroot /# cd Python-3.7.0/rootroot Python-3.7.0#接著執(zhí)行命令:./configure -prefix=/usr/local/,設(shè)置Python的安裝目錄為/usr/local/,如下所示。rootroot Python-3.7.0# ./configure -prefix=/usr/local/(6)配置完成之后執(zhí)行

12、命令:make開始編譯源碼,如下所示。rootroot Python-3.7.0# make整個(gè)編譯過程大概3-5分鐘。(7)編譯完成后,執(zhí)行命令:make install,開始安裝Python,如下所示。rootroot Python-3.7.0# make install(8)安裝完成之后,使用Python 3命令查看是否安裝成功,如果安裝成功,則會(huì)輸出Python如下所示的版本信息。rootroot Python-3.7.0# Python3Python 3.7.0 (default, Aug 8 2018, 22:21:25) GCC 4.8.5 20150623 (Red Hat 4

13、.8.5-28) on linuxType help, copyright, credits or license for more information.當(dāng)顯示上述信息后,可直接輸入Python代碼運(yùn)行,如需退出可使用Ctrl+Z鍵或輸入exit()退出。3.Python在Mac OS系統(tǒng)中的安裝1.準(zhǔn)備工作(1)裝有Mac OS系統(tǒng)的計(jì)算機(jī)一臺(tái)。(2)Python可執(zhí)行安裝包,可到Python官網(wǎng)下載。2.具體安裝步驟(1)進(jìn)入Python官網(wǎng),將鼠標(biāo)放在Downloads菜單上,在二級菜單中選擇All releases,即可進(jìn)入下載界面,選擇最新版的Python,單擊Download進(jìn)

14、入到下載頁面。(2)進(jìn)入下載頁面后,在網(wǎng)頁底部根據(jù)自己計(jì)算機(jī)的參數(shù)選擇相應(yīng)的版本下載(Windows系統(tǒng)中選擇executable installer文件進(jìn)行下載)。(3)下載完成之后,打開安裝包,按提示進(jìn)行安裝。(4)根據(jù)提示安裝完成后,打開終端輸入Python,如果出現(xiàn)如圖所示的界面,則Python安裝成功。安裝成功界面 編寫第一個(gè)Python程序本節(jié)將詳細(xì)講解如何使用Python寫出一個(gè)簡單的程序,同時(shí)也將介紹一些常用的Python解釋器以及注釋的使用。PART 03(1)打開Python的交互式環(huán)境。在Windows中使用Win+R鍵打開Dos命令控制臺(tái)輸入Python 3進(jìn)入,Lin

15、ux和Mac打開終端輸入Python 3進(jìn)入,打開成功之后可以看到如下所示的提示:Python 3.7.0 (v3.7.0:41df79263a11, Dec 23 2016, 08:06:12) MSC v.1900 64 bit (AMD64) on win32Type help, copyright, credits or license for more information.(2)進(jìn)入到交互式環(huán)境之后,可以看到有“”字樣的提示符,在此提示符之后可直接輸入Python代碼并按Enter鍵運(yùn)行。下面我們試試輸入“100+100”,看看返回的結(jié)果是不是“200”。 100 + 10020

16、0需要注意的是,在Python Shell環(huán)境之中,有“”的行是用戶輸入的內(nèi)容,而沒有“”的行是Python生成的。因此,在Python Shell中很容易就能看出哪些內(nèi)容是用戶輸入的,哪些內(nèi)容是Python生成的。使用Python的交互式環(huán)境(Python Shell)來編寫Python代碼具體步驟如下:(3)在Python中如果想輸出文本內(nèi)容可以使用print語句來實(shí)現(xiàn)。但需要注意的是,Python 3中的print語句輸出的內(nèi)容是使用小括號和引號(單引號、雙引號均可)包起來的,而Python 2中的print語句是使用引號包起來的,這是Python 2和Python 3較大的不同處。同時(shí)

17、注意,不論是在Python 2還是Python 3里,單引號和雙引號不能混用,否則會(huì)報(bào)錯(cuò)。如果在Python 3的Shell環(huán)境中,使用Python 2中的print語句格式的話,則會(huì)報(bào)錯(cuò),例如如下的示例。 print hello world #Python 2中的print語句格式 File , line 1 print hello world SyntaxError: invalid syntax在Python 3的Shell環(huán)境中,如果單雙引號混用的話,則會(huì)報(bào)下面的錯(cuò)誤,例如如下的示例。 print(hello world)#print語句輸出的內(nèi)容使用小括號和單雙引號混用 File ,

18、 line 1 print(hello world) SyntaxError: EOL while scanning string literal在Python 3的Shell環(huán)境中,正確的寫法應(yīng)該是: print(hello world)#print語句輸出的內(nèi)容使用小括號和雙引號包起來hello world print(hello world) #print語句輸出的內(nèi)容使用小括號和單引號包起來hello world(4)前面輸出的內(nèi)容都是沒有換行的,而且一次只能執(zhí)行一個(gè)print語句。Python中的換行結(jié)合了C語言的特點(diǎn),使用“n”作為換行符,所以如果要輸出換行的文本內(nèi)容,只需在文本內(nèi)

19、容的最后面加入了“n”之后,輸出的文本換行了。同時(shí)在Python之中,分號結(jié)束符是可以省略的,取而代之的是使用換行來標(biāo)識語句的結(jié)束。不過有一些情況下分號是不可以省略的,如下所示,當(dāng)在一行中需要執(zhí)行多個(gè)語句時(shí),就需要使用分號將每個(gè)語句分隔開,例如如下的示例。 print(hello ); print(world)helloworld(5)使用Python Shell,只需要輸入完代碼之后按Enter即可執(zhí)行了,但是當(dāng)代碼很多的時(shí)候,一句一句地在Python Shell中輸入是十分不現(xiàn)實(shí)的,此時(shí)就需要將代碼保存為一個(gè)Python可執(zhí)行的文件。首先在磁盤上新建一個(gè)hello.py文件,然后使用記事本

20、打開該文件,輸入下列內(nèi)容:#!/usr/bin/env python3print(hello world)然后使用命令行輸入:Python 文件地址 文件名,來執(zhí)行Python代碼可達(dá)到上面相同的效果,例如如下的示例。C:Users1Python D:hello.pyhello worldC:Users1上述代碼中的第一行的作用是從環(huán)境變量中查找Python解釋器的位置,它還可以是:#!/usr/bin/python3表示從路徑/usr/bin/python3查找Python解釋器。#!/usr/bin/env python3相比于#!/usr/bin/python3更加可靠,因?yàn)楫?dāng)Pytho

21、n解釋器的路徑不在/usr/bin/python3下時(shí),程序會(huì)出現(xiàn)找不到解釋器的錯(cuò)誤,因此本書使用的是#!/usr/bin/env python3。需要注意的是,#!/usr/bin/env python3和#!/usr/bin/python3不是必須要寫的,只有當(dāng)程序需要在Linux系統(tǒng)下運(yùn)行時(shí)才需要添加,不過為了使程序具有更好的可移植性,最好還是將其添加到代碼里面。 前面講到了使用#!/usr/bin/env python3來設(shè)置Python解釋器的位置,那么什么是Python解釋器呢?簡而言之就是將Python語言轉(zhuǎn)換成其他語言再運(yùn)行的一個(gè)程序。Python是一門解釋型語言,不需要編譯就

22、可以運(yùn)行,這歸功于Python有一個(gè)強(qiáng)大的解釋器。Python解釋器可以將Python代碼一行一行地轉(zhuǎn)譯,每轉(zhuǎn)譯一行就立刻運(yùn)行,然后再轉(zhuǎn)譯下一行,再運(yùn)行,直到程序結(jié)束。Python具有許多的解釋器,這些解釋器都是開源的,并且它們都有各自的優(yōu)點(diǎn),下面簡單介紹幾個(gè)常見的Python解釋器。(1)CPythonCPython是Python自帶的一個(gè)解釋器,當(dāng)你從Python官網(wǎng)上下載安裝了Python之后,就自動(dòng)安裝了CPython解釋器,它是基于C語言開發(fā)的一個(gè)解釋器。CPython是目前使用最廣的解釋器,它基本包含了所有第三方庫的支持。(2)PyPyPyPy是Python的另一個(gè)解釋器,它解決了

23、CPython無法支持即時(shí)編譯的問題,對CPython的各方面缺點(diǎn)進(jìn)行了改良,在性能上得到了一定的提升。但是,PyPy并不支持官方的CPython API,故不能使用某些第三方庫。(3)IPythonIPython是基于CPython的一個(gè)更高級的解釋器,它在Python的交互性上有所提高。并且支持變量自動(dòng)補(bǔ)全,自動(dòng)縮進(jìn),支持bash shell命令。需要注意的是,CPython中使用“”作為提示符,但是在IPython中卻是使用“In序號”作為提示符。(4)JythonJython是基于Java的一個(gè)Python解釋器,它可以直接把Python代碼轉(zhuǎn)換成Java字節(jié)碼運(yùn)行。Python解釋器

24、:一個(gè)好的程序,注釋是必不可少的,注釋可以使程序閱讀起來更加的容易,還能起到備注的功能,方便下次開發(fā)的時(shí)候理解代碼。Python有兩種注釋:單行注釋和多行注釋。首先介紹單行注釋的使用。Python的單行注釋以“#”開頭,例如如下的示例: # print(hello). print(world)world可以看到,程序并沒有執(zhí)行“#”之后的代碼。當(dāng)編寫代碼時(shí)需要多行注釋時(shí),再使用“#”一行一行地添加注釋是不現(xiàn)實(shí)的,所以這時(shí)就需要使用多行注釋。Python中的多行注釋使用三個(gè)單引號或三個(gè)雙引號將注釋括起來,例如如下的示例: 第一行注釋 第二行注釋 第三行注釋 或: 第一行注釋 第二行注釋 第三行注

25、釋學(xué)會(huì)寫注釋,是一個(gè)程序員必備的技能,特別是團(tuán)隊(duì)合作開發(fā)一個(gè)項(xiàng)目的時(shí)候,注釋能幫助你和其他成員之間更好的溝通。注釋的使用:課后習(xí)題一、選擇題1.在一行上寫多條語句時(shí),每個(gè)語句之間用( )分隔。A. #B. ;C. /D. &2.Python語言源程序的擴(kuò)展名為( )。A. py B. c C. class D. python3.下列哪些符號可用于注釋Python代碼( )。A. /*B. /C. #D. $二、簡答題與編程題1.簡述什么是Python以及Python有哪些特點(diǎn)。2.簡述Python的運(yùn)行機(jī)制。3.簡述Python的運(yùn)行機(jī)制和C語言運(yùn)行機(jī)制的不同。4.簡述Python適合做什么,

26、不適合做什么。5.Python在Linux系統(tǒng)的安裝主要分為哪幾步?6.嘗試將Python作為一個(gè)計(jì)算器,輸入表達(dá)式,如12/(4+1)。7.Python代碼的運(yùn)行方式有哪幾種?8.嘗試安裝和使用其他的Python解釋器。9.Python的單行注釋和多行注釋分別用什么?10.分別用換行符“n”和三引號輸出下列內(nèi)容:*11.26個(gè)字母可以組成26的10次方或者26*10個(gè)10字母長的字符串。也就是141167095653376L(結(jié)尾處的L只是表示這是Python長數(shù)字格式)。100個(gè)字母長度的字符串可能有多少個(gè)?使用Python計(jì)算。感謝大家的全力支持LOGOPython基礎(chǔ)第二章本章主要講解

27、Python基礎(chǔ),包括Python基本數(shù)據(jù)類型;Python變量的定義和使用;運(yùn)算符的使用;字符串的定義和使用;字符串編碼解碼。大數(shù)據(jù)概述 Python中的常量與變量01Python中的運(yùn)算符02 Python中的字符串和編碼03Python編輯器04Python中的常量與變量在介紹Python變量之前,首先要知道Python有哪些數(shù)據(jù)類型。Python有六種標(biāo)準(zhǔn)數(shù)據(jù)類型:數(shù)字(Number)、字符串(String)、列表(List)、元組(Tuple)、字典(Dictionary)、集合(Set)。其中數(shù)字和字符串是基本數(shù)據(jù)類型,列表、元組、字典和集合是高級數(shù)據(jù)類型。PART 01數(shù)字類型P

28、ython數(shù)字類型包括整型(int)、浮點(diǎn)數(shù)(float)、復(fù)數(shù)(complex)、布爾型(bool)四種數(shù)值類型。1.整型整型幾乎是所有編程語言中最基本的一種類型,它的表達(dá)方式和正常的書面書寫一樣,如: 1010常見的整型都是十進(jìn)制的,但是有的時(shí)候?yàn)榱擞?jì)算的需要可能要使用到其他進(jìn)制的整型。Python 3提供了一些用于進(jìn)制轉(zhuǎn)換的內(nèi)置函數(shù):bin()、int()、oct()、hex(),分別用來將整型轉(zhuǎn)換為二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制,如: print(十進(jìn)制數(shù):, 10)十進(jìn)制數(shù):10 print(二進(jìn)制數(shù):, bin(10)二進(jìn)制數(shù):0b1010 print(八進(jìn)制數(shù):, oct(10

29、)八進(jìn)制數(shù):0o12 print(十六進(jìn)制數(shù):, hex(10)十六進(jìn)制數(shù):0 xa從執(zhí)行結(jié)果可以看出,十進(jìn)制的整型開頭是沒有標(biāo)識符,而二進(jìn)制、八進(jìn)制、十六進(jìn)制整型的標(biāo)識符分別為:0b、0o、0 x。關(guān)于各進(jìn)制之間的相互轉(zhuǎn)換如表所示。進(jìn)制二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制二進(jìn)制oct(二進(jìn)制數(shù))int(二進(jìn)制數(shù))hex(二進(jìn)制數(shù))八進(jìn)制bin(八進(jìn)制數(shù))int(八進(jìn)制數(shù))hex(八進(jìn)制數(shù))十進(jìn)制bin(十進(jìn)制數(shù))oct(十進(jìn)制數(shù))hex(十進(jìn)制數(shù))十六進(jìn)制bin(十六進(jìn)制數(shù))oct(十六進(jìn)制數(shù))int(十六進(jìn)制數(shù))2.浮點(diǎn)數(shù)浮點(diǎn)數(shù)為帶小數(shù)點(diǎn)的實(shí)數(shù),如3.14、0.25、-10.26、50.21E12(

30、此處為科學(xué)計(jì)數(shù)法,表示50.21*1012)等都是浮點(diǎn)數(shù)。Python 3中的浮點(diǎn)數(shù)和正常的書寫格式基本一致。但是當(dāng)小數(shù)點(diǎn)前面或后面的數(shù)為0時(shí),0可以省略。Python 3中的整型是沒有上下限的,而浮點(diǎn)數(shù)則不同,它具有上限和下限。當(dāng)浮點(diǎn)數(shù)超出了上限或下限時(shí),會(huì)報(bào)溢出錯(cuò)誤信息。 2 * 1024 #2的1024次方17976931348623159077293051907890247336179769789423065727343008115773267580550096313270847732240753602112011387987139335765878976881441662249284

31、7430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 2.0 * 1024Traceback (most recent call last): File , line 1, in OverflowError: (34, Result too large)當(dāng)輸入2的1024次方之后,Python反饋了一個(gè)“Result

32、too large”錯(cuò)誤。提示結(jié)果太大,Python不能把它表示出來。值得注意的是,浮點(diǎn)數(shù)在計(jì)算機(jī)中都是使用二進(jìn)制存儲(chǔ)的,由此不可避免的會(huì)帶來一定的精度丟失。因此,在使用Python做精確計(jì)算的時(shí)候,需要先對浮點(diǎn)數(shù)進(jìn)行一定的處理。一種較好的辦法就是使用decimal模塊來處理浮點(diǎn)數(shù),例如如下的示例: from decimal import Decimal#導(dǎo)入decimal模塊中的Decimal()函數(shù) a=Decimal(0.1) b=Decimal(0.2) a+bDecimal(0.3) print(a+b)0.3上面代碼的第一行的功能是導(dǎo)入Python 3內(nèi)置的decimal模塊中的D

33、ecimal類,這將在第5章中講解。第二行和第三行分別將字符串0.1和0.2轉(zhuǎn)換成了Decimal類型,第四行代碼可以看到變量a和b相加后的類型仍然為Decimal類型,并且其對應(yīng)的浮點(diǎn)數(shù)結(jié)果為0.3,最后一行代碼使用print()語句直接輸出了浮點(diǎn)數(shù)運(yùn)算的結(jié)果。需要注意的是,傳入Decimal的參數(shù)不能是浮點(diǎn)數(shù),否則誤差會(huì)仍然存在,因?yàn)镻ython中的浮點(diǎn)數(shù)本來就是不精確的。3.復(fù)數(shù)Python 3提供了對復(fù)數(shù)的支持,其運(yùn)算方法跟數(shù)學(xué)中的復(fù)數(shù)運(yùn)算基本一致。在Python 3中,規(guī)定使用1j來表示-1的平方根,如下所示是Python中1j的四則運(yùn)算。 1j + 1j2j 1j - 1j0j 1

34、j * 1j(-1+0j) 1j / 1j(1+0j)如果需要獲取復(fù)數(shù)的實(shí)數(shù)部分可以使用.real,獲取虛數(shù)部分用.imag,例如如下的示例: 1j * 1j(-1+0j) (1j * 1j).real #實(shí)數(shù)部分為-1.0-1.0 (1j * 1j).imag #虛數(shù)部分為0.00.04.布爾型布爾型是一個(gè)十分重要的數(shù)據(jù)類型,它主要應(yīng)用在分支,循環(huán)結(jié)構(gòu)中。Python 2中是沒有布爾型的,它用0表示False,1表示True。而Python 3則將0和1分別定義為了:False和True字段,但是它們?nèi)匀豢梢韵裾湍菢酉嗉?,例如如下的示例?False + True1 True + True

35、22 字符串(String)1.標(biāo)識字符串字符串是Python中常用的一種數(shù)據(jù)類型,它是由單引號 或雙引號 括起來的文本內(nèi)容,包括字母、數(shù)字、標(biāo)點(diǎn)符號以及特殊符號等字符。除此之外,還可以使用三個(gè)單引號或雙引號來表示多行字符串。單引號和雙引號其實(shí)并沒有多大的差別,只不過是因?yàn)榫幊痰臅r(shí)候雙引號需要按住Shift鍵才能打出來,但是當(dāng)字符串中含有引號的時(shí)候,就需要謹(jǐn)慎地選擇使用引號。2.轉(zhuǎn)義符的使用使用轉(zhuǎn)義字符 也能解決字符串中含有單引號或雙引號的問題,例如如下的示例: Iam JackIam Jack He said Thank youHe said Thank you如果想讓字符串中的轉(zhuǎn)義符不起作

36、用的話可以在字符串前加“r”,例如如下的示例: print(nhello world) hello world print(rnhello world)nhello world除了之外,Python中還有其他的轉(zhuǎn)義符,如表所示。轉(zhuǎn)義符bn000tvr說明反斜杠單引號雙引號退一格換行空格橫向制表符縱向制表符回車 3 類型轉(zhuǎn)換有時(shí)用戶遇到的數(shù)據(jù)類型并不是其所需要的,這時(shí)就需要用到類型轉(zhuǎn)換函數(shù)。Python 3常用的類型轉(zhuǎn)換函數(shù)有三個(gè):int()、float()、str(),這三個(gè)函數(shù)的使用場景如圖所示,下面對三個(gè)函數(shù)進(jìn)行簡單介紹。(1)str()函數(shù)用于將整型、浮點(diǎn)數(shù)轉(zhuǎn)換成字符串,例如如下的示例:

37、 str(100) #將100這一整型轉(zhuǎn)換轉(zhuǎn)換為字符串,下面的以此類推100(2)float()函數(shù)用于將字符串、整型轉(zhuǎn)換成浮點(diǎn)數(shù),例如如下的示例: float(100)100.0(3)int()函數(shù)用于將字符串、浮點(diǎn)數(shù)轉(zhuǎn)換成整型,例如如下的示例: int(100)100 int(1.5)1另外,浮點(diǎn)數(shù)轉(zhuǎn)整型還可以使用round()函數(shù),它和int()函數(shù)唯一的區(qū)別就是對小數(shù)部分的處理不同,其使用方法如下: int(5.5)5 round(5.5)6可以看到,int()函數(shù)是直接舍棄掉小數(shù)部分而得到整數(shù),而round()函數(shù)則是使用四舍五入的方法將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)。另外,round()函數(shù)還可

38、以保留小數(shù)位數(shù),例如如下的示例: round(5.123, 1)5.1上述程序中的1表示對浮點(diǎn)數(shù)5.123保留1位小數(shù)。有的時(shí)候,Python會(huì)在運(yùn)算時(shí)自動(dòng)判斷結(jié)果的類型,而不需要使用函數(shù)去轉(zhuǎn)換,例如如下的示例: 1 + 1.52.54 變量1.定義變量變量是計(jì)算機(jī)語言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念,它通常是可變的。Python中變量的定義格式為:變量名 = 變量值Python之所以代碼很簡潔,主要就依賴其變量定義的方式上,在Python中可以一次為多個(gè)變量賦相同的值,例如如下的示例: a = b = c = 1 print(a=, a, b=, b, c=, c)a= 1 b= 1 c=

39、 1也能一次為多個(gè)變量賦不同的值,例如如下的示例: a , b, c = 1, 2, 3 print(a=, a, b=, b, c=, c)a= 1 b= 2 c= 32.類型判斷和Java不同的是,Python中的變量在定義時(shí)不需要預(yù)先聲明變量的類型,Python會(huì)根據(jù)變量指向的值自動(dòng)判斷該變量的類型。當(dāng)編程時(shí)無法確認(rèn)一個(gè)變量的類型的時(shí)候,可以使用type()函數(shù)來查看該變量的類型,例如如下的示例: a = 1 b = 1 print(變量a的類型:, type(a), n變量b的類型:, type(b)變量a的類型: 變量b的類型: 除此之外,還可以使用isinstance來判斷變量的類

40、型,其返回的結(jié)果為True或False,例如如下的示例: a = 10 isinstance(10, float)#通過isinstance判斷10是否為float類型False已定義的變量的類型并不是一直不變的,它會(huì)跟隨其對應(yīng)的值的類型改變而改變,例如如下的示例: a=1 type(a) #用type()函數(shù)判斷a這一變量的類型,下同 a=1.1 type(a)3.變量的存儲(chǔ)方式要靈活地使用Python變量,必須要先了解Python的變量在內(nèi)存中的存儲(chǔ)方式。首先通過id()函數(shù)查看變量在內(nèi)存中的存儲(chǔ)地址,例如如下的示例: a = 1 b = 2 id(a)#通過id()函數(shù)查看變量a在內(nèi)存中

41、的存儲(chǔ)地址140711954600992 id(b)140711954601024通過運(yùn)行結(jié)果可以知道變量a在內(nèi)存中的存儲(chǔ)地址為140711954600992,變量b的存儲(chǔ)地址為140711954601024,然后執(zhí)行下列代碼: b = a print(a=, a, 地址:, id(a)a= 1 地址: 140711954600992 print(b=, b, 地址:, id(b)b= 1 地址: 140711954600992為什么最后變量b的存儲(chǔ)地址成為變量a的地址了呢?在定義變量a和變量b時(shí),程序首先申請了兩個(gè)內(nèi)存地址,分別存儲(chǔ)整數(shù)1和整數(shù)2,如圖1所示。 當(dāng)使用賦值符號“=”將變量a的

42、值賦給b之后,其實(shí)是讓變量b指向了整數(shù)1,因此變量b的地址變成了變量a的地址,其過程如圖2所示。這點(diǎn)一定要注意,在python中,賦值方式和其他語言不同,其他語言是直接更改變量b內(nèi)存里面的值,而Python直接改變b的指向,類似于C語言中的指針。因此最后打印出來的變量b的地址和值跟變量a是一樣的。圖1圖25 常量Python中沒有專門定義常量的方式,通常使用大寫英文字符表示常量,例如如下的示例: PI = 3.14但是這樣的常量其實(shí)并不是真正的常量,事實(shí)上,Python中的常量也是一種變量,只不過它用大寫字母標(biāo)志,提示程序員不能更改它。6 變量的命名規(guī)則關(guān)于Python的命名規(guī)則,具體有以下幾

43、點(diǎn):(1)變量名應(yīng)該盡量通俗易懂,方便以后維護(hù)時(shí)閱讀代碼。(2)變量名只能包含字母,數(shù)字和下畫線,并且第一個(gè)字符不能是數(shù)字,必須是字母或下畫線。(3)變量名不能包含空格,如果變量中有多個(gè)單詞可以使用下畫線分隔。(4)變量名區(qū)分大小寫,所以變量PI和變量pi是不同的變量名。(5)變量名不能使用代碼中的函數(shù)名或Python內(nèi)置的函數(shù)名命名,如不能使用print來命名變量。(6)變量名不能使用Python的關(guān)鍵字命名。關(guān)鍵字是已被Python編輯工具本身使用,不能作其它用途使用的字,如不能使用if來來命名變量。如需查看Python的關(guān)鍵詞可以使用下列方法: import keyword #導(dǎo)入key

44、word模塊 keyword.kwlistFalse, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield#所有的關(guān)鍵字都已列表的形式存放在kwlist屬性中。Python中的關(guān)鍵字如表所示。FalseclassfromorNonecontinu

45、eglobalPassTruedefifRaiseanddelimportReturnaselifintryassertelseiswhileasyncexceptlambdawithawaitfinallynonlocalyieldbreakfornotPython中的運(yùn)算符運(yùn)算符就像數(shù)學(xué)上的加減乘除一樣,是用來運(yùn)算的一個(gè)符號。Python中的運(yùn)算符遠(yuǎn)不止加減乘除這幾個(gè)。Python中共有7種運(yùn)算符:算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、邏輯運(yùn)算符、成員運(yùn)算符和身份運(yùn)算符。本節(jié)中將詳細(xì)介紹Python中的運(yùn)算符及優(yōu)先級。PART 02算術(shù)運(yùn)算符算術(shù)運(yùn)算符是Python中最常用的運(yùn)算符

46、之一,它跟數(shù)學(xué)上的運(yùn)算符基本一致。Python中的算術(shù)運(yùn)算符共有七個(gè),其描述如表所示。運(yùn)算符+-*/%*/描述加減乘除取余冪取整除前面的+、-、*、/運(yùn)算符使用方法跟數(shù)學(xué)上基本是一致的,不同的是Python中的/運(yùn)算返回的結(jié)果都是浮點(diǎn)數(shù),即使是兩個(gè)能整除的數(shù)也是一樣的,如100/2的運(yùn)算結(jié)果應(yīng)該是整數(shù)50,但是Python返回的是50.0。 100 / 250.0 % 、 * 、 / 運(yùn)算符的示例如: 9 % 4 #9除4的余數(shù)為11 3 * 2 #3的平方為99 9 / 4 #9 / 4 = 2.25,去掉小數(shù)后為22%運(yùn)算符也可以用在格式化輸出字符串中。關(guān)系運(yùn)算符Python的關(guān)系運(yùn)算符主

47、要用于分支和循環(huán)結(jié)構(gòu)中,運(yùn)算結(jié)果返回的布爾值True或False,關(guān)系運(yùn)算符的描述如表所示。運(yùn)算符=!= a = 1 a = 100#a是否等于100False a1 print(a = 100)Traceback (most recent call last): File , line 1, in TypeError: a is an invalid keyword argument for print()上述示例中運(yùn)算符“=”將變量a賦值為1,它不返回任何值,故在print語句中使用會(huì)出錯(cuò),而“=”只是用來判斷變量a的值是否等于100,它們不相等故返回了False。賦值運(yùn)算符賦值運(yùn)算符簡而

48、言之就是拿來為變量賦值的運(yùn)算符,前面定義變量時(shí)用到的“=”就是賦值運(yùn)算符。在Python中賦值運(yùn)算符不僅只有“=”,還有許多的賦值運(yùn)算符,其描述如表所示。序號運(yùn)算符描述示例1=常用的賦值運(yùn)算符a=1,將整數(shù)1賦給變量a2+=加法賦值運(yùn)算符a+=b,等效于a=a+b3-=減法賦值運(yùn)算符a-=b,等效于a=a-b4*=乘法賦值運(yùn)算符a*=b,等效于a=a*b5/=除法賦值運(yùn)算符a/=b,等效于a=a/b6*=冪賦值運(yùn)算符a*=b,等效于a=a*b7%=取余賦值運(yùn)算符a%=b,等效于a=a%b8/=取整賦值運(yùn)算符a/=b,等效于a=a/bPython沒有了C語言和Java中的自增(+)和自減(-)運(yùn)

49、算符,這是由Python變量的存儲(chǔ)方式所決定的??梢允褂觅x值運(yùn)算符“+=”和“-=”代替“+”和“-”,例如如下的示例: a = 1 a += 1#自增1 a2需要注意的是,在Python中使用上面的運(yùn)算符不止能達(dá)到使變量的值自增自減1的效果,還能自增自減任意值,例如如下的示例: a = 1 a -= 2 #自減2 a1位運(yùn)算符Python中的位運(yùn)算符把數(shù)字作為二進(jìn)制數(shù)來運(yùn)算,為方便講解這里先定義兩個(gè)變量a=12和b=10,并用二進(jìn)制將其表示出來為:a=1100,b=1010。位運(yùn)算符的描述如表所示。序號運(yùn)算符描述示例1 &按位與運(yùn)算符:兩個(gè)相應(yīng)的位都為1時(shí),該位結(jié)果為1,否則為0a&b=11

50、00&1010=1000=82 |按位或運(yùn)算符:只要對應(yīng)的二進(jìn)制位有一個(gè)1該位結(jié)果就為1,否則為0a|b=1100|1010=1110=143 按位異或運(yùn)算符:相應(yīng)二進(jìn)制位不相同時(shí)該位結(jié)果就為1,否則為0ab=11001010=0110=64 按位取反運(yùn)算符:將每個(gè)二進(jìn)制位取反,01,10,其結(jié)果類似于將原數(shù)取負(fù)再減1。a=0011=-13b=0101=-11注意這里的二進(jìn)制數(shù)是帶符號的。5左移運(yùn)算符:將二進(jìn)制位全部左移n位a2=00110000=48b右移運(yùn)算符:將二進(jìn)制位全部右移n為a2=0110=3b2=0010=2邏輯運(yùn)算符Python中的邏輯運(yùn)算符有三個(gè):and、or、not,主要用

51、于布爾值的運(yùn)算。and運(yùn)算符只有都為True時(shí),才返回True,使用方法如下: True and True#and表示“與”True True and FalseFalse False and TrueFalse False and FalseFalseor運(yùn)算符只要有一個(gè)為True,就返回True,使用方法如下: True or True#or表示“或”True True or FalseTrue False or TrueTrue False or FalseFalsenot運(yùn)算符可以將True變?yōu)镕alse,F(xiàn)alse變?yōu)門rue,使用方法如下: not True#not表示“非”Fal

52、se布爾值運(yùn)算在流程控制中起著很大的作用,所以請務(wù)必掌握它的使用方法。成員運(yùn)算符成員運(yùn)算符有兩個(gè):in,not in。成員運(yùn)算符主要用于判斷一個(gè)值是否包含在某個(gè)字符串、列表或元組之中。如果包含,則返回True,否則返回False。使用方法如下: a = hello world#定義一個(gè)hello world字符串變量 hello in a#判斷單詞hello是否在字符串變量a中True hi in aFalse hi not in a#判斷單詞hi是否不在字符串變量a中True hello not in aFalse身份運(yùn)算符身份運(yùn)算符有兩個(gè):is,is not。主要用于判斷兩個(gè)標(biāo)識符是否引用

53、于同一個(gè)對象。它的使用方法類似于成員運(yùn)算符,例如如下的示例: a = 1 b = 1 a is b#判斷a和b是否引用于同一個(gè)對象True a is not bFalse id(a)#獲取a的地址140711954600992 id(b)#獲取b的地址140711954600992通過最后的結(jié)果可以看到,變量a和b指向的都是同一個(gè)地址,故“a is b”返回的結(jié)果為True。需要注意的是:這里的“is”運(yùn)算符和“=”運(yùn)算符是有區(qū)別的?!癷s”運(yùn)算符用于判斷變量是否引用于同一個(gè)對象,而“=”運(yùn)算符用于判斷兩個(gè)變量的值是否相等。運(yùn)算符優(yōu)先級表 Python運(yùn)算符優(yōu)先級序號運(yùn)算符說明1*冪(乘方)2

54、、+x、x補(bǔ)碼,一元加減3* 、/ 、% 、/乘,除,取余,取整除4+、-加,減5左移和右移6&按位與7、|按位異或,按位或8=、=比較運(yùn)算符9=、!=等于運(yùn)算符10=、+=、-=、*=、/*、/*、%=賦值運(yùn)算符11is、is not身份運(yùn)算符12in、not in成員運(yùn)算符13not、or、and邏輯運(yùn)算符14lambdalambda表達(dá)式Python中的字符串和編碼PART 031.字符串的定義和使用1.定義字符串變量Python中定義字符串變量的情況在前面已經(jīng)出現(xiàn)過,它跟定義整型和浮點(diǎn)數(shù)變量的方法是一樣的,都是“變量名=字符串內(nèi)容”,例如如下的示例: a = hello,我是Pytho

55、n3.6 ahello,我是Python3.6 print(a)hello,我是Python3.62.獲取字符串長度要獲取字符串的長度可以使用Python內(nèi)置的len()函數(shù),例如如下的示例: a = hello,我是Python3.6 len(a)#返回字符串a(chǎn)的長度173.索引字符串Python中的字符串跟C語言中的字符數(shù)組一樣,也可以通過下標(biāo)索引字符串,下標(biāo)索引的順序從左到右為(0,1,2,3,.,字符串長度-1),從右到左為(-1,-2,-3,.,-字符串長度),例如如下的示例。 a = hello,我是Python3.6 print(a6 + a7 + a-1 + a-2 + a-3

56、)#通過下標(biāo)索引的方法索引字符串下標(biāo)為6,7,-1,-2,-3的部分我是6.34.拼接字符串如果在print語句中想輸出拼接的字符串的話,可以使用“+”運(yùn)算符,也可以使用“*”運(yùn)算符,例如如下的示例。 a = hey b = ha print(a * 3 + b * 4)#變量a輸出三次,變量b輸出四次,并拼接在一起heyheyheyhahahaha5.字符串切片如果程序只需獲取字符串的一部分內(nèi)容,這時(shí)就需要對字符串進(jìn)行切片。Python對字符串的切片方法為:stringstart_index(包含):end_index(不包含):step這里的step表示的是切片間隔,默認(rèn)為1,例如如下的示

57、例。 a = hey a0:2#截取索引值為0,2)的字符he a0:3:2 #截取索引值為0,3)間隔為2的字符hy如果需要將字符串的順序反過來可以使用string:-1,例如如下的示例: a = hey a:-1#字符串逆置yeh如果想原樣輸出字符串還可以使用string:,string:或string:1,例如如下的示例: a:#原樣輸出字符串,下同hey a:hey a:1hey如果想以某個(gè)符號為間隔對字符串切片可以用split()函數(shù),例如如下的示例: a = hey,ha a.split(,) #以逗號對字符串切片hey, ha最后返回的是一個(gè)列表,并可通過索引值獲取列表的內(nèi)容,例

58、如如下的示例: a.split(,)0#以逗號對字符串切片,且只輸出下標(biāo)為0部分hey6.查找字符串內(nèi)容Python中查找字符串可以使用內(nèi)置的find()函數(shù)、rfind()函數(shù)、index()函數(shù)、rindex()函數(shù),例如如下的示例。 a = hey a.find(h)#從左開始查找,返回索引值00 a.rfind(e)#從右開始查找,返回索引值11 a.index(h)#從左開始查找,返回索引值00 a.index(c) #未查找到,報(bào)錯(cuò)Traceback (most recent call last): File , line 1, in ValueError: substring n

59、ot found a.rindex(e)#從右開始查找,返回索引值11 a.find(c)#未查找到,返回-1-1從上可以看出,find()函數(shù)和index()函數(shù)都能用來查找字符串中的內(nèi)容,并且返回的都是查找內(nèi)容在字符串中的索引值。不同的是當(dāng)查找的內(nèi)容不存在時(shí),find()函數(shù)返回的索引值為-1,而index()函數(shù)則會(huì)報(bào)錯(cuò)。因此,當(dāng)需要查找字符串中的內(nèi)容時(shí),使用find()函數(shù)會(huì)更可靠。上述函數(shù)對字符串的查找都是簡單的查找。如果需要查找相對較復(fù)雜的內(nèi)容,則需要使用正則表達(dá)式,這將會(huì)在本書的第10章中講解。7.替換字符串替換字符串可以使用replace()函數(shù),該函數(shù)返回的是一個(gè)新的字符串,

60、例如如下的示例: a = hey a.replace(e, i, 1)#將hey中的e替換為i,替換次數(shù)為1hiy8.轉(zhuǎn)換大小寫Python轉(zhuǎn)換字符串大小寫的函數(shù)有:capitalize()函數(shù)、title()函數(shù)、lower()函數(shù)、upper()函數(shù),例如如下的示例: a = hey b = ha c = a * 2 + , + b * 2 print(c) #拼接字符串heyhey,haha print(c.capitalize()#字符串首字母大寫Heyhey,haha print(c.title()#字符串每個(gè)單詞第一個(gè)字母大寫Heyhey,Haha print(c.lower()

溫馨提示

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

最新文檔

評論

0/150

提交評論