深入理解Python語言
計(jì)算機(jī)發(fā)展階段
1946-1981 計(jì)算機(jī)結(jié)構(gòu)時(shí)代(35年):計(jì)算能力問題
1981-2008 網(wǎng)絡(luò)和視窗時(shí)代(27年):交互問題。Windows視窗操作系統(tǒng)
2008年,安卓操作系統(tǒng)誕生
2008-2016 復(fù)雜信息系統(tǒng)時(shí)代(8年):數(shù)據(jù)問題芽世。大數(shù)據(jù)碧注、云計(jì)算
2016- 人工智能時(shí)代(新計(jì)算時(shí)代):人類的問題遂跟。2017年户辱,柯潔和Alpha Go
不同編程語言的初心和適用對(duì)象
語言 | 學(xué)習(xí)內(nèi)容 | 語言本質(zhì) | 解決問題 |
---|---|---|---|
C | 指針咒钟、內(nèi)存卢肃、數(shù)據(jù)類型 | 理解計(jì)算機(jī)系統(tǒng)結(jié)構(gòu) | 性能 |
Java | 對(duì)象疲迂、跨平臺(tái)、運(yùn)行時(shí) | 理解主客體關(guān)系 | 跨平臺(tái) |
C++ | 對(duì)象莫湘、多態(tài)尤蒿、繼承 | 理解主客體關(guān)系 | 大規(guī)模程序,如大規(guī)模圖像處理程序 |
VB | 對(duì)象幅垮、按鈕腰池、文本框 | 理解交互邏輯 | 桌面應(yīng)用 |
Python | 編程邏輯、第三方庫 | 理解問題求解 | 各類問題 |
Python特點(diǎn)與優(yōu)勢(shì)
-
語法簡(jiǎn)潔
1. C代碼量的10%
2. 強(qiáng)制可讀性
3. 較少的底層語法元素
4. 多種編程方式
5. 支持中文字符 -
生態(tài)高產(chǎn)
1. 13W+第三方庫
2. 快速增長(zhǎng)的計(jì)算生態(tài)
3. 避免重復(fù)造輪子
4. 開放共享
5. 跨操作系統(tǒng)平臺(tái)
C/C++:Python歸Python忙芒,C歸C
Java:針對(duì)特定開發(fā)和崗位需求
HTML/CSS/JS:不可替代的前端技術(shù)示弓,全棧能力
其他語言:R/Go/Matlab等,特定領(lǐng)域
編程語言的種類
- 超級(jí)語言:粘性整合已有程序匕争,具備龐大計(jì)算生態(tài)避乏,可以很容易利用已有代碼功能,如Python
- 高級(jí)語言:接近自然語言甘桑,編譯器/解釋器拍皮,與CPU型號(hào)無關(guān)
- 匯編語言:有助記符,匯編器跑杭,與CPU型號(hào)有關(guān)
- 機(jī)器語言:代碼直接執(zhí)行铆帽,與CPU型號(hào)有關(guān)
Python計(jì)算生態(tài) = 標(biāo)準(zhǔn)庫 + 第三方庫
- 標(biāo)準(zhǔn)庫:隨解釋器直接安裝到操作系統(tǒng)中的功能模塊
- 第三方庫:需要經(jīng)過安裝才能使用的功能模塊
- 庫Library、包Package德谅、模塊Module爹橱,統(tǒng)稱模塊
turtle庫的使用
turtle庫基本介紹
- 有一只海龜,在窗體正中心窄做。
- 在畫布上游走愧驱,走過的軌跡形成了繪制的圖形。
- 海龜由程序控制椭盏,可以變換顏色组砚、改變寬度等。
turtle繪圖窗體布局
- 畫布空間掏颊,畫布最小單位是像素
-
turtle.setup(width, height, startx, starty)
設(shè)置窗體大小及畫布左上角的位置糟红,非必須
turtle空間坐標(biāo)體系
- 絕對(duì)坐標(biāo):
turtle.goto(x, y)
- 海龜坐標(biāo):
turtle.circle(r, angle)
turtle角度坐標(biāo)體系
turtle.seth(angle)
- seth()改變海龜行進(jìn)方向
- angle為絕對(duì)度數(shù)
- seth()只改變方向但不行進(jìn)
RGB色彩體系
- RGB指紅藍(lán)綠三個(gè)通道的顏色組合
- 覆蓋視力所能感知的所有顏色
- RGB每色取值范圍0-255整數(shù)或0-1小數(shù)
turtle的RGB色彩模式
默認(rèn)采用小數(shù)值 可切換為整數(shù)值:turtle.colormode(mode)
- 1.0:RGB小數(shù)值模式
- 255:RGB整數(shù)值模式
turtle程序語法元素
庫引用與import
庫引用是擴(kuò)充Python程序功能的方式艾帐,使用import保留字完成。
- 用法1:采用<a>.<b>()編碼風(fēng)格
import <庫名>
<庫名>.<函數(shù)名>( <函數(shù)參數(shù)>)
- 用法2:使用from和import保留字共同完成
from <庫名> import <函數(shù)名>
from <庫名> import *
<函數(shù)名>(<函數(shù)參數(shù)>)
- 用法3:使用import和as保留字共同完成盆偿,
import <庫名> as <庫別名>
<庫別名>.<函數(shù)名>( <函數(shù)參數(shù)>)
- 用法比較:
1. 第一種方法不會(huì)出現(xiàn)函數(shù)重名的問題
2. 第二種方法會(huì)出現(xiàn)函數(shù)重名問題柒爸,帶來問題
3. 第三種方法冗余代碼量較少,還能防止函數(shù)重名
turtle畫筆控制函數(shù)
畫筆設(shè)置后一直有效事扭,直至下次重新設(shè)置
-
turtle.penup()
別名turtle.pu()
:抬起畫筆捎稚,海龜在飛行 -
turtle.pendown()
別名turtle.pd()
:落下畫筆,海龜在爬行 -
turtle.pensize(width)
別名turtle.width(width)
:畫筆寬度句旱,海龜?shù)难鼑?/li> -
turtle.pencolor(color)
color為顏色字符串或r,g,b值:畫筆顏色阳藻,海龜在涂裝
turtle運(yùn)動(dòng)控制函數(shù)
-
turtle.forward(d)
別名turtle.fd(d)
:向前行進(jìn),海龜走直線谈撒。d: 行進(jìn)距離,可以為負(fù)數(shù) -
turtle.circle(r, extent=None)
:根據(jù)半徑r繪制extent角度的弧形匾南。r: 默認(rèn)圓心在海龜左側(cè)r距離的位置啃匿;extent: 繪制角度,默認(rèn)是360度整圓蛆楞。
turtle方向控制函數(shù)
-
turtle.setheading(angle)
別名turtle.seth(angle)
:改變行進(jìn)方向溯乒,海龜走角度。angle: 行進(jìn)方向的絕對(duì)角度豹爹。 -
turtle.left(angle)
:海龜向左轉(zhuǎn)裆悄;turtle.right(angle)
海龜向右轉(zhuǎn)。angle: 在海龜當(dāng)前行進(jìn)方向上旋轉(zhuǎn)的角度臂聋。
基本循環(huán)語句
按一定次數(shù)循環(huán)執(zhí)行的語句:
for <變量> in range(<參數(shù)>)
<被循環(huán)執(zhí)行的語句>
# 從0開始打印光稼,打印5次
for i in range(5):
print(i)
range()函數(shù):產(chǎn)生循環(huán)計(jì)數(shù)序列
range(N)
:產(chǎn)生從0到N-1的整數(shù)序列,共N個(gè)
實(shí)例:Python蟒蛇繪制
#PythonDraw. py
import turtle
turtle. setup(650, 350, 200, 200)
turtle. penup()
turtle. fd(-250)
turtle. pendown()
turtle. pensize(25)
turtle. pencolor("purple")
turtle. seth(-40)
for i in range(4):
turtle. circle(40, 80)
turtle. circle(-40, 80)
turtle. circle(40, 80/2)
turtle. fd(40)
turtle. circle(16, 180)
turtle.fd(40*2/3)
turtle. done()