- 簡單介紹語言史
- 庫、包、模塊,如何使用import、as、from
- turtle庫,包括:畫布設置、畫筆設置、運動控制、方向控制
一、深入理解python
計算機的階段性發展截至目前大概可以分爲四個階段:
從1946年世界上第一臺計算機ENIAC的誕生到1981年是系統結構時代,主要解決的問題是計算機能力。在這個階段產生了一種以解決計算機性能爲目的的計算機語言,即C語言。
1982-2008年,互聯網快速發展,進入了網絡和視窗時代。計算機的能力已經不再是主要問題,交互式已經成爲主角。例如VB就是一種交互式編程語言。
2008年-2016年,複雜信息系統時代,也就是大數據時代,解決數據問題成爲熱點。
從2016年到現在,則是AI時代,主要是解決人類問題。
其實準確地說,目前還不是真正意義上的AI時代,而是大數據時代向AI時代過渡的一箇中間階段,即新計算時代。
不同的時期由不同的編程語言產生。迄今爲止已有成百上千種計算機編程語言,不同的語言由於誕生的時代不同又有不同的特點。
C語言:主要內容包括指針、內存、數據類型。語言的本質是理解計算機系統結構。C語言可以很好地解決計算機性能問題,這也是到現在爲止,這門古老的編程語言依然應用廣泛的原因。它適合計算機類專業的學習進行學習。
Java語言:主要內容包括對象、跨平臺、運行時。語言本質是理解主客體關係。解決問題爲跨平臺,例如做嵌入式、安卓軟件開發等。適合軟件專業學生學習。
C++語言:主要內容包括對象、多態、繼承。同樣作爲面向對象的編程語言,它的本質是理解主客體關係。它適合大規模程序。
python語言:主要內容是第三方庫和理解編程邏輯。python是一門十分簡單的編程語言,很多python入門教材和視頻中都會在開頭這麼介紹python——“人生苦短,我學python”。說它簡單,是因爲一段很多行的C代碼在python中可能幾行就解決了。它可能是C語言代碼量的十分之一。這並不是說C語言和C++等編程語言並不重要。很多人會在網上吐槽某一種編程語言,個人認爲不同語言有它不同的適用範圍,學習一種語言,應該瞭解它的本質,它所能解決的主要問題,這對於學好一門語言並能更好地應用十分重要。我們知道編程語言可以由下至上分爲機器語言、彙編語言、高級語言,而python其實是屬於高級語言之上的超級語言。所以有時候不同語言之間可能根本就沒有可比性。當然我也是個小白,只是在博客裏偶爾寫寫學習筆記罷了,一些觀點可能並不正確,歡迎大家的批評指正補充。
二、turtle庫
turtle庫是幹什麼的呢?它是一個繪圖工具,turtle的英文含義是海龜,我們可以把自己的畫筆形象地比喻成一隻在畫布上四處遊動的小海龜,海龜地顏色就是畫筆顏色,海龜的大小胖瘦就是畫筆的粗細,海龜的朝向就是畫筆的方向,海龜的行跡即畫出的圖像。由此感覺搞程序的人確實都很可愛,並極富想象力的。其實在這裏還可以簡單介紹一下python的開發者們~還是下次吧。
1、import turtle
因爲是python入門,在介紹turtle庫之前先簡單寫一下如何導入庫。
python的庫大致可以分爲三類,標準庫、第三方庫以及自己寫的一些模塊。標準庫是隨着解釋器直接安裝在操作系統中的功能模塊。第三方庫是需要經過安裝才能使用的功能模塊。庫Library、包Package、模塊Module,統稱爲模塊。關於python的標準庫和第三方庫請見:python常見的標準庫以及第三方庫有哪些?
在使用turtle庫之前需要我們先import一下,方法如下:
import <庫名>
<庫名>.<函數名>(<參數列表>)
這種方法在每次使用庫裏的方法時都需要在函數名前面加一個<庫名>.,所以顯得有些繁瑣。於是提出下面一中方法:
from <庫名>import <函數名>
#或者
from <庫名>import*
<函數名>(<參數列表>)
很明顯這種方法也帶來了一個弊端,就是當函數名可能會和我們自己定義的某個函數名稱或其他庫裏的函數名衝突。所以一般只有在代碼十分簡短的時候纔會使用。不推薦在import了多個庫時使用。
爲了避免上面兩個問題,又提出另外一個解決辦法:
import <庫名> as <庫別名>
<庫別名>.<函數名>(<參數列表>)
2、畫布設置
畫布設置的函數爲:
turtle.setup(length,width,startx,starty)
其中前兩個參數表示畫布的長寬,後兩個參數表示畫布在屏幕中的位置,默認爲左上角(0,0)。
3、畫筆控制
一般成對出現。
turtle.penup() #別名:turtle.pu() 和 turtle.up()
#功能:擡起畫筆,方便移動畫筆
turtle.pendown()#別名:turtle.pd() 功能:畫筆落下開始作畫
turtle.pensize(width) #別名:turtle.width(width)
#功能:控制小海龜的胖瘦,也就是畫筆的粗細
turtle.pencolor(color)#功能:設置畫筆顏色
'''
其中的color有三種表示方式,即字符串方法,RGB方法,元組法。
字符串方法:turtle.pencolor("red")
RGB方法:turtle.pencolor(1,0,0)
元組法:turtle.pencolor((1,0,0))
'''
turtle.colormode(mode)#設置顏色模式,分爲整數255模式和小數(0~1)模式,其中默認爲小數模式
turtle.done() #功能:表示畫完後窗口不會自動關閉,需要人爲關閉。如果不用的話窗口會自動關閉。
4、運動控制
turtle.forward(distance) #別名:turtle.fd(d)
turtle.bk(distance)
其中小海龜的默認位置爲畫布的正中央。方向向右→,forward指向小海龜的正前方行進,如果參數設爲負數,表示小海龜向後倒退走。和bk的區別就是海龜的朝向。
其中r表示半徑,圓心默認在小海龜的左方距離r處。如果r設置爲負數,則表示圓心在小海龜的右側。
turtle.circle(r, extence=None)
extence表示轉過的角度。
5、方向控制函數
對於方向控制分爲絕對方向和海龜方向。絕對方向指在畫布正中心建立一個絕對座標系,逆時針方向爲正,順時針方向爲負。與x軸重合方向爲0°,與y軸方向重合的方向爲90°。海龜方向指建立一個動態座標系。小海龜中心是原點,小海龜的正前方是極座標系的方向。
絕對方向:
turtle.setheading(angle) #別名:turtle.setd(angle)
動態方向:
turtle.left(angle)
turtle.right(angle)
先寫這麼多吧,以後有內容了再補充。歡迎批評指正和補充。