Python編程基礎與應用第1章 緒論_第1頁
Python編程基礎與應用第1章 緒論_第2頁
Python編程基礎與應用第1章 緒論_第3頁
Python編程基礎與應用第1章 緒論_第4頁
Python編程基礎與應用第1章 緒論_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章

緒 論XXXX

大學XX

學院XXX

教授2學習目標:了解Python

語言的發(fā)展、特點與應用掌握Python

解釋器的安裝、編程環(huán)境的配置掌握利用集成工具編寫、運行Python

程序的方法掌握Python

模塊的安裝與使用方法熟悉面向對象程序turtle

繪圖思政內涵:Python

語言的發(fā)展體現了創(chuàng)新與共享精神,我國開發(fā)的北斗衛(wèi)星導航系統(tǒng)已向全球提供服務,展現了中國的科技創(chuàng)新與共享精神,是科技強國的重大成果。廣大學子要勇于開拓,敢于創(chuàng)新,樹立忠于祖國、勇攀科學高峰、報效國家的理想信念。1

章緒 論31.1 Python

概述1.1.1 Python

的發(fā)展1989

年,荷蘭人吉多???范羅蘇姆(Guido

van

Rossum)在圣誕節(jié)休假期間,為了打發(fā)時間,決定開發(fā)一門解釋型編程語言。由于吉多是英國蒙提

?

派森(MontyPython)喜劇團的忠實粉絲,于是他把開發(fā)的語言取名為Python,從此,宣告了一門優(yōu)秀計算機語言的誕生。吉多設計Python

語言的靈感來自開發(fā)ABC

語言的積累,他是

ABC

語言設計團隊的一名成員。ABC

語言是NWO(荷蘭科學研究組織)旗下CWI(荷蘭國家數學與計算機科學研究中心)主導研發(fā)的一種交互式、結構化高級語言,旨在替代BASIC、Pascal

等語言。吉多認為

ABC

語言非常優(yōu)美而強大,但是其最終卻沒有流行起來。就吉多本人看來,ABC

失敗的原因是它作為一門高級語言出現得為時過早,并且平臺遷移能力弱,難以添加新功能。另外,ABC

語言過于專4注于編程初學者,沒有把有經驗的編程人員納入其中。吉多通過Python

解決了這些問題,使得拓展模塊的編寫非常容易,并且可以在多平臺運行。Python

實現了他的愿景,即在C

和Shell

之間創(chuàng)建一種全功能、易學、可擴展的語言。1991

年,Python

第一個公開發(fā)行版本發(fā)行。2000

10

月,發(fā)布Python

2.0

版本。2001

3

月,Python

軟件基金會(Python

Software

Foundation,PSF)在美國特拉華州成立。PSF

是致力于推進Python

編程語言的開源技術的非營利性組織。2008

12

月,發(fā)布

Python

3.0

版本,形成了

Python

2

和Python

3

雙線發(fā)展的格局。2011

1

月,Python

被TIOBE

編程語言排行榜評為

2010

年度語言。2014

11

月,Python

組織宣布在穩(wěn)定版本Python

2.7

后,于

2020

年起停止支持Python

2,并將專注于Python

3

的發(fā)展。2021

12

月,Python

在TIOBE

編程語言排行榜升至第一名。1

章緒 論52022

12

月,Python

繼續(xù)保持在TIOBE

編程語言排行榜第一名的位置。Python

已經成為較受歡迎的程序設計語言。在當前數字時代,數據科學、人工智能蓬勃發(fā)展,Python

更是數據分析和人工智能領域的首選語言。越來越多的研究機構選擇使用Python

進行科學計算,一些知名大學也已經采用

Python來教授程序設計課程。例如,哈佛大學的計算機課程

CS50、卡內基梅隆大學的編程基礎、麻省理工學院的計算機科學及編程導論課程等都使用Python

語言。Python

的特點簡單易學Python

的設計理念是優(yōu)雅、明確、簡單。Python

有極其簡單的語法,使用戶能夠專注于解決問題而不是去搞明白語言本身。免費開源Python

是自由/開放源碼軟件之一。用戶可以自由地發(fā)布該軟件的副本,使用6和改動它的源代碼或將其中一部分用于新的自由軟件中。正是這種開源和共享的特性促進了Python

的快速發(fā)展。高級解釋性語言Python

語言是一門高級編程語言,Python

解釋器先把源代碼轉換成字節(jié)碼的中間形式,然后把它翻譯成計算機使用的機器語言并運行。程序員在開發(fā)時無須考慮底層細節(jié)。面向對象Python

既支持像C

語言一樣面向過程的編程,也支持如

C++、Java

語言一樣面向對象的編程??梢浦残訮ython

可在Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2

和Android等平臺上運行。1

章緒 論76.

可擴展性Python

提供豐富的應用程序接口、模塊和工具,使得程序員可以輕松地使用C、C++語言來編寫擴充模塊??汕度胄訮ython

程序可以嵌入C、C++、Matlab

程序,從而向用戶提供腳本。豐富的庫Python

具有豐富的標準庫和第三方庫,可以處理各個領域的問題。1.1.3 Python

的應用Python

已經形成了全球最大的編程計算生態(tài)體系,在科學研究、工業(yè)生產、金融投資和商務辦公等方面都得到了廣泛應用。8科學計算與數據分析Python

被廣泛運用在科學計算和數據分析中。例如,Numpy、Scipy

等Python擴展工具,經常被應用于生物信息學、物理、建筑、地理信息系統(tǒng)、圖像可視化分析、生命科學等領域。人工智能與機器學習當前具有較大影響力的人工智能框架

TensorFlow、PyTorch

都提供了Python支持,一些機器學習方向、深度學習方向和自然語言處理方向的網站基本都是通過Python

實現的。系統(tǒng)網絡運維在運維工作中有大量的重復性工作,需要采用管理系統(tǒng)、監(jiān)控系統(tǒng)、發(fā)布系統(tǒng)等實現自動化,提高工作效率。在這樣的場景下,Python

是一門很合適的用于網絡運維的語言。1

章緒 論94.

常規(guī)軟件開發(fā)Python

支持函數式編程和面向對象程序設計,能夠承擔各種類型軟件的開發(fā)工作。圖形用戶界面Python

帶有圖形用戶界面(GUI)開發(fā)模塊,可以很好地支持應用程序圖形用戶界面開發(fā)。數據庫編程程序員可通過遵循

Python

DB-API

規(guī)范的模塊與

Microsoft

SQL

Server、Oracle、Sybase、DB2、MySQL、SQLite

等數據庫通信。網絡編程Python

可提供豐富的網絡模塊,能方便、快速地開發(fā)分布式應用程序。很多大規(guī)模軟件開發(fā)計劃(如Zope、BitTorrent、Google)都在廣泛地使用它。108.

網絡爬蟲網絡爬蟲是大數據行業(yè)獲取數據的核心工具。能夠編寫網絡爬蟲的編程語言有很多,但

Python

絕對是其中的主流語言。9.

Web

應用開發(fā)Python

具有一些優(yōu)秀的

Web

框架,如Django、Flask

等。很多大型網站都使用基于Python

Web

框架開發(fā),如百度、豆瓣等。1.2 Python

開發(fā)環(huán)境Python

可以在Windows、Linux、Mac

等操作系統(tǒng)中運行,在不同的操作系統(tǒng)中安裝Python

的方法是不同的,Python

的開發(fā)環(huán)境也有很多種,本節(jié)介紹在Windows

系統(tǒng)中安裝

Python

官方標準版開發(fā)環(huán)境、PyCharm

集成開發(fā)環(huán)境、Python

的第三方發(fā)行版Anaconda

開發(fā)環(huán)境和基于

Web的在線開發(fā)環(huán)境。1

章緒 論111.2.1 Python

官方標準版開發(fā)環(huán)境Python

的官方網址是https://,進入官網主頁,在

Downloads菜單中,可以下載

Python

的最新版和各個歷史版本開發(fā)環(huán)境;在

Documentation菜單中,可以下載Python

的文檔、教程和指南等。操作步驟如下。(1)

進入Python

的下載頁面(見圖

1.1)。選擇

Windows

平臺安裝包,選擇需要的

Python

版本。本書采用

Python

3.11.1

版本。下載后的安裝包文件名是python-3.11.1-amd64.exe。圖

1.1Python

下載頁面12(2)

雙擊安裝包python-3.11.1-amd64.exe,進入

Python

解釋器安裝界面(見圖1.2),按照提示進行安裝即可。圖

1.2 Python

解釋器安裝界面1.2.2 第一個Python

程序Python

安裝成功后,進入

Windows

10

操作系統(tǒng)開始菜單。單擊

Python

3.11文件夾圖標,可以看到文件夾中有

4

個文件,第一個IDLE(Python3.11

64-bit)是?Python

集成開發(fā)環(huán)境,第二個Python

3.11(64-bit)是Python

交互模式執(zhí)行文件,第三個

Python

3.11

Manuals(64-bit)

Python

使用手冊,

第四個

Python

3.11Module

Docs(64-bit)是Python

模塊文檔,如圖

1.3

所示。Python

的執(zhí)行有兩種方1

章緒 論13式,一種是以交互模式(interactive

mode)執(zhí)行,另一種是以

Python

文件方式執(zhí)行。Windows

開始菜單中的Python

3.11

文件夾圖

1.31.

Python

交互模式(1)

單擊Windows

開始菜單中的Python

3.11

文件夾下的第二個文件Python3.11(64-bit),執(zhí)行后界面如圖

1.4

所示。符號>>>是交互運行模式主提示符。圖

1.4Python

解釋器命令行交互執(zhí)行界面14(2)

在主提示符>>>后輸入Python

的輸出字符串語句“print('Hello,Python!')”,執(zhí)行后輸出字符串“Hello,Python!”。Python

默認編碼是UTF-8,可以直接輸出漢字。例如,輸入語句“print('你好,Python!

')”,執(zhí)行后輸出“你好,Python!”,如圖

1.5

所示。圖

1.5 Python

解釋器命令行執(zhí)行語句情況2.

Python

文件執(zhí)行模式(1)

在文件執(zhí)行模式中,首先用文檔編輯器編輯Python

源程序,簡單的程序可以用記事本編輯。編輯只有兩個輸出語句的程序,如圖

1.6

所示。將編寫的程序保存為名為hello.py

的文件,并將其放置在D:\test

文件夾中。1

章緒 論15(2)

在操作系統(tǒng)的命令行(在Windows

中是CMD

命令行)找到Python

源文件所在的文件夾D:\test,然后輸入python

hello.py,按回車鍵后解釋器執(zhí)行Python文件并輸出結果,如圖

1.7

所示。圖

1.6用記事本編輯Python

文件圖

1.7解釋器執(zhí)行Python

文件1.2.3

Python

IDLE

的使用單擊Windows

開始菜單中的Python

3.11

文件夾下的第一個文件IDLE(Python3.11

64-bit),執(zhí)行后進入

IDLE

Shell

界面,如圖

1.8

所示。在

IDLE

Shell

的命令行提示符>>>后也可以輸入Python

語句,由

Python

解釋器交互執(zhí)行,執(zhí)行語句后立即輸出結果。這里主要介紹IDLE

集成開發(fā)環(huán)境。16圖

1.8 IDLE

Shell

界面(1)

單擊IDLE

Shell

界面菜單中的File(見圖

1.9),選擇

New

File,進入

IDLE文件編輯界面(見圖

1.10)。圖

1.9 IDLE

Shell

菜單界面 圖

1.10 IDLE

文件編輯界面(2)

在該界面中輸入Python

語句“print('Hello,Python!

')”,然后執(zhí)行

File|Save1

章緒 論17As(另存為)命令,自定義存儲路徑,Python

程序就編寫完畢了,如圖

1.11

所示。文件名為HelloPython.py,Python

文件的后綴是.py。圖

1.11 Python

程序HelloPython.py(3)

執(zhí)行Run

|

Run

Module

命令(見圖

1.12),程序執(zhí)行結果如圖

1.13

所示。圖

1.12執(zhí)行Run

|

Run

Module

命令圖

1.13程序執(zhí)行結果181.2.4 PyCharm

集成開發(fā)環(huán)境PyCharm

是一種Python

集成開發(fā)環(huán)境(integrated

development

environment,IDE),帶有一整套可以幫助用戶在使用Python

語言開發(fā)時提高其效率的工具,如調試、語法高亮、項目管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等。PyCharm

分為專業(yè)版和社區(qū)版,專業(yè)版是付費的,功能齊全,可以免費試用

30

天;社區(qū)版是免費的,功能相對簡化,但足夠日常學習使用。這里下載社區(qū)版安裝使用。1.

PyCharm

的下載與安裝(1)

PyCharm

的官方網址是https:///,進入官網主頁,如圖1.14

所示。單擊

Developer

Tools

,

進入如圖

1.15

所示的頁面,

然后執(zhí)行IDEs?|?PyCharm

命令,進入下載頁面。(2)

進入下載頁面后,下拉到下載部分(見圖

1.16),左邊是專業(yè)版的下載選1

章緒 論19項,右邊是社區(qū)版的下載選項,通過下拉按鈕可以選擇不同操作系統(tǒng)的安裝文件進行下載,這里選擇社區(qū)版.exe(Windows)安裝文件進行下載。下載完成后,在瀏覽

器的默認下

載目錄中有

一個可執(zhí)行

的安裝包,

文件名是pycharm-community-2022.3.exe。圖

1.14PyCharm

官網主頁20圖

1.15Developer

Tools

頁面圖

1.16PyCharm

下載部分1

章緒 論21(3)

雙擊安裝包pycharm-community-2022.3.exe,進入安裝界面(見圖

1.17),按照提示進行安裝即可。目錄可自行選擇,初學時最好選擇默認目錄。圖

1.17 PyCharm

安裝界面2.

PyCharm

的使用(1)

PyCharm

安裝成功后,進入

Windows

10

操作系統(tǒng)開始菜單,單擊JetBrains

文件夾圖標,再單擊文件夾中的

PyCharm

Community

Edition

2022.3

啟動PyCharm

集成開發(fā)環(huán)境,如圖

1.18

所示。首次啟動時會彈出一個接受協(xié)議的界面,直接單擊

Continue

按鈕,即可進入

PyCharm

的開始界面,如圖

1.19

所示。22圖

1.18Windows

開始菜單中的JetBrains

文件夾圖

1.19 PyCharm

的開始界面(2)

在PyCharm

的開始界面單擊New

Project

按鈕創(chuàng)建新工程,創(chuàng)建新工程1

章緒 論23界面如圖

1.20

所示。新工程界面有?3?個選項,第一項是在Location

輸入框中選擇工程文件夾,這里選擇

D:\python\chapter01;第二項是在

Python

Interpreter:NewVirtualenv

envrionment

下為新工程配置Python

解釋器,初學者選擇默認模式即可;第三項是Create

a

main.py

welcome

script,用于在新工程中創(chuàng)建顯示歡迎文本的Python

文件main.py,一般不需要創(chuàng)建,因此不勾選這一項。單擊Create按鈕,即可進入PyCharm

開發(fā)界面,如圖

1.21

所示。圖

1.20創(chuàng)建新工程界面24圖

1.21 PyCharm

開發(fā)界面在

PyCharm

開發(fā)界面的工程項目名稱上右擊,在彈出的快捷菜單中執(zhí)行New

|

Python

File

命令(見圖

1.22),即可彈出

New

Python

file

對話框,如圖

1.23所示。在New

Python

file

對話框中輸入文件名“HelloWorld”,按回車鍵,新的Python

文件HelloWorld.py

就創(chuàng)建好了。輸入

Python

語句“print('Hello,World!')”,只有一個輸出語句的

Python

程序就編輯好了,如圖

1.24

所示。1

章緒 論25圖

1.22新建Python

文件界面圖

1.23New

Python

file

對話框圖

1.24編輯Python

文件26(5)

單擊Run

菜單,選擇運行HelloWorld

文件,運行顯示窗口輸出了字符串“Hello,World!”,如圖

1.25

所示。PyCharm

集成開發(fā)環(huán)境的第一個Python

程序運行成功。圖

1.25運行結果1

章緒 論271.2.5 Anaconda

集成開發(fā)環(huán)境Anaconda

是一個開源的Python

發(fā)行版本,包含了conda、Python

180

多個科學包及其依賴項。Anaconda

集成了

PyCharm、Spider

Jupyter

Notebook等開發(fā)系統(tǒng),安裝Anaconda

可以很方便地管理Python

相關的包、切換不同的環(huán)境。1.

Anaconda

的下載與安裝(1)

?Anaconda?的官方網址是https:///,進入官網主頁,如圖

1.26

所示。單擊Download

按鈕進行下載,下載完成后,在瀏覽器的默認下載

執(zhí)

是Anaconda3-2022.10-Windows-x86_64.exe。28圖

1.26 Anaconda

官網主頁(2)

雙擊安裝包Anaconda3-2022.10-Windows-x86_64.exe,進入安裝界面(見圖

1.27),按照提示進行安裝即可。目錄可自行選擇,初學時最好選擇默認目錄。圖

1.27 Anaconda

安裝界面2.

Anaconda

的使用Anaconda

安裝成功后,

進入

Windows

10

操作系統(tǒng)開始菜單,

單擊1

章緒 論29Anaconda3(64-bit)文件夾圖標,可以看到該文件夾中有

6

個執(zhí)行文件選項,如圖1.28

所示。第一項Anaconda

Navigator(anaconda3)是進入Anaconda

圖形界面的命令文件。第二項

Anaconda

Powershell

Prompt(anaconda3)和第三項

AnacondaPrompt(anaconda3)都是Anaconda

的命令行工作模式,都可以進行包安裝、環(huán)境管理等,只是第二項的命令多一些而已。第四項Jupyter

Notebook(anaconda3)是數據分析使用的主要開發(fā)系統(tǒng),后面會詳細介紹。第五項和第六項是關于

Spyder開發(fā)系統(tǒng)的,暫不使用。下面簡單介紹

Anaconda

的Jupyter

Notebook,以便開發(fā)Python

程序。圖

1.28Windows

開始菜單中的Anaconda3(64-bit)文件夾30(1)

在Windows

開始菜單中的Anaconda3(64-bit)文件夾下選擇第一項,進入Anaconda

圖形界面(

見圖

1.29)

,然后單擊

Jupyter

圖標按鈕,進入

JupyterNotebook

開發(fā)環(huán)境。或者選擇

Anaconda3(64-bit)文件夾中的第四項直接進入Jupyter

Notebook

開發(fā)環(huán)境。圖

1.29 Anaconda

圖形界面(2)

進入Jupyter

Notebook

后,主界面如圖

1.30

所示。單擊右側的New按鈕,選擇Python

3,進入編輯界面,如圖

1.31

所示。1

章緒 論31圖

1.30 Jupyter

Notebook

主界面 圖

1.31 編輯界面(3)

在編輯框中輸入print("Hello,

jupyter!")語句,單擊“運行”按鈕,程序立即執(zhí)行并在下方輸出結果,如圖

1.32

所示。單擊File

菜單,可以保存文件,文件的后綴是.ipynb,也可以保存為.py、.html

等格式的文件。Jupyter

Notebook開發(fā)環(huán)境兼有交互命令模式和文件模式的優(yōu)點,不僅可以反復修改編輯框中的程序,還可以立即查看執(zhí)行結果,十分方便,在數據分析中得到了廣泛使用。32圖

1.32 編輯與運行程序1.2.6 Web

版在線開發(fā)環(huán)境除了本地安裝開發(fā)環(huán)境,還可以直接使用基于瀏覽器的解釋器和集成開發(fā)環(huán)境。在瀏覽器中編寫和運行Python

代碼,可即時獲得運行結果,無須安裝任何軟件。常用的基于

Web

的Python

開發(fā)環(huán)境有:Online

Python、Online

GDB、Python

Anywhere、Programmiz、Google

Colab。大家可以選擇一款喜歡的進行學習、使用。對于初學者,推薦使用Online

Python,其主頁如圖

1.33

所示。1

章緒 論33圖

1.33Online

Python

主頁341.3

模塊、包與庫Python

代碼通常存儲在一個后綴為.py

的文件中,因此Python?代碼的基本組織單位是文件,也稱為模塊(module)。一個Python

項目的程序往往存儲在多個文件中,即一個項目由多個模塊組成。Python

程序設計遵循標準的模塊化編程理念,Python

程序由模塊組成,模塊由語句組成。當一個項目中有多個模塊(多個.py

文件)時,需要再進行組織,將功能類似的模塊放到一個文件夾中就形成了包。Python?包(package)

就是一個包含

init

.py?文件的文件夾。包可以包含模塊,也可以包含子包(subpackage),就像文件夾可以包含文件和子文件夾一樣。Python

庫(library)借用其他編程語言的概念,沒有特別具體的定義。庫強調的是功能性,而不是代碼組織。通常,我們將實現某一功能的包或模塊的集合稱為庫。Python

模塊可分為內建模塊、標準模塊和第三方模塊。內建模塊是在運行1

章緒 論35解釋器時自動導入的模塊,可以直接使用模塊中的變量、函數等。標準模塊是在安裝解釋器時自動安裝到硬盤上的模塊,但在運行解釋器時并不會自動導入,需要用import

語句將其導入才可以使用。第三方模塊是在安裝解釋器時沒有安裝到本地的模塊,使用前需要下載并安裝。自己建立的.py

文件稱為自定義模塊,文件名稱就是模塊名稱。模塊的安裝Python

模塊的安裝有在線安裝和離線安裝兩種方式。在線安裝在線安裝是比較常用的安裝方法。利用Python

內置的pip

工具可以非常方便地安裝Python

第三方模塊。進入CMD

窗口(操作系統(tǒng)命令行窗口),使用如下命令進行安裝。pip install 模塊名36如果不再使用已安裝的模塊,則可以卸載該模塊,其語法格式如下。pip uninstall 模塊名2.

離線安裝第三方庫(模塊)一般是打包壓縮上傳到網上的,因此,離線安裝需要先把庫下載到本地,然后把包解壓,在解壓后的文件夾中,找到該安裝包中的

setup.py文件,最后進入CMD

窗口,使用如下命令進行安裝。python setup.py install當第三方庫、包或模塊被安裝到本地之后,其使用方法與標準庫中模塊的使用方法一樣。1.3.2 模塊的導入與使用模塊化設計的優(yōu)點之一就是“代碼復用性高”。寫好的模塊可以被反復調用、1

章緒 論37使用。模塊的導入就是“在本模塊中使用其他模塊”。1.

模塊的導入模塊的導入有兩種方式:import

語句導入和from…import

語句導入。模塊就是.py

類型的Python

文件,在導入時不需要加.py

后綴,直接導入文件名即可。(1)??import

語句導入。import

語句的基本語法格式如下。import

模塊

1,模塊

2...import

模塊名

as

模塊別名#

導入多個模塊#

導入模塊并使用新名字(2)??from…import

語句導入。Python

中可以使用from…import

導入模塊中的成員,基本語法格式如下。from

模塊名import

成員

1,成員

2...from

模塊名import

成員

as

成員別名#

導入模塊中的多個成員#

導入模塊中的成員并使用新名字38from

模塊名import

*上式中的*表示導入模塊中所有的名字不是以下畫線(_)開頭的成員(成員是指模塊中的類、函數等)。一般情況下盡量避免使用這種格式,因為導入的名字很有可能會覆蓋之前已經定義的名字,而且可讀性極差。2.

包的導入包就是包含很多模塊的文件夾,包內還可以有子包。利用import

語句可以直接導入包(本質是執(zhí)行包中的

init

.py?文件,把包也轉換成了模塊,所以僅導入

init

.py?中的內容),語法格式如下。import

包名直接導入一個包,就可以使用包中

init

.py

文件中的全部內容。也可以導入包中的某一個模塊,語法格式如下。import

包名.模塊名1

章緒 論39還可以導入包中指定模塊的某一個類或函數,語法格式如下。import

包名.模塊名.類名(或函數名)3.

模塊的使用(1)

內建模塊。內建模塊是在運行解釋器時自動導入的模塊,可以直接使用模塊中的變量、函數等。在Python

中,有一個內建模塊(builtins),該模塊在Python

啟動后會自動加載到內存,可以直接使用內建模塊中的函數或其他功能。例如,內建模塊中有一個abs()函數,其功能是計算一個數的絕對值,解釋器命令行執(zhí)行abs(-20),將返回

20,如圖

1.34

所示。40圖

1.34 調用內置函數abs()(2)

標準模塊。標準模塊是在安裝解釋器時自動安裝到硬盤上的模塊,但在運行解釋器時并不會自動導入,需要用import

語句將其導入才可以使用。例如,標準模塊中的數學模塊math,要將其導入以后才能使用,示例代碼如程序段

P1.1

所示。在Python

中,有許多標準模塊,隨著Python

的發(fā)展,標準模塊也在發(fā)展。P1.1

導入math

模塊import mathprint(math.pi)print(math.sqrt(9))運行代碼,輸出結果如下:3.141592653589793 3.01

章緒 論41導入模塊后,在使用時要加上模塊名。例如,使用

math.pi

輸出圓周率;使用math.sqrt(9)計算

9

的平方根,計算后輸出

3。(3)

第三方模塊。第三方模塊需要先安裝、導入,然后才能使用,如數值計算模塊numpy。以在線安裝為例,首先在操作系統(tǒng)命令行輸入以下語句。pipinstall

numpy執(zhí)行命令后,顯示結果如圖

1.35

所示。圖

1.35 安裝第三方模塊numpy顯示安裝成功后,與標準模塊一樣在程序中導入使用。示例代碼如程序段P1.2

所示。42P1.2

導入numpy

模塊importnumpyas

npprint(np.pi)x=np.array([1,2,3])print(x)運行代碼,輸出結果如下。3.141592653589793 [12

3]在導入numpy

模塊時,給它取了一個別名np,用np.pi

輸出了圓周率,用np.array([1,2,3])定義了一個數組[1,2,3]。Python

是一個開放的生態(tài)系統(tǒng)。開放系統(tǒng)的重要特征是每個開發(fā)者都有權編輯和發(fā)布模塊(或包),人人都可以為這個系統(tǒng)做出貢獻。Python

擁有豐富的標準庫和第三方庫,Python

的第三方庫會在PyPI

網站(/)上發(fā)布,在1

章緒 論43安裝某個第三方庫之前,建議先到

PyPI

官方網站找到該庫,了解其基本情況,特別是它支持的Python

版本,以及最新版本的發(fā)布時間。當然很多開發(fā)者也使用GitHub

網站的源碼安裝。turtle

對象繪圖庫turtle

對象編程思維對象這個概念,我們并不陌生?,F實世界中,我們把感知到的一切有形、無形的事物都稱為對象。例如,大家手里的一本書、校園里的一棵樹、動物園里的一只老虎都可以稱為一個對象,這些是有形的對象。同時,“書”這個概念表示世界上所有的書籍(提到這個概念,你自然會想到所有的書類);“樹”這個概念表示地球上所有的樹木;“老虎”這個概念表示地球上所有的虎類動物,這些都是現實世界中人類創(chuàng)造的概念事物,可以稱為概念對象,屬于無形的對象。這是人類的自然思維方式。44我們每天都會使用各種不同的軟件,軟件幾乎成了我們生活的必需品??梢哉f,大部分軟件都是采用面向對象編程技術開發(fā)的基于對象的軟件系統(tǒng),人類創(chuàng)造了一個軟件對象世界,這個世界由信息世界、網絡空間、虛擬世界和未來的元宇宙等組成。就像分子、原子是現實世界的基本事物一樣,軟件世界中的對象是軟件世界中的基本事物。那么,軟件世界中的對象是什么呢?這個問題其實很簡單,軟件世界中的對象就是現實世界中對象的映射?,F實世界由現實對象構成,軟件世界由軟件對象構成。一切皆對象,Python

語言充分實現了這個哲學認識。因此,在現實世界中我們用自然語言表達的對象,在軟件世界中可以很容易地用Python

語言描述出來,因為所采用的思維方式是一樣的,即人類的自然思維方式。這就是

Python

易學、易用且功能強大的根本。人類認識事物所創(chuàng)造的概念對象,實際上是通過思維活動對現實事物進行模式識別,再進行歸納、抽象而建立的分類模型概念,并用語言符號進行命名,這就是類型對象,簡稱為類對象。例如,書、樹、虎就是現實世界中的類對象,1

章緒 論45而具體的一本書、一棵樹、一只老虎就是實例對象。任何對象都有自己的屬性特征和功能行為,因此,通過自然語言描述對象的屬性特征和功能行為,我們就可以識別對象。Python

語言如何描述對象呢?Python

語言采用class、def、self

等關鍵詞加上語言符號來描述對象。用Python

語言和中文字符描述海龜類對象的簡單模型如程序段P1.3

所示。P1.3

用Python

語言和中文字符描述的海龜類class

海龜:顏色=

"黑色"腿數=

4def

前進(self):#

用class

關鍵詞給海龜類模型命名#

描述海龜的顏色屬性#

描述海龜的腿數屬性#

用def

關鍵詞給海龜前進方法命名,self

關鍵字表示方法所屬的對象print("前進

10

米") #

方法體描述前進方法要做的事情,這里只輸出“前進

10

米”def

后退(self):46print("后退

8

米")def

左轉(self):print("左轉

5

度")def

右轉(self):print("右轉

3

度")#

用海龜類模型創(chuàng)建一個海龜實例,并命名為小海#

查看小海的顏色屬性#

調用海龜的前進方法小海=

海龜()print(小海.顏色)print(小海.腿數)小海.前進()小海.后退()小海.左轉()小海.右轉()運行代碼,輸出結果如下。1

章緒 論47黑色

4

前進

10

后退

8

左轉

5

右轉

3

度從上面對海龜類模型的描述中可以看到,Python

語言通過定義變量描述對象的屬性特征,這里稱為屬性;通過

def

定義的函數描述對象的功能行為,在類模型中,定義的函數的第一個參數必須是表示自身對象的self

參數,因此,在類對象中定義的函數稱為對象的方法。對象的屬性和方法,稱為對象的成員。用Python

語言和英文字符描述海龜類對象的模型如程序段P1.4

所示。P1.4

用Python

語言和英文字符描述的海龜類class

turtle:color=

"black"legs=

4defforward(self):print("Forward10

meters")48def

backward(self):print("Backward8

meters")def

left(self):print("Turnleft5

degrees")def

right(self):print("Turnright3

degrees")xiaohai=

turtle()print(xiaohai.color)print(xiaohai.legs)xiaohai.forward()xiaohai.backward()xiaohai.left()xiaohai.right()1

章緒 論49運行代碼,輸出結果如下。Backward8

metersblack 4Turnleft5

degrees

Forward10

meters

Turnright3

degrees在上面的模型中,class

定義類對象的名稱turtle,def

定義類對象的行為方法,self

作為行為方法的第一個參數,表示使用這個行為方法的對象自身。與自然語言描述類對象一樣,用

Python

語言描述類對象實際上就是用Python

語言對現實世界中的對象建模,構建一個現實世界中的對象映射到軟件世界的模型。這個模型就是軟件世界中的類對象。利用這個模型可以創(chuàng)建軟件世界中的一個個實例對象,這些實例對象是現實世界中一個個具體實例對象在軟件世界中的映射。例如,上面程序中的海龜(turtle)是類對象,映射現實世界中的海龜類概念;創(chuàng)建的小海(xiaohai)是一個實例對象,映射現實世界中的某個具體的海龜。50Python

的turtle

繪圖庫,就是由一系列軟件對象構成的軟件系統(tǒng)。1.4.2 turtle

庫概述turtle

是Python

的一個編程教育類庫,廣受教育者的喜愛。許多智能設計與創(chuàng)意編程比賽均使用turtle

庫。turtle

庫也稱為海龜繪圖庫,它模擬一只小海龜在爬行,爬行軌跡就是繪制出來的圖形。在turtle

中,小海龜是繪圖的畫筆(pen)對象,記錄小海龜爬行軌跡的是畫布(canvas)對象。畫筆對象的形狀、顏色和大小等特征,稱為畫筆對象的屬性;畫筆對象的前進、后退、左轉和右轉等動作,稱為畫筆對象的方法。在繪圖編程中,根據繪圖要求設置畫筆屬性、調用畫筆方法,就可以繪制出需要的圖形。turtle繪圖就是采用這種面向對象的編程思維,對畫布對象和畫筆對象等進行編程來實現繪圖功能的。只是這里的對象都是?turtle?模塊已經設計好的,而在解決其他問題的編程實踐中,其對象往往需要自己設計。1

章緒 論51turtle

是Python

的標準圖形模塊,當通過

import

語句導入turtle

時,就創(chuàng)建了一個turtle

對象(模塊對象),其中包括屏幕窗口對象、畫布對象、畫筆對象等。在屏幕坐標系中,turtle

繪圖窗口及畫布示意圖如圖

1.36

所示。圖

1.36 turtle

繪圖窗口及畫布示意圖繪圖窗口及畫布屬性如表

1-1

所示。表

1-1 繪圖窗口及畫布屬性屬性名 功能描述52width繪圖窗口寬height繪圖窗口高startx繪圖窗口左上角頂點

x

坐標starty繪圖窗口左上角頂點

y

坐標canvwidth畫布寬canvheigh畫布高bg畫布背景顏色畫筆屬性如表

1-2

所示。表

1-2畫筆屬性屬性名功能描述1

章緒 論53shape畫筆形狀pensize畫筆線條的寬度colormode畫筆顏色模式pencolor畫筆顏色speed畫筆移動速度turtle

繪圖是通過控制海龜(畫筆)對象在創(chuàng)建的繪圖窗口(畫布對象)上移動來實現圖形繪制的。海龜在繪圖窗口的移動以兩個坐標系為參考。

空間坐標系:空間坐標系以繪圖窗口畫布的中心點為坐標系原點,原點的絕對坐標為(0,0)。在圖

1.37

中,第一至第四象限四點的絕對坐標分別為(100,100)、(-100,100)、(-100,

-100)、(100,

-100)。默認狀態(tài)下海龜以水平向右為前進方向。

角度坐標系:角度坐標系是以海龜為中心的相對坐標系,順時針方向一周為540~-360°,逆時針方向一周為

0~360°,如圖

1.38

所示。圖

1.37 空間坐標系 圖

1.38 角度坐標系以兩個坐標系為參考,控制海龜在畫布上移動,它爬行的路徑就是繪制的圖形。turtle

繪圖對象常用的控制方法如表

1-3

所示。表

1-3 turtle

繪圖對象常用的控制方法方法名 功能描述設置窗體、畫布1

章緒 論55turtle.setup(width,height,startx,starty)創(chuàng)建設置窗體的寬、高、坐標turtle.screensize(canvwidth,canvheight,bg)創(chuàng)建設置畫布的寬、高、背景色turtle.title("s")設置窗體標題turtle.bgcolor()設置背景顏色turtle.bgpic()設置背景圖片screen_name=

turtle.Screen()創(chuàng)建窗體對象并取名screen_namecanvas_name=

turtle.Canvas()創(chuàng)建畫布對象并取名canvas_name(續(xù)表)方法名功能描述設置畫筆turtle.shape("turtle")設置畫筆的形狀(turtle-海龜;arrow-箭頭;circle-圓圈;square-實心正方形;triangle-三角56形;classic-默認箭頭)turtle.pensize(width)/width()設置當前畫筆線條的寬度為width

像素turtle.colormode(1.0[255])設置畫筆顏色模式turtle.pencolor(colorstring)/color()設置畫筆顏色,colorstring

可以是"green"、"red"、"blue"、"yellow"等英文字符串turtle.speed(5)設置畫筆的移動速度,取值范圍為[0,10]的整數,數字越大,畫筆移動的速度越快pen_name=turtle.Pen()創(chuàng)建畫筆對象并取名pen_name控制畫筆turtle.penup()/pu()/up()提起畫筆,不繪圖turtle.pendown()/pd()/down()畫筆移動時繪制圖形turtle.forward(100)/fd(100)畫筆向當前方向移動

100

像素距離1

章緒 論57圖形與填充turtle.circle(5,[extent,steps])繪制半徑為

5

的圓形turtle.backward(100)/bk(100)畫筆向相反方向移動

100

像素距離turtle.right(45)/rt(45)畫筆順時針移動

45°turtle.left(45)/lt(45)畫筆逆時針移動

45°turtle.setheading(45)/seth(45)設置當前畫筆朝向為

45°turtle.goto(x,y)移動畫筆到指定坐標位置turtle.hideturtle()隱藏畫筆turtle

形狀turtle.showturtle()顯示畫筆turtle

形狀turtle.setx(x)海龜的

x

坐標移動到指定位置turtle.sety(y)海龜的

y

坐標移動到指定位置turtle.home()設置當前畫筆位置為原點,朝向東(默認值)58turtle.dot()畫一個圓點(實心)turtle.stamp()復制當前畫筆圖形turtle.fillcolor('red')設置填充顏色turtle.color(pencolor,fillcolor)同時設置畫筆顏色(邊框顏色)和填充顏色turtle.begin_fill()以當前為起點,開始填充顏色turtle.end_fill()以當前為終點,結束填充圖形自定義畫筆形狀begin_poly()開始記錄圖形end_poly()結束圖形記錄(續(xù)表)方法名功能描述1

章緒 論59get_poly()獲取畫筆圖形addshape('name',shape)增加畫筆形狀register_shape('name',

shape)注冊畫筆形狀register_shape("file.gif")注冊gif

格式圖片為畫筆形狀全局控制turtle.done()繪圖后,保留窗口。必須是最后一個語句turtle.clear()清空turtle

窗口,但是

turtle

的位置和狀態(tài)不會改變turtle.reset()清空turtle

窗口,重置

turtle

狀態(tài)為起始狀態(tài)turtle.undo()撤銷上一個turtle

動作turtle.isvisible()返回當前turtle

是否可見turtle.write("

文本"

,align="center",font=("

微寫文本。align(可選):left、right、center;font(可60軟雅黑",20,"normal"))選):字體名稱、字體大小、字體類型屏幕事件動畫控制turtle.mainloop()啟動事件循環(huán)turtle.listen()監(jiān)聽屏幕事件turtle.onkeypress()當鍵按下turtle.onkeyrelease()當鍵按下并釋放turtle.onclick(fun,btn=1,add=None)當單擊畫布屏幕時,執(zhí)行函數(fun

為傳入的函數),btn

值:1

為鼠標左鍵,2

為鼠標中間鍵,3

為鼠標右鍵。當

add

為True

時將添加一個新綁定turtle.ontimer(fun,t=0)定時器,在達到t

毫秒后,執(zhí)行fun

函數1

章緒 論61turtle.delay()延遲(毫秒):連續(xù)兩次畫布刷新的間隔時間turtle.tracer(n,delay)追蹤小海龜的繪圖,當

n

0

或為False

時禁用追蹤,默認為

1;delay

為延遲(毫秒)turtle.update()更新,保存圖形image=

pen.getscreen()將屏幕轉換為圖形對象image.getcanvas().postscript(file="demo.eps")保存畫布上的圖形。僅能保存為?eps?矢量圖格式,可用GIMP

轉換為其他格式turtle

繪圖操作方法創(chuàng)建并設置窗體、畫布屬性窗體是繪圖展示區(qū)域,畫布是繪圖區(qū)域,創(chuàng)建與設置窗體的語法格式如下。turtle.setup(width=200,height=100,startx=100,starty=100)62參數說明如下。

width:窗體寬,當為整數時,表示像素;當為小數時,表示占據計算機屏幕的比例。

height:窗體高,當為整數時,表示像素;當為小數時,表示占據計算機屏幕的比例。

startx、starty:表示矩形窗口左上角頂點的位置坐標,如果為空,則窗口位于屏幕中心。如果程序中未調用setup()函數,那么繪圖程序執(zhí)行時會生成一個默認窗口。在程序中繪制完圖形后,應調用

done()函數聲明繪制結束,此時

turtle

的主循環(huán)會終止,但直到用戶手動關閉圖形窗口時圖形窗口才會退出。創(chuàng)建與設置畫布的語法格式如下。turtle.screensize(canvwidth=400,canvheight=300,bg='black')1

章緒 論63參數說明如下。

canvwidth:畫布寬,單位為像素。canvheight:畫布高,單位為像素。bg:背景顏色??梢允?green"、"red"、"blue"、"yellow"等英文字符串。設置窗體和畫布的示例代碼如程序段P1.5

所示。#

導入turtle

模塊#

窗體尺寸為

200×100,左上角頂點坐標為(100,P1.5

設置窗體和畫布importturtleturtle.setup(200,100,100,100)100)turtle.screensize(400,200,'green')turtle.done()#

畫布尺寸為

400×200,顏色為綠色#

聲明繪制結束運行代碼,顯示窗口與畫布,如圖

1.39

所示。64圖

1.39 窗口與畫布設置的畫布比窗體尺寸要大,因此會顯示窗口滑動條。2.

設置畫筆屬性畫筆形狀。使用shape()方法設置畫筆的形狀,語法如下。turtle.shape("turtle")輸入參數表示設置畫筆的形狀,可以設置以下

6

種形狀的畫筆:turtle-海龜;arrow-箭頭;circle-圓圈;square-實心正方形;triangle-三角形;classic-默認箭頭。畫筆粗細。使用width()方法設置畫筆線條粗細,語法如下。1

章緒 論65turtle.width(width)參數width

用于設置畫筆線條的寬度,用像素表示。(3)

畫筆顏色模式。使用colormode()方法設置畫筆顏色模式,語法如下。turtle.colormode(1.0[255])設置顏色的模式,如果參數?mode?的取值為

255,則采用的是RGB

整數值模式;如果參數

mode

的取值為

1.0,則采用的是

RGB

小數值模式。顏色模式配色數值如表

1-4

所示。表

1-4 顏色模式配色數值表顏色RGB

整數值RGB

小數值十六進制字符串白色(255,255,255)(1,1,1)#FFFFFF66黑色(0,0,0)(0,0,0)#000000紅色(255,0,0)(1,0,0)#FF0000綠色(0,255,0)(0,1,0)#00FF00藍色(0,0,255)(0,0,1)#0000FF黃色(255,255,0)(1,1,0)#FFFF00紫色(160,32,240)(0.63,0.13,0.94)#A020F0(4)

畫筆顏色。使用color()方法設置畫筆顏色,語法如下。turtle.color(colorstring)設置畫筆的顏色,參數colorstring可以是"green"、"red"、"blue"、"yellow"等英文字符串,也可以是表

1-4

中的配色數值。1

章緒 論67(5)

畫筆速度。使用speed()方法設置畫筆運動速度,語法如下。turtle.speed(num)參數num

用于設置畫筆移動的速度,其取值范圍為[0,10]的整數,數字越大,速度越快。設置畫筆屬性示例代碼如程序段P

溫馨提示

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

評論

0/150

提交評論