




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