版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1.1程序設(shè)計(jì)語(yǔ)言
1.2python語(yǔ)言
1.3Python開發(fā)環(huán)境
第1章python語(yǔ)言初體驗(yàn)考綱考點(diǎn)高級(jí)語(yǔ)言的執(zhí)行方式:編譯與解釋python程序的安裝和編輯pip工具安裝第三方庫(kù)知識(shí)導(dǎo)圖概述高級(jí)語(yǔ)言的執(zhí)行1.1程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是一種用于交互(交流)的人造語(yǔ)言
-機(jī)器語(yǔ)言:機(jī)器能夠直接識(shí)別和執(zhí)行的二進(jìn)制代碼
-
匯編語(yǔ)言:使用助記符代替機(jī)器語(yǔ)言中的二進(jìn)制代碼
-高級(jí)語(yǔ)言:接近人類的自然語(yǔ)法和結(jié)構(gòu)來編寫程序1.1.1概述1.1.2高級(jí)語(yǔ)言的執(zhí)行計(jì)算機(jī)執(zhí)行源程序的兩種方式:編譯和解釋
-源代碼:采用某種編程語(yǔ)言編寫的計(jì)算機(jī)程序,人類可讀
例如:result=2+3
-
目標(biāo)代碼:計(jì)算機(jī)可直接執(zhí)行,人類不可讀(專家除外)
例如:1101001000111011編譯將源代碼一次性轉(zhuǎn)換成目標(biāo)代碼的過程執(zhí)行編譯過程的程序叫作編譯器源代碼目標(biāo)代碼編譯器程序輸入結(jié)果輸出程序執(zhí)行解釋將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時(shí)逐條運(yùn)行的過程執(zhí)行解釋過程的程序叫作解釋器源代碼解釋器程序輸入結(jié)果輸出編譯和解釋
-編譯:一次性翻譯,之后不再需要源代碼(類似英文翻譯)-
解釋:每次程序運(yùn)行時(shí)隨翻譯隨執(zhí)行(類似實(shí)時(shí)的同聲傳譯)源代碼目標(biāo)代碼編譯器程序輸入結(jié)果輸出程序執(zhí)行源代碼解釋器程序輸入結(jié)果輸出compilerinterpreterPython語(yǔ)言的發(fā)展Python語(yǔ)言的特點(diǎn)Python語(yǔ)言的應(yīng)用領(lǐng)域第一個(gè)Python程序1.2Python語(yǔ)言
-誕生于20世紀(jì)90年代初
-
解決兼容性問題的Python3.0
-目前持續(xù)在各個(gè)領(lǐng)域發(fā)揮作用1.2.1Python語(yǔ)言的發(fā)展
-語(yǔ)法簡(jiǎn)潔
-
面向?qū)ο?/p>
-可移植
-解釋型1.2.2Python語(yǔ)言的特點(diǎn)1.2.3Python語(yǔ)言的應(yīng)用領(lǐng)域移動(dòng)設(shè)備嵌入式設(shè)備系統(tǒng)運(yùn)維大數(shù)據(jù)云計(jì)算1.2.4第一個(gè)Python程序>>>print("Hello,World")Hello,World
其中第一行的”>>>”是python語(yǔ)言環(huán)境中的提示符,我們可以在提示符后面輸入python語(yǔ)句。第二行就是這條python語(yǔ)句的輸出結(jié)果了。解釋器的安裝Python程序的編輯Pip工具簡(jiǎn)介1.3Python的開發(fā)環(huán)境
-根據(jù)實(shí)際需要選擇相應(yīng)的版本,有以下考慮:1.新特性,可選擇最新版本2.穩(wěn)定性,可選擇3.8或者3.73.與庫(kù)的兼容性,選擇兼容性最好的版本4.先前的經(jīng)驗(yàn),可選擇熟悉版本1.3.1解釋器的安裝Python官方提供適用于小規(guī)模程序開發(fā)
-下載地址: /downloads下載頁(yè)安裝Python解釋器有兩個(gè)重要的工具:IDLE:Python集成開發(fā)環(huán)境,用來編寫和調(diào)試Python代碼;Pip:Python第三方庫(kù)安裝工具,用來在當(dāng)前計(jì)算機(jī)上安裝第三方庫(kù)
-交互式
-文件式
1.3.2Python程序的編輯輸入代碼,可以立即查看程序的輸出結(jié)果或執(zhí)行效果只適合簡(jiǎn)短代碼的測(cè)試,且不方便修改,退出也無法保存代碼,不適合實(shí)際的編程。交互式允許程序員在編程過程中與計(jì)算機(jī)進(jìn)行實(shí)時(shí)互動(dòng)。在IDLE中,可以通過選擇File->NewFile來創(chuàng)建一個(gè)新的Python文件文件式在文件中編寫代碼,然后保存并運(yùn)行文件編輯窗口如下圖所示注意程序運(yùn)行的結(jié)果會(huì)顯示在idle的交互式窗口中此外,也可以通過Windows的命令行(cmd.exe)運(yùn)行Python程序,對(duì)于文件名稱為code.py的文件,可以使用命令行python
code.py運(yùn)行這個(gè)程序。在圖形化操作系統(tǒng)中,可以通過鼠標(biāo)點(diǎn)擊直接運(yùn)行Python程序。沒有安裝Python解釋器的操作系統(tǒng)無法直接運(yùn)行Python程序,需要將Python源代碼打包變成可執(zhí)行文件,這個(gè)過程叫做“程序發(fā)布”。1.3.3pip工具pip是Python的一個(gè)包管理工具,用于安裝、升級(jí)、卸載Python包,用于安裝python的第三方庫(kù)使用pip工具需要在命令行窗口中進(jìn)行常用pip命令及使用方法使用pip命令安裝第三方庫(kù)本章小結(jié)在本章中,我們首先概覽了程序設(shè)計(jì)語(yǔ)言的發(fā)展,從機(jī)器語(yǔ)言到高級(jí)語(yǔ)言的演變過程中,看到了編程的便利性和效率不斷提升。接著,我們深入探討了Python語(yǔ)言的特點(diǎn)和應(yīng)用領(lǐng)域,其簡(jiǎn)潔、易讀的語(yǔ)法以及廣泛的應(yīng)用領(lǐng)域使得Python成為編程界的明星。最后,我們還介紹了Python開發(fā)環(huán)境的搭建,包括解釋器的安裝、程序的編輯以及pip工具的使用,為后續(xù)的學(xué)習(xí)和實(shí)踐打下了堅(jiān)實(shí)的基礎(chǔ)。讓我們攜手繼續(xù)探索Python的奧妙和無限可能吧!。2.1Python語(yǔ)言的編程規(guī)范
2.2常量、變量與對(duì)象
2.3數(shù)據(jù)類型
2.4Python的語(yǔ)句概述
2.5輸入/輸出函數(shù)
2.6turtle庫(kù)
第2章Python的基本語(yǔ)法概述考綱考點(diǎn)程序的基本語(yǔ)法元素:程序的格式框架、縮進(jìn)、
注釋、變量、命名、保留字、數(shù)據(jù)類型、賦值語(yǔ)
句、引用語(yǔ)句、控制語(yǔ)句基本輸入輸出函數(shù):input()、eval()、print()Turtle庫(kù)知識(shí)導(dǎo)圖2.1Python語(yǔ)言的編程規(guī)范2.1.1代碼縮進(jìn)
Python語(yǔ)言采用嚴(yán)格的“縮進(jìn)”來表明程序的格式框架??s進(jìn)指每一行代碼開始前的空白區(qū)域,用來表示代碼之間的包含和層次關(guān)系。
1個(gè)縮進(jìn)
=4個(gè)空格縮進(jìn)是Python語(yǔ)言中表明程序框架的唯一手段縮進(jìn)
當(dāng)表達(dá)分支、循環(huán)、函數(shù)、類等程序含義時(shí),在if、while、for、def、class等保留字所在完整語(yǔ)句后通過英文冒號(hào)(:)結(jié)尾,表示縮進(jìn)的開始。
python程序是依靠代碼塊的縮進(jìn)來體現(xiàn)代碼之間的邏輯關(guān)系的,縮進(jìn)結(jié)束就表示一個(gè)代碼塊結(jié)束了。
同一個(gè)級(jí)別的代碼塊的縮進(jìn)量必須相同例2-1編程,根據(jù)輸入的年份和月份計(jì)算出該月的天數(shù)。代碼如下:year=int(input("請(qǐng)輸入年份:"))month=int(input("請(qǐng)輸入月份:"))ifmonth==2:ifyear%4==0andyear%100!=0oryear%400==0:days=29else:days=28elifmonthin[4,6,9,11]:days=30else:days=31print("本月天數(shù)是:",days)2.1.2注釋注釋是代碼中的輔助性文字,會(huì)被編譯或解釋器略去,不被計(jì)算機(jī)執(zhí)行,一般用于程序員對(duì)代碼的說明。Python語(yǔ)言采用#表示一行注釋的開始,?
?注釋可以在一行中任意位置通過“#”開始,其后的本行內(nèi)容被當(dāng)作注釋,而之前的內(nèi)容仍然是python執(zhí)行程序的一部分。注釋
多行注釋可以用三個(gè)單引號(hào)(''')括起來。?
??
?2.1.3續(xù)行?
?續(xù)行符可以提高代碼的可讀性和可維護(hù)性。當(dāng)一行代碼過長(zhǎng)時(shí),不僅會(huì)導(dǎo)致代碼難以閱讀和修改,還會(huì)影響代碼的性能??梢允褂梅葱备埽╘)來實(shí)現(xiàn)代碼的續(xù)行
還可以使用括號(hào)續(xù)行。Python會(huì)自動(dòng)將這幾行代碼當(dāng)作一行代碼來處理,文件方式和交互方式下均可使用。?
??
?2.1.4標(biāo)識(shí)符的命名?
?標(biāo)識(shí)符是用戶編程時(shí)使用的名字。對(duì)標(biāo)識(shí)符命名是編程語(yǔ)言規(guī)則的一部分,它規(guī)定了如何為變量、函數(shù)、類、模塊等編程元素取名字。一般采用字母、數(shù)字、下劃線,甚至漢字等字符及其組合進(jìn)行命名,但要注意的是,首字符不能是數(shù)字,不允許使用空格和特殊字符(如感嘆號(hào)、問號(hào)、冒號(hào)等)例如:變量名my_variable,函數(shù)名_my_function,類名MyClass等等
標(biāo)識(shí)符對(duì)大小寫敏感,即china和China是兩個(gè)不同的名字;對(duì)標(biāo)識(shí)符命名還需要注意的是不能與python的保留字相同。?
??
??
?續(xù)行符可以提高代碼的可讀性和可維護(hù)性。當(dāng)一行代碼過長(zhǎng)時(shí),不僅會(huì)導(dǎo)致代碼難以閱讀和修改,還會(huì)影響代碼的性能??梢允褂梅葱备埽╘)來實(shí)現(xiàn)代碼的續(xù)行
保留字,也稱為關(guān)鍵字,指被編程語(yǔ)言內(nèi)部定義并保留使用的標(biāo)識(shí)符。程序員編寫程序不能定義與保留字相同的標(biāo)識(shí)符。
每種程序設(shè)計(jì)語(yǔ)言都有一套保留字,保留字一般用來構(gòu)成程序整體框架、表達(dá)關(guān)鍵值和具有結(jié)構(gòu)性的復(fù)雜語(yǔ)義等。掌握一門編程語(yǔ)言首先要熟記其所對(duì)應(yīng)的保留字。2.1.5保留字
Python3.x保留字列表
(35個(gè))2.2常量、變量與對(duì)象2.2.1常量所謂常量,一般是指不需要改變也不能改變的字面值?
?在python中,還會(huì)出現(xiàn)一類符號(hào)常量,一般用大寫字母來表示例如一個(gè)數(shù)字5,一個(gè)字符串“hello!”,一個(gè)列表[1,2,3],等等。例如:MAX_VALUE、PI
Python中并沒有真正的符號(hào)常量,由于Python中沒有強(qiáng)制符號(hào)常量類型的定義方式,這些所謂的符號(hào)常量類型只是程序員約定俗成的表示方式而已,在實(shí)際操作中,其本質(zhì)還是變量。?
??
?>>>MAX_VALUE=100>>>print(MAX_VALUE)100>>>MAX_VALUE=200>>>print(MAX_VALUE)2002.2.2變量
變量是保存和表示數(shù)據(jù)值的一種語(yǔ)法元素,在程序中十分常見。顧名思義,變量的值是可以改變的,能夠通過賦值(使用等號(hào)=表達(dá))方式被修改,例如(注意空格):?>>>x=5>>>x5>>>x="中國(guó)">>>x'中國(guó)'2.2.3對(duì)象每個(gè)對(duì)象由:標(biāo)識(shí)(identity),類型(type),值(value)組成在Python中一切皆對(duì)象。值表示對(duì)象所存儲(chǔ)的數(shù)據(jù)的信息。使用print(obj)可以直接打印出值標(biāo)識(shí)用于唯一標(biāo)識(shí)對(duì)象,通常對(duì)應(yīng)于對(duì)象在計(jì)算機(jī)內(nèi)存中的地址。使用內(nèi)置函數(shù)id(obj)可返回對(duì)象的標(biāo)識(shí)類型用于表示對(duì)象存儲(chǔ)的“數(shù)據(jù)”類型??梢韵拗茖?duì)象的取值范圍以及可執(zhí)行的操作。使用內(nèi)置函數(shù)type(obj)可返回對(duì)象的所屬類型其本質(zhì):一個(gè)內(nèi)存塊,擁有特定的值,支持特定類型的相關(guān)操作特別說明:
在python中,變量其實(shí)是對(duì)象的引用,因?yàn)樽兞看鎯?chǔ)的是對(duì)象的地址,變量通過地址引用了“對(duì)象”。變量位于:棧內(nèi)存對(duì)象位于:堆內(nèi)存對(duì)象沒有被引用的時(shí)候,會(huì)被回收到垃圾堆棧內(nèi)存堆內(nèi)存3xy1985553168>>>x=3>>>id(x)#查看x的引用地址1985553168>>>id(3)#查看對(duì)象3的地址1985553168
在Python中,對(duì)象可以分為可變對(duì)象和不可變對(duì)象。?
??
?不可變對(duì)象是指該對(duì)象所指向的內(nèi)存中的值不能被改變。當(dāng)改變某個(gè)變量時(shí),由于其所指的值不能被改變,因此會(huì)開辟一個(gè)新的地址,變量再指向這個(gè)新的地址。在Python中,數(shù)值類型(int和float)、字符串(str)和元組(tuple)都是不可變對(duì)象。不可變對(duì)象棧內(nèi)存堆內(nèi)存3x198555316841985553200>>>x=3>>>id(x)1985553168>>>id(3)1985553168>>>x=x+1>>>id(x)1985553200>>>id(3)1985553168>>>id(4)1985553200?
??
?可變對(duì)象是指該對(duì)象所指向的內(nèi)存中的值可以被改變。變量(準(zhǔn)確的說是引用)改變后,實(shí)際上是其所指的值直接發(fā)生改變,并沒有發(fā)生復(fù)制行為,也沒有開辟出新地址,通俗點(diǎn)說就是原地改變。在Python中,列表(list)、字典(dict)和集合(set)是可變對(duì)象??勺儗?duì)象棧內(nèi)存堆內(nèi)存1x3063083889992234>>>x=[1,2,3]#x為列表>>>id(x)#查看x的引用地址3063083889992>>>x.append(4)#給x增加元素4>>>x[1,2,3,4]#此時(shí)x值發(fā)生變化>>>id(x)#x的引用地址沒變3063083889992
Python中,可變對(duì)象和不可變對(duì)象其值都能夠被引用,就是都可以做“讀”操作。但是“寫”操作只能對(duì)可變對(duì)象進(jìn)行。?
??
?2.3數(shù)據(jù)類型
Python語(yǔ)言支持多種數(shù)據(jù)類型,最簡(jiǎn)單的包括數(shù)字類型、字符串類型,略微復(fù)雜的包括元組類型、集合類型、列表類型、字典類型等。2.3.1數(shù)字類型
表
示
數(shù)
字
或
數(shù)
值
的
數(shù)
據(jù)
類
型
稱
為
數(shù)
字
類
型
,Python語(yǔ)言提供3種數(shù)字類型:整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù),分別對(duì)應(yīng)數(shù)學(xué)中的整數(shù)、實(shí)數(shù)和復(fù)數(shù)。整數(shù)
一個(gè)整數(shù)值可以表示為十進(jìn)制、十六進(jìn)制、八進(jìn)制和二進(jìn)制等不同進(jìn)制形式。在Python3中,整數(shù)沒有大小限制,可以是任意大小的整數(shù)。十進(jìn)制:
1010十六進(jìn)制:0x3F2八進(jìn)制:
0o1762二進(jìn)制:
0b001111110010浮點(diǎn)數(shù)
一個(gè)浮點(diǎn)數(shù)可以表示為帶有小數(shù)點(diǎn)的一般形式,也可以采用科學(xué)計(jì)數(shù)法表示,只有十進(jìn)制形式。例如:浮點(diǎn)數(shù)123.456,兩種表示方式如下:一般形式:123.456科學(xué)計(jì)數(shù)法:
1.23456e2整數(shù)與浮點(diǎn)數(shù)混合運(yùn)算時(shí),表達(dá)式自動(dòng)轉(zhuǎn)成浮點(diǎn)數(shù)復(fù)數(shù)
Python中的復(fù)數(shù)由實(shí)部和虛部組成,可以使用a+bj或者complex(a,b)表示,其中a和b都是實(shí)數(shù),且a稱為復(fù)數(shù)的實(shí)部,b稱為復(fù)數(shù)的虛部??梢允褂胘或J表示復(fù)數(shù)的虛部>>>x=5+6j>>>y=7+8j>>>x+y(12+14j)>>>x*y(-13+82j)2.3.2字符串類型
Python語(yǔ)言中,字符串類型數(shù)據(jù)主要用于處理一些文本類信息,有字符串類型的常量和變量,單個(gè)字符也是字符串。
Python使用單引號(hào)、雙引號(hào)、三個(gè)單引號(hào),三個(gè)雙引號(hào)作為定界符表示字符串,且不同的定界符之間可以相互嵌套使用>>>x="456">>>type(x)<class'str'>>>>x='happy'>>>type(x)<class'str'>>>>x='''Hesaid,"HappyBirthday"'''#為了輸出雙引號(hào),引號(hào)嵌套使用>>>x'Hesaid,"HappyBirthday"'2.3.3布爾類型布爾類型數(shù)據(jù)只有兩個(gè)值:True和False。布爾類型的特點(diǎn)是占用內(nèi)存空間小,使用靈活,常用于if語(yǔ)句、循環(huán)語(yǔ)句、條件表達(dá)式中,進(jìn)行邏輯判斷和條件判斷布爾類型可以與其他數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,如與整數(shù)類型(int)進(jìn)行轉(zhuǎn)換時(shí),True對(duì)應(yīng)1,F(xiàn)alse對(duì)應(yīng)0。>>>TrueandTrue#與運(yùn)算True>>>TrueandFalseFalse>>>FalseandTrueFalse>>>TrueorTrue#或運(yùn)算True>>>TrueorFalseTrue>>>FalseorTrueTrue>>>notTrue#非運(yùn)算False>>>notFalseTrue>>>3*True#布爾值可以直接參與整數(shù)運(yùn)算3>>>3*False0and是邏輯與運(yùn)算,or是邏輯或運(yùn)算,not是邏輯非運(yùn)算2.3.4組合數(shù)據(jù)類型
在Python中,組合數(shù)據(jù)類型是指可以包含不同類型的元素的數(shù)據(jù)結(jié)構(gòu)。Python中的組合數(shù)據(jù)類型主要包括列表(list)、元組(tuple)、字典(dictionary)和集合(set)。列表列表是一種有序的元素集合,可以隨時(shí)添加或刪除其中的元素。列表中的元素可以是任何類型,例如字符串、整數(shù)、浮點(diǎn)數(shù)、其他列表等。列表使用“[]”作為定界符。>>>x=[36,"happy",3.14]>>>type(x)<class'list'>元組元組與列表類似,是一個(gè)有序的元素集合,但元組是不可變對(duì)象,一旦創(chuàng)建就不能更改。元組中的元素也可以是任何類型。元組使用“()”作為定界符。>>>x=(56,"happy",[3,5,7])>>>x(56,'happy',[3,5,7])>>>type(x)<class'tuple'>字典字典是無序的鍵值對(duì)集合。字典中的元素以鍵值對(duì)的形式存在,你可以通過鍵來訪問其對(duì)應(yīng)的值。字典中的鍵必須是唯一的。值可以是任何類型,包括列表、元組、字典等。字典使用“{}”作為定界符。>>>x={'name':'John','age':18,'hobbies':['fishing','reading']}>>>x{'name':'John','hobbies':['fishing','reading'],'age':18}>>>type(x)<class'dict'>集合集合是一個(gè)無序的唯一元素集合。集合中的元素都是唯一的,不會(huì)重復(fù)。集合支持一些數(shù)學(xué)集合的操作,如并集、交集、差集等。集合中的元素只能是不可變對(duì)象。集合也使用“{}”作為定界符。>>>x={3.14,4,'abc',(4,6)}>>>x{3.14,4,(4,6),'abc'}>>>type(x)<class'set'>2.4Python的語(yǔ)句概述
2.4.1表達(dá)式
產(chǎn)生或計(jì)算新數(shù)據(jù)值的代碼片段稱為表達(dá)式。表達(dá)式類似數(shù)學(xué)中的計(jì)算公式,以表達(dá)單一功能為目的,運(yùn)算后產(chǎn)生運(yùn)算結(jié)果,運(yùn)算結(jié)果的類型由操作符或運(yùn)算符決定。
表達(dá)式一般由數(shù)據(jù)和操作符等構(gòu)成,這是構(gòu)成Python語(yǔ)句的重要部分,單個(gè)常量或變量可以看作最簡(jiǎn)單的表達(dá)式。現(xiàn)在主要區(qū)別一下表達(dá)式和語(yǔ)句,示例代碼如下:>>>3*26>>>x=3*2>>>x62.4.2賦值語(yǔ)句
Python語(yǔ)言中,=表示“賦值”,即將等號(hào)右側(cè)的值計(jì)算后將結(jié)果值賦給左側(cè)變量,包含等號(hào)(=)的語(yǔ)句稱為“賦值語(yǔ)句”<變量>=<表達(dá)式>示例代碼如下:>>>x=99#給變量x賦值為整數(shù)值99>>>y=3.33#給變量y賦值為浮點(diǎn)數(shù)3.33>>>z="你好,中國(guó)!"#給變量z賦值為字符串"你好,中國(guó)!"多重賦值同時(shí)將多個(gè)變量的值賦給多個(gè)表達(dá)式>>>x,y,z=3,7.8,"hi"#多重賦值>>>x3>>>y7.8>>>z'hi'>>>x,y=y,x#多重賦值,交換x,y的值>>>x7.8>>>y3增強(qiáng)賦值使用+=、-=、*=、/=等運(yùn)算符對(duì)變量進(jìn)行增強(qiáng)賦值。>>>x,y,z=1,2,3>>>x+=10#等價(jià)于x=x+10>>>y-=5#等價(jià)于y=y-5>>>z*=2#等價(jià)于z=z*2鏈?zhǔn)劫x值可以將同一個(gè)值賦給多個(gè)變量。>>>x=y=z=3#鏈?zhǔn)劫x值>>>x3>>>y3>>>z3解構(gòu)賦值將一個(gè)元組或列表的值解包并賦給多個(gè)變量。>>>x,y=[1,2]#將列表[1,2]解包,并將1賦給x,2賦給y>>>x1>>>y22.4.3import語(yǔ)句在python默認(rèn)的安裝中僅包含了核心模塊,啟動(dòng)python時(shí)也只加載了核心模塊,還有一些標(biāo)準(zhǔn)庫(kù)是啟動(dòng)時(shí)沒裝入內(nèi)存的,這樣做的好處是可以減小程序運(yùn)行的壓力。所以,當(dāng)用戶需要使用標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)的時(shí)候,就會(huì)有一步非常重要的第一步操作,即導(dǎo)入庫(kù),導(dǎo)入使用的是import語(yǔ)句。下面介紹三種格式的導(dǎo)入的方法。方法1這種格式的導(dǎo)入語(yǔ)句,在使用的時(shí)候需要在模塊對(duì)象的前面加上模塊名作為前綴,必須以“模塊名.對(duì)象“的方式進(jìn)行訪問。如果模塊名字很長(zhǎng)的話,可以為導(dǎo)入的模塊設(shè)置一個(gè)別名,使用“別名.對(duì)象名”進(jìn)行訪問。
格式:import模塊名[as別名]importmath#導(dǎo)入標(biāo)準(zhǔn)庫(kù)mathresult=math.sqrt(16)#計(jì)算16的平方根print(result)#輸出結(jié)果importrandomasr#導(dǎo)入標(biāo)準(zhǔn)庫(kù)random,并設(shè)置別名rx=r.random()#獲得[0.0,1.0)區(qū)間的隨機(jī)小數(shù)方法2這種格式的導(dǎo)入語(yǔ)句,僅導(dǎo)入明確指定的對(duì)象,也可以為導(dǎo)入的對(duì)象確定一個(gè)別名。此導(dǎo)入方式可以減少查詢次數(shù),提高訪問速度,同時(shí)也可以減少輸入量,不需要使用模塊名為前綴。
格式:from模塊名import對(duì)象名[as別名]>>>frommathimportsin#導(dǎo)入標(biāo)準(zhǔn)庫(kù)math中的指定對(duì)象sin>>>sin(3.14)0.0015926529164868282>>>cos(3.14)#math庫(kù)中的cos對(duì)象并沒導(dǎo)入,出錯(cuò)Traceback(mostrecentcalllast):File"<pyshell#100>",line1,in<module>cos(3.14)NameError:name'cos'isnotdefined>>>frommathimportcosasf#導(dǎo)入cos,并起別名為f>>>f(3.14)-0.9999987317275395方法3是方法2的極端情況,可以一次導(dǎo)入模塊中所有對(duì)象。一般不推薦使用,一方面,會(huì)降低代碼的可讀性,有時(shí)很難區(qū)分自定義函數(shù)和從模塊中導(dǎo)入的函數(shù);另一方面,會(huì)導(dǎo)致命名空間的混亂。如果多個(gè)模塊中有同名的對(duì)象,只有最后一個(gè)導(dǎo)入的模塊中的對(duì)象是有效的。
格式:from模塊名import*>>>frommathimport*#導(dǎo)入math庫(kù)>>>gcd(12,24)#求最大公約數(shù)12>>>pi#常數(shù)?3.141592653589793>>>log2(8)#計(jì)算以2為底的8的對(duì)數(shù)3.0>>>sin(4)#求sin函數(shù)值-0.75680249530792822.4.4控制語(yǔ)句
除了賦值語(yǔ)句外,Python程序還包括一些其他的語(yǔ)句類型,例如,分支語(yǔ)句和循環(huán)語(yǔ)句等。更多的分支和循環(huán)內(nèi)容將在第4章介紹。這里僅簡(jiǎn)要介紹這兩類語(yǔ)句的基本使用。??分支語(yǔ)句if
if語(yǔ)句,是一種選擇結(jié)構(gòu),有單分支、二分支和多分支,其作用是根據(jù)判斷條件選擇程序執(zhí)行路徑。示例代碼如下:x=10ifx>5:print("x大于5")else:print("x不大于5")??for語(yǔ)句
for語(yǔ)句,是一種循環(huán)結(jié)構(gòu),其作用是根據(jù)判斷條件確定一段程序是否需要反復(fù)執(zhí)行。示例代碼如下:>>>foriinrange(10): print(i,end=",")0,1,2,3,4,5,6,7,8,9,2.5輸入/輸出函數(shù)2.5.1input()函數(shù)
獲得用戶輸入之前,input()函數(shù)可以包含一些提示性文字<變量>=input(<提示性文字>)?
不論用戶輸入什么內(nèi)容,input()一律作為字符串對(duì)待,必要時(shí)可以使用內(nèi)置函數(shù)int()、float()或eval()對(duì)用戶輸入的內(nèi)容進(jìn)行類型轉(zhuǎn)換>>>x=input("請(qǐng)輸入數(shù)字:")請(qǐng)輸入數(shù)字:3.14>>>x'3.14'#3.14兩邊有單引號(hào)>>>type(x)<class'str'>eval()
函數(shù)
eval(<字符串>)函數(shù)是Python語(yǔ)言中一個(gè)十分重要的函數(shù),它能夠以Python表達(dá)式的方式解析并執(zhí)行字符串,將返回結(jié)果輸出>>>a?=?eval("1.2?+?3.4")>>>print(a)4.6?
eval()函數(shù)經(jīng)常和input()函數(shù)一起使用,用來獲取用戶輸入的數(shù)字,使用方式如下:<變量>=eval(input(<提示性文字>))?>>>x=eval(input("請(qǐng)輸入數(shù)字:"))請(qǐng)輸入數(shù)字:789>>>type(x)<class'int'>>>>x=eval(input("請(qǐng)輸入數(shù)字:"))請(qǐng)輸入數(shù)字:7.89>>>type(x)<class'float'>2.5.2print()函數(shù)?內(nèi)置函數(shù)print()用于輸出信息,其輸出的信息既可以到標(biāo)準(zhǔn)控制臺(tái)(例如:顯示器,打印機(jī)等設(shè)備)也可以到指定的文件。使用格式如下:
print(value1,value2,...,sep='',end='\n',file=sys.stdout,flush=False)參數(shù)說明1?value1,value2,...:參數(shù)列表,要打印輸出的值,可以是多個(gè),用逗號(hào)分隔。示例代碼如下:>>>a=35>>>print(a)#參數(shù)為變量35>>>print("好好學(xué)習(xí),報(bào)效祖國(guó)")#參數(shù)為字符串常量好好學(xué)習(xí),報(bào)效祖國(guó)>>>print(["g","o","o","d"])#參數(shù)為列表['g','o','o','d']>>>print(35.6)#參數(shù)為浮點(diǎn)數(shù)35.6參數(shù)說明1?參數(shù)既可以是字符串、數(shù)據(jù)值也可以是變量。當(dāng)參數(shù)為變量的時(shí)候,運(yùn)行結(jié)果是變量的值;當(dāng)參數(shù)為字符串的時(shí)候,運(yùn)行結(jié)果是不帶引號(hào)的可打印字符;當(dāng)參數(shù)中包含雙引號(hào)字符串時(shí),如上例中的列表“["g","o","o","d"]”,其輸出結(jié)果采用單引號(hào)形式“['g','o','o','d']”;參數(shù)為其他數(shù)據(jù)類型時(shí),直接輸出表示。參數(shù)說明1?print()函數(shù)可以有多個(gè)參數(shù),各參數(shù)之間用逗號(hào)分隔,其運(yùn)行輸出結(jié)果之間用一個(gè)空格分隔。示例代碼如下:>>>b=10.25>>>print(b,b+1,b*2,1.25)#有四個(gè)參數(shù),用逗號(hào)分隔10.2511.2520.51.25>>>print("富強(qiáng)","民主","文明")富強(qiáng)
民主
文明參數(shù)說明2?sep='':可選參數(shù),指定多個(gè)值之間的分隔符字符。如果省略不寫,則默認(rèn)為一個(gè)空格。示例代碼如下:>>>print("富強(qiáng)","民主","文明",sep="**")富強(qiáng)**民主**文明參數(shù)說明3?end='\n':可選參數(shù),指定打印輸出后的結(jié)束字符。如果省略不寫,則默認(rèn)為一個(gè)換行符。示例代碼如下:>>>foriinrange(3):print(i)012>>>foriinrange(3): print(i,end='&')0&1&2&參數(shù)說明4?file=sys.stdout:可選參數(shù),指定輸出文件對(duì)象。如果省略不寫,則默認(rèn)為標(biāo)準(zhǔn)輸出,即輸出結(jié)果到屏幕或者打印機(jī)。示例代碼如下:>>>withopen(r"d:\output.txt","w")asf: print("床前明月光",file=f)當(dāng)執(zhí)行完以上語(yǔ)句內(nèi)容后,print()函數(shù)的file參數(shù),將輸出結(jié)果"床前明月光"寫到一個(gè)名為output.txt的文件中參數(shù)說明5?flush=False:可選參數(shù),指定是否刷新輸出緩沖區(qū)。如果省略不寫,則默認(rèn)為False。示例代碼如下:>>>print("Hi,Mike!",flush=True)Hi,Mike!這個(gè)例子中,我們使用了flush=True參數(shù),確保輸出值立即顯示在控制臺(tái)上,一般使用中用默認(rèn)方式即可。因?yàn)檫@個(gè)參數(shù)涉及到緩沖區(qū)的刷新,需要學(xué)到更高階才能了解其具體區(qū)別,此處只做一般性了解2.6Turtle庫(kù)
turtle(海龜)是Python重要的標(biāo)準(zhǔn)庫(kù)之一,它能夠進(jìn)行基本的圖形繪制。
turtle庫(kù)繪制圖形有一個(gè)基本框架:一個(gè)小海龜在坐標(biāo)系中爬行,其爬行軌跡形成了繪制圖形。對(duì)于小海龜來說,有“前進(jìn)”、“后退”、“旋轉(zhuǎn)”等爬行行為,對(duì)坐標(biāo)系的探索也通過“前進(jìn)方向”、“后退方向”、“左側(cè)方向”和“右側(cè)方向”等小海龜自身角度方位來完成。2.6.1turtle的坐標(biāo)系????在Python的turtle庫(kù)中,我們主要使用了兩種坐標(biāo)系:空間坐標(biāo)系和角度坐標(biāo)系??臻g坐標(biāo)系:用來描述海龜在畫布上的位置的坐標(biāo)系。默認(rèn)狀態(tài)下,海龜?shù)某跏嘉恢脼楫嫴嫉闹行模簿褪窃c(diǎn)(0,0)。????角度坐標(biāo)系:這是用來描述海龜?shù)姆较虻淖鴺?biāo)系。絕對(duì)角度坐標(biāo)系以向右方向水平位置為0度,逆時(shí)針方向?yàn)檎较颉O鄬?duì)角度坐標(biāo)系與海龜頭的初始位置有關(guān),以海龜頭當(dāng)前朝向的左右側(cè)作為相對(duì)角度選擇。2.6.2turtle的畫布函數(shù)turtle中有畫布(Canvas)和畫筆兩個(gè)工具元素。畫布是turtle模塊用于繪圖的區(qū)域,在該畫布上有一個(gè)坐標(biāo)軸,坐標(biāo)原點(diǎn)在畫布的中心,turtle模塊中的x軸正方向指向右側(cè),y軸正方向指向上方。坐標(biāo)原點(diǎn)位于畫布的中心。畫布主要使用兩個(gè)函數(shù):
turtle.screensize(width,height,bgcolor)作用:設(shè)置畫布的大小和背景顏色width參數(shù):設(shè)置畫布的寬度height參數(shù):設(shè)置畫布的高度bgcolor:設(shè)置背景顏色,其值為表示顏色的字符串或者RGB數(shù)值。當(dāng)寬度或者高度為整數(shù)時(shí)表示的是像素;小數(shù)時(shí),表示占據(jù)電腦屏幕的比例。當(dāng)高度或者寬度超過窗口大小時(shí),會(huì)出現(xiàn)滾動(dòng)條。若不設(shè)置值,默認(rèn)參數(shù)為(400,300,None)
turtle.setup(width,height,startx,starty)作用:設(shè)置主窗體的大小和位置參數(shù):width?:窗口寬度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口寬度與屏幕的比例;height:?窗口高度,如果值是整數(shù),表示的像素值;如果值是小數(shù),表示窗口高度與屏幕的比例;startx:窗口左側(cè)與屏幕左側(cè)的像素距離,如果值是None,窗口位于屏幕水平中央;starty:窗口頂部與屏幕頂部的像素距離,如果值是None,窗口位于屏幕垂直中央;2.6.3turtle的畫筆函數(shù)????畫筆函數(shù)主要分為:畫筆的狀態(tài)函數(shù)和畫筆運(yùn)動(dòng)函數(shù)。????畫筆狀態(tài)函數(shù)主要是指設(shè)置使用畫筆時(shí)顏色、畫線的寬度、移動(dòng)速度、爬行模式還是飛行模式等的函數(shù)。函數(shù)描述pendown()放下畫筆,海龜處于爬行模式,移動(dòng)畫筆將繪制圖形,別名pd(),down()penup()提起畫筆,海龜處于飛行模式,移動(dòng)畫筆不會(huì)繪制圖形,別名
pu(),up()pensize(width)設(shè)置畫筆粗細(xì),width數(shù)值越大越粗。別名
width()pencolor()設(shè)置畫筆顏色,有一個(gè)參數(shù)或無參數(shù),當(dāng)無參數(shù)輸入時(shí),返回當(dāng)前畫筆顏色。color()設(shè)置畫筆和背景顏色,有兩個(gè)參數(shù)begin_fill()設(shè)置顏色填充區(qū)域的開始。在開始繪制擬填充顏色的圖形前調(diào)用end_fill()與begin_fill配對(duì)使用,在完成了擬填充顏色的圖形的繪制后使用。使用后該繪制圖形完成顏色的填充。filling()返回填充狀態(tài),True為填充,F(xiàn)alse為未填充clear()清空當(dāng)前窗口的所有繪制過的內(nèi)容,但不改變當(dāng)前畫筆的位置和角度reset()清空當(dāng)前窗口,并重置位置等狀態(tài)為默認(rèn)值hideturtle()隱藏畫筆的turtle形狀showturtle()顯示畫筆的turtle形狀isvisible()如果turtle畫筆形狀可見,則返回True,否則返回Falsewrite(str,font=None)根據(jù)設(shè)置的字體形式,顯示字符串畫筆狀態(tài)函數(shù)表2-2畫筆狀態(tài)函數(shù)表????colorstring參數(shù)顏色參數(shù)的兩種表達(dá)
格式:pencolor(colorstring)或者color(colorstring,colorstring)colorstring:表示顏色字符串,例如:“red”、”blue”、”yellow”例2-2.繪制紅邊正方形。程序分析:首先需要導(dǎo)入turtle庫(kù);在畫圖前需要設(shè)置畫筆的顏色和粗細(xì),可以使用turtle.pensize()函數(shù)和turtle.pencolor()函數(shù);接下來繪制正方形,使用一個(gè)for循環(huán)來繪制正方形??梢栽O(shè)在每次循環(huán)中,海龜向前移動(dòng)100個(gè)單位(使用turtle.forward()函數(shù)),然后向右轉(zhuǎn)90度(使用turtle.right()函數(shù))。這個(gè)過程重復(fù)4次,正好繪制一個(gè)正方形的四條邊。最后,使用turtle.done()函數(shù)來結(jié)束程序。這個(gè)函數(shù)的作用是保持繪制的圖形在屏幕上顯示,直到用戶手動(dòng)關(guān)閉窗口。????示例代碼如下:importturtleturtle.pensize(20)#設(shè)置畫筆線條寬度為20turtle.pencolor("red")#設(shè)置畫筆顏色為紅色#讓海龜畫一個(gè)正方形foriinrange(4):turtle.forward(100)#向前移動(dòng)100turtle.right(90)#向右轉(zhuǎn)90度turtle.done()#結(jié)束觀察:從圖中可以看到,雖然繪圖結(jié)束,但是在正方形左上角還有一個(gè)“箭頭”,這個(gè)“箭頭”就是海龜,如果希望隱藏海龜,可以在“turtle.done()”語(yǔ)句前面使用hideturtle()函數(shù)。????(r,g,b)參數(shù)格式:pencolor((r,g,b))或者color((r,g,b),(r,g,b))在Python的turtle模塊中,顏色是通過RGB(紅綠藍(lán))色彩模式來指定的。(r,g,b)色彩參數(shù)通過組合不同比例的紅、綠、藍(lán)三種基本顏色的值來產(chǎn)生各種顏色,其色彩覆蓋了視力所能感知的所有顏色。(r,g,b)每個(gè)參數(shù)的取值范圍為0-255整數(shù)或0-1小數(shù),默認(rèn)采用小數(shù)值。????例2-3.繪制實(shí)心正方形。程序分析:
首先,使用turtle.begin_fill()函數(shù)來標(biāo)記填充開始。然后使用一個(gè)for循環(huán)來繪制正方形的四條邊。在每次循環(huán)中,海龜向前移動(dòng)100個(gè)單位(使用turtle.fd()函數(shù)),然后向右轉(zhuǎn)90度(使用turtle.right()函數(shù))。這個(gè)過程重復(fù)4次,正好繪制一個(gè)正方形的四條邊。最后,使用turtle.end_fill()函數(shù)來標(biāo)記填充結(jié)束。這個(gè)函數(shù)與begin_fill()函數(shù)成對(duì)出現(xiàn),用于定義填充的結(jié)束位置。這樣,在正方形內(nèi)部將會(huì)填充上指定的顏色。????示例代碼如下:importturtleturtle.pensize(20)#設(shè)置畫筆線條寬度為20turtle.color((1,0,0),(0,0,1))#設(shè)置畫筆顏色為紅色,填充色為藍(lán)色#讓海龜畫一個(gè)正方形turtle.begin_fill()#填充開始foriinrange(4):turtle.fd(100)#向前移動(dòng)100turtle.right(90)#向右轉(zhuǎn)90度turtle.end_fill()#填充結(jié)束,與begin_fill()成對(duì)出現(xiàn)turtle.done()#結(jié)束觀察:begin_fill()和end_fill()函數(shù)作用是什么?????畫筆運(yùn)動(dòng)函數(shù)是指控制畫筆的行進(jìn)位置和角度的函數(shù)畫筆運(yùn)動(dòng)函數(shù)函數(shù)描述forward(distance)沿當(dāng)前畫筆方向移動(dòng)指定距離,distance參數(shù)單位為像素長(zhǎng)度,值為負(fù)則向向反方向移動(dòng)。別名fd(distance)backward(distance)沿當(dāng)前畫筆方向的反方向移動(dòng)指定距離,distance參數(shù)單位為像素長(zhǎng)度,值為負(fù)則向前進(jìn)方向移動(dòng)。別名:bk(distance)right(angle)在當(dāng)前角度下順時(shí)針轉(zhuǎn)動(dòng)angle度,是一個(gè)相對(duì)角度的運(yùn)動(dòng)。angle是角度的整數(shù)值。別名rt(angle)left(angle)在當(dāng)前角度下逆時(shí)針轉(zhuǎn)動(dòng)angle度,是一個(gè)相對(duì)角度的運(yùn)動(dòng)。angle是角度的整數(shù)值。別名lt(angle)goto(x,y)將畫筆移動(dòng)到坐標(biāo)為(x,y)的位置
setheading(angle)設(shè)置當(dāng)前角度為angle,angle為絕對(duì)方向角度值,是角度的整數(shù)值。別名seth(angle)circle(radius,extent=None,steps=None)畫半徑為radius的圓:radius為正,則圓心在畫筆的左邊,為負(fù),則圓心在畫筆右邊畫半徑為radius,角度為extent的弧畫半徑為radius的圓的內(nèi)切正多邊形,邊數(shù)為stepshome()設(shè)置當(dāng)前畫筆位置為原點(diǎn),朝向東undo()撤銷畫筆最后一步動(dòng)作speed()設(shè)置畫筆繪制速度,參數(shù)為0-10之間觀察:“turtle.forward(100)”這條語(yǔ)句也可以寫成“turtle.fd(100)”,這就是別名的妙用,表2-2和表2-3中函數(shù)的別名通常都比正式名要短得多,例如,pendown()可以直接使用pd(),是一樣的使用效果。表2-3畫筆運(yùn)動(dòng)函數(shù)2.6.4turtle庫(kù)綜合實(shí)踐????例2-4繪制電腦印花,印花圖為紅色,如圖所示。。程序分析:該圖是由不同半徑的同心五邊形構(gòu)成。我們可以使用一個(gè)循環(huán)反復(fù)執(zhí)行以下操作:使用fd()函數(shù)(即forward的縮寫)使海龜向前移動(dòng)i個(gè)單位,其中i是當(dāng)前循環(huán)的索引值,每循環(huán)一次其值增大一次;使用right()函數(shù)使海龜向右轉(zhuǎn)動(dòng)一定的角度。????代碼如下:fromturtleimport*pencolor("red")foriinrange(200):#循環(huán)次數(shù)還可以增加減少
fd(i)right(360/5+1)#5就會(huì)是5邊形,1是偏移角度,出來的效果不同hideturtle()#隱藏海龜箭頭????例2-5,繪制一個(gè)勞動(dòng)勛章——一個(gè)圓里嵌套一個(gè)五角星,如圖2.9所示。程序分析:需要畫一個(gè)圓,然后在圓里面畫一個(gè)五角星,并注意到圓的填充色為黃色,五角星的填充色為紅色,填充顏色的先后順序需要注意一下,后填充的顏色會(huì)覆蓋先填充的顏色,最后還需要寫上紅色的字“勞動(dòng)最光榮”。以上這些內(nèi)容意味著需要計(jì)算一下圓、五角星和文字的位置,因此需要引入math庫(kù)。????代碼如右:importmath#引入math庫(kù),為計(jì)算做準(zhǔn)備importturtle#引入turtle庫(kù),為畫圖做準(zhǔn)備turtle.colormode(255)#切換顏色模式為整數(shù)參數(shù)t1=turtle.Turtle()t2=turtle.Turtle()#創(chuàng)建兩個(gè)對(duì)象,t1用來畫圓,t2用來畫五角星r=100#半徑為100t1.color((217,217,25),(217,217,25))#前面一個(gè)參數(shù)是畫筆顏色,后一個(gè)參數(shù)填充色t1.penup()#t1進(jìn)入飛行模式t1.goto(0,200)#t1飛行到指定坐標(biāo),沒在畫布上留下軌跡t1.pendown()#t1回到爬行模式,此時(shí)可以開始繪制圖形t1.begin_fill()t1.circle(r*(-1)-10)#參數(shù)為-110,則逆時(shí)針方向繪制圓t1.end_fill()t1.hideturtle()t2.color("red","red")#設(shè)置t2的畫筆顏色和填充色t2.penup()t2.goto(r*(-1)*math.cos(math.pi/10),r*math.sin(math.sin(math.pi/10))+r)t2.pendown()t2.begin_fill()foriinrange(0,5):#開始畫五角星
t2.forward(100*math.cos(math.pi/10)*2)t2.right(144)t2.end_fill()t2.penup()t2.goto(-60,-80)t2.pendown()t2.write("勞動(dòng)最光榮",font=("宋體",18,"bold"))#在畫布上添加文字信息t2.hideturtle()turtle.done()本章小結(jié)經(jīng)過本章的深入學(xué)習(xí),我們已對(duì)Python的基本語(yǔ)法體系形成了全面的認(rèn)識(shí),包括其特有的編程規(guī)范、常量與變量的定義、多元化的數(shù)據(jù)類型以及核心的語(yǔ)句結(jié)構(gòu)。同時(shí),通過實(shí)踐,我們也領(lǐng)略到了Python中turtle庫(kù)的獨(dú)特魅力,它在圖形繪制方面的出色表現(xiàn)讓我們深感震撼。這些知識(shí)不僅為我們后續(xù)的編程之路奠定了堅(jiān)實(shí)的基礎(chǔ),更讓我們對(duì)Python的應(yīng)用前景充滿期待,代碼的規(guī)范性和可讀性對(duì)于程序的質(zhì)量和程序員的職業(yè)素養(yǎng)有著不可忽視的影響。3.1數(shù)字類型
3.2數(shù)字類型的運(yùn)算
3.3字符串類型
3.4字符串類型的操作
3.5精選案例
第3章Python的基本數(shù)據(jù)類型考綱考點(diǎn)
數(shù)字類型:整數(shù)類型、浮點(diǎn)數(shù)類型和復(fù)數(shù)類型
數(shù)字類型的運(yùn)算:數(shù)值運(yùn)算操作符、數(shù)值運(yùn)算函數(shù)
字符串類型及格式化:索引、切片、基本的format()格式化方法
字符串類型的操作:字符串操作符、處理函數(shù)和處理方法
類型判斷和類型間轉(zhuǎn)換知識(shí)導(dǎo)圖3.1數(shù)字類型
Python語(yǔ)言提供3種數(shù)字類型:整數(shù)類型、浮點(diǎn)數(shù)類型和復(fù)數(shù)類型,分別對(duì)應(yīng)數(shù)學(xué)中的整數(shù)、實(shí)數(shù)和復(fù)數(shù)。
1010是一個(gè)整數(shù)類型,10.10是一個(gè)浮點(diǎn)數(shù)類型,10+10j是一個(gè)復(fù)數(shù)類型。3.1.1整數(shù)
在python中,整數(shù)類型的數(shù)據(jù)類型名為int,一般認(rèn)為整數(shù)類型是沒有取值范圍的限制的。整數(shù)類型可以用4種進(jìn)制表示:十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制。一般情況下默認(rèn)為十進(jìn)制,如果需要表達(dá)成其他進(jìn)制,需要在數(shù)字前面加上相應(yīng)的引導(dǎo)符在python中,不同進(jìn)制的整數(shù)之間是可以直接進(jìn)行運(yùn)算和比較的,運(yùn)算結(jié)果默認(rèn)為十進(jìn)制示例代碼如下:>>>0xf3+123366>>>0o1167+0b00111110010==0x2f2*2False
Python采用基于值的內(nèi)存管理方式,如果為不同變量賦為相同值,這個(gè)值在內(nèi)存中只保存一份,多個(gè)變量指向同一個(gè)值的內(nèi)存空間的首地址。整數(shù)的緩存
當(dāng)Python啟動(dòng)時(shí),會(huì)對(duì)[-5,256]的整數(shù)進(jìn)行緩存,因此如果多個(gè)變量的值介于該范圍內(nèi),那么這些變量共用同一個(gè)值的內(nèi)存空間。對(duì)于[-5,256]區(qū)間之外的整數(shù),則有兩種情況:1.同一個(gè)程序或交互模式下同一個(gè)語(yǔ)句中的同值不同名變量會(huì)共用同一個(gè)內(nèi)存空間。2.不同程序或交互模式下不同語(yǔ)句是不遵守這個(gè)約定的。
Python以上范圍僅適用于交互方式,如果是文件方式,則由于解釋器做了一部分的優(yōu)化,其緩存范圍變?yōu)閇-5,任意整數(shù)]3.1.2浮點(diǎn)數(shù)
Python中的浮點(diǎn)數(shù)是帶小數(shù)點(diǎn)的數(shù)字,用于表示實(shí)數(shù),可以是正數(shù)、負(fù)數(shù)或零。浮點(diǎn)數(shù)既可以用帶小數(shù)點(diǎn)的數(shù)表示,也可以用科學(xué)計(jì)數(shù)法表示。
Python語(yǔ)言中的浮點(diǎn)數(shù)類型必須帶有小數(shù)部分,小數(shù)部分可以是0,例如:1100是整數(shù),1100.0是浮點(diǎn)數(shù)。
Python浮點(diǎn)數(shù)類型的數(shù)值范圍和小數(shù)精度受不同計(jì)算機(jī)系統(tǒng)的限制。除高精度科學(xué)計(jì)算外的絕大部分運(yùn)算來說,浮點(diǎn)數(shù)類型的數(shù)值范圍和小數(shù)精度足夠“可靠”。>>>1234567890.987654321
*
1234567890.9876543211.5241578774577044e+18>>>9876543210.123456789
/
1234567890.9876543217.000000066600002??
Python中的浮點(diǎn)數(shù)可以是有限數(shù)、無窮大、NaN(非數(shù)字)等特殊值,示例代碼如下:>>>float("inf")#無窮大inf>>>float("-inf")#無窮小-inf>>>float("nan")#非數(shù)字nan??在Python中,由于浮點(diǎn)數(shù)的存儲(chǔ)方式和計(jì)算機(jī)的精度限制,有時(shí)候會(huì)出現(xiàn)浮點(diǎn)數(shù)比較不準(zhǔn)確的問題。示例代碼如下:>>>0.7+0.20.8999999999999999#結(jié)果不是0.9>>>0.7-0.20.49999999999999994#結(jié)果不是0.5>>>0.7-0.2==0.5#直接比較失敗False可提供兩種解決方案??方法1:使用abs()函數(shù),abs()函數(shù)是用于返回一個(gè)數(shù)的絕對(duì)值,示例代碼如下:>>>abs((0.7-0.2)-0.5)<10e-6True說明:
這里使用了abs()函數(shù)計(jì)算兩個(gè)浮點(diǎn)數(shù)的差的絕對(duì)值,然后與一個(gè)小的差值10e-6進(jìn)行比較。如果差的絕對(duì)值小于這個(gè)差值,就可以認(rèn)為兩個(gè)浮點(diǎn)數(shù)相等。當(dāng)然這個(gè)差值的選擇需要根據(jù)具體情況進(jìn)行調(diào)整。如果需要進(jìn)行更精確的比較,可以選擇更小的差值。??方法2:使用round()函數(shù),round()函數(shù)用于對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入。示例代碼如下:>>>round(1.2345,2)#四舍五入,保留兩位小數(shù)1.23>>>round(0.7-0.2,3)0.5>>>round(0.7-0.2,3)==0.5True說明:
這里先使用round()函數(shù)對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入,然后再進(jìn)行浮點(diǎn)數(shù)的比較。當(dāng)然關(guān)于浮點(diǎn)數(shù)比較問題的解決還有一些其他的辦法,比如使用decimal庫(kù)等等,無論使用哪種方法都需要結(jié)合實(shí)際情況考慮需要比較的精度,處理掉不確定尾數(shù)對(duì)比較的干擾。3.1.3復(fù)數(shù)
復(fù)數(shù)類型表示數(shù)學(xué)中的復(fù)數(shù)。復(fù)數(shù)有一個(gè)基本單位元素j,叫作“虛數(shù)單位”。含有虛數(shù)單位的數(shù)被稱為復(fù)數(shù)。例如:
11.3+4j
-5.6+7j
1.23e-4+5.67e+89j復(fù)數(shù)類型
Python語(yǔ)言中,復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(duì)(a,b),表示為:a
+
bj,其中,a是實(shí)數(shù)部分,簡(jiǎn)稱實(shí)部,b是虛數(shù)部分,簡(jiǎn)稱虛部。虛數(shù)部分通過后綴“J”或者“j”來表示。需要注意,當(dāng)b為1時(shí),1不能省略,即
1j表示復(fù)數(shù),而j則表示Python程序中的一個(gè)變量。復(fù)數(shù)類型
Python內(nèi)置支持復(fù)數(shù)類型及運(yùn)算,并且形式上與數(shù)學(xué)上的復(fù)數(shù)完全一致。#內(nèi)置函數(shù)abs()計(jì)算復(fù)數(shù)的模復(fù)數(shù)類型
復(fù)數(shù)類型中實(shí)部和虛部都是浮點(diǎn)類型,對(duì)于復(fù)數(shù)z,可以用z.real和z.imag分別獲得它的實(shí)數(shù)部分和虛數(shù)部分>>>(1.23e4+5.67e4j).real12300.0>>>(1.23e4+5.67e4j).imag56700.0>>>1.23e4+5.67e4j.imag
#
先獲得5.67e4j的虛部,再與1.23e4進(jìn)行求和計(jì)算69000.0補(bǔ)充:分?jǐn)?shù)
Python中的標(biāo)準(zhǔn)庫(kù)fractions中的Fraction對(duì)象支持分?jǐn)?shù)運(yùn)算#創(chuàng)建分?jǐn)?shù)對(duì)象#查看分子#查看分母#分?jǐn)?shù)運(yùn)算,自動(dòng)進(jìn)行通分#把實(shí)數(shù)轉(zhuǎn)換為分?jǐn)?shù)??
for語(yǔ)句,是一種循環(huán)結(jié)構(gòu),其作用是根據(jù)判斷條件確定一段程序是否需要反復(fù)執(zhí)行。示例代碼如下:>>>foriinrange(10): print(i,end=",")0,1,2,3,4,5,6,7,8,9,3.2數(shù)字類型的運(yùn)算3.2.1算術(shù)運(yùn)算操作符
Python提供了7個(gè)基本的數(shù)值運(yùn)算操作符操作符說明+x+y,x與y的和-x-y,x與y的差*x*y,x與y的積/x/y,x除以y的商//x//y,不大于x除以y的商的最大的整數(shù)%x%y,x除以y的余數(shù),常稱為模運(yùn)算**x**y,x的y次冪??
1.減除運(yùn)算與數(shù)學(xué)上的意義相同,示例代碼如下:>>>1.23-54.6e-20.6839999999999999>>>1.23/50.246>>>6/23.0說明:上例中整數(shù)6除以整數(shù)2的結(jié)果是浮點(diǎn)數(shù)3.0,即除法運(yùn)算結(jié)果的數(shù)據(jù)類型為浮點(diǎn)型數(shù)據(jù)。??
2.運(yùn)算符“+”除了用于算術(shù)加法以外,還可以用于列表、元組、字符串的連接,但不支持不同類型的對(duì)象之間相加或連接。??
3.運(yùn)算符“*”除了用于算術(shù)乘法以外,還可以用于列表、元組、字符串這幾個(gè)序列類型與整數(shù)的乘法,表示序列元素的重復(fù),生成新的序列對(duì)象。示例代碼如下:>>>1.23*54.6e-2#兩個(gè)浮點(diǎn)數(shù)相乘0.6715800000000001>>>True*3#True當(dāng)作13>>>False*3#False當(dāng)作00>>>[1,2,3]*3#列表重復(fù)[1,2,3,1,2,3,1,2,3]>>>(1,2,3)*3#元組重復(fù)(1,2,3,1,2,3,1,2,3)>>>"abc"*3#字符串重復(fù)'abcabcabc'
4.運(yùn)算符/和//在Python中分別表示算數(shù)除法和算術(shù)求整(floordivision)#數(shù)學(xué)意義上的除法#如果兩個(gè)操作數(shù)都是整數(shù),結(jié)果為整數(shù)#如果兩個(gè)操作數(shù)中有實(shí)數(shù),結(jié)果為實(shí)數(shù)形式的整數(shù)值#向下取整說明:
使用“/”除法運(yùn)算符時(shí),即使兩個(gè)操作數(shù)都是整數(shù),結(jié)果也是浮點(diǎn)數(shù)。而使用“//”運(yùn)算符時(shí),結(jié)果總是一個(gè)整數(shù)。??
5.運(yùn)算符“%”可以用于整數(shù)或?qū)崝?shù)的求余運(yùn)算,也稱為求模運(yùn)算?!?”也可用于字符串格式化,不過不推薦使用此用法做字符串格式化。示例代碼如下:>>>789%23#求余數(shù)7>>>123.45%3.2#實(shí)數(shù)也可以求余,注意精度1.849999999999996>>>'%c,%d'%(65,65)#把65分別格式化為字符和整數(shù)'A,65'>>>'%f,%s'%(65,65)#把65分別格式化為實(shí)數(shù)和字符串'65.000000,65'??
6.運(yùn)算符**表示冪乘,等價(jià)于內(nèi)置函數(shù)pow()。示例代碼如下:>>>3**2#3的2次方,等價(jià)pow(3,2)9>>>pow(3,2,8)#等價(jià)于(3**2)%81>>>9**0.5#9的0.5次方,即9的平方根3.0>>>(-9)**0.5#負(fù)數(shù)的平方根(1.8369701987210297e-16+3j)??以上我們所講述的這些操作符(+、-、*、/、//、%、**)都是二元運(yùn)算操作符,可以與賦值符號(hào)(=)相連,形成增強(qiáng)賦值操作符(+=、-=、*=、/=、//=、%=、**=),有關(guān)增強(qiáng)賦值操作在2.4.2節(jié)中已介紹了。增強(qiáng)賦值操作符可以簡(jiǎn)化對(duì)同一變量賦值語(yǔ)句的表達(dá),也是python簡(jiǎn)潔語(yǔ)言的一種特色,建議大家多多使用。算術(shù)運(yùn)算符總結(jié)??數(shù)值運(yùn)算可能改變計(jì)算結(jié)果的數(shù)據(jù)類型,類型的改變與運(yùn)算符有關(guān),基本規(guī)則如下:整數(shù)和浮點(diǎn)數(shù)混合運(yùn)算,輸出結(jié)果是浮點(diǎn)數(shù)。整數(shù)之間運(yùn)算,產(chǎn)生結(jié)果類型與操作符相關(guān),例如,除法運(yùn)算(/)的結(jié)果是浮點(diǎn)數(shù)。整數(shù)或浮點(diǎn)數(shù)與復(fù)數(shù)運(yùn)算,輸出結(jié)果是復(fù)數(shù)。3.2.2數(shù)值運(yùn)算函數(shù)
Python解釋器提供了一些內(nèi)置函數(shù),在這些內(nèi)置函數(shù)之中,有6個(gè)函數(shù)與數(shù)值運(yùn)算相關(guān)函數(shù)說明abs(x)求x的絕對(duì)值divmod(x,y)結(jié)果為(x//y,x%y)的一個(gè)元組pow(x,y[,z])結(jié)果為(x**y)%z;當(dāng)z參數(shù)省略時(shí),結(jié)果為x**yround(x[,n])對(duì)x四舍五入到n位;當(dāng)n參數(shù)省略時(shí),求x四舍五入的整數(shù)值max(x1,x2…xn)求x1,x2…xn的最大值,n無限制min(x1,x2…xn)求x1,x2…xn的最小值,n無限制??
abs()函數(shù)是一個(gè)內(nèi)置函數(shù),用于返回一個(gè)數(shù)的絕對(duì)值,其格式如下:
abs(number)參數(shù):number一個(gè)數(shù)字,可以是整數(shù)、浮點(diǎn)數(shù)或復(fù)數(shù)。返回值:如果參數(shù)是正數(shù)或零,則返回該參數(shù)本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 陶瓷廠給水管道施工合同
- 印刷廠紙張物料員聘用合同
- 2024年版高級(jí)酒店宴會(huì)廳租賃合同范本版B版
- 2024年版城市基礎(chǔ)設(shè)施建設(shè)項(xiàng)目承包合同
- 建筑節(jié)能工程成本管理
- 2024年標(biāo)準(zhǔn)機(jī)器人服務(wù)合同模板版B版
- 侵權(quán)責(zé)任律師聘用合同
- 珠寶行業(yè)稅務(wù)登記流程
- 2024年新型蔬菜種植項(xiàng)目承包經(jīng)營(yíng)協(xié)議3篇
- 交通運(yùn)輸行業(yè)職工聘用合同
- GB/T 18367-2001公路收費(fèi)方式
- 新疆生產(chǎn)建設(shè)兵團(tuán)2022-2023學(xué)年數(shù)學(xué)七上期末質(zhì)量檢測(cè)試題含解析
- 2022年中山市房地產(chǎn)市場(chǎng)年度報(bào)告-世聯(lián)研究
- FZ/T 62039-2019機(jī)織嬰幼兒睡袋
- 【人類命運(yùn)共同體論文】淺談“人類命運(yùn)共同體”
- ARCGIS10基礎(chǔ)培訓(xùn)課件
- 課件:第一章 導(dǎo)論(《現(xiàn)代社會(huì)福利思想》課程)
- 第七章-期權(quán)的組合策略-《金融工程》課件
- 見證取樣和送檢見證人員備案表
- 明星志愿3及資料設(shè)定集總攻略打印版
- 鐵路專用線管理模式比較
評(píng)論
0/150
提交評(píng)論