Python語言程序課程記錄隨筆(一)

Python語言程序課程記錄隨筆(一)

一、溫度轉換(攝氏度\華氏度)

import turtle                           #引入烏龜描繪函數庫

def drawSnake(rad,angle,len,neckrad):   #繪製蛇的函數(每次轉動圓的半徑,每次轉換的角度,擺動的次數,
    for i in range(len):                #循環len次
        turtle.circle(rad,angle)        #以半徑rad逆時針轉動angle角度
        turtle.circle(-rad,angle)       #以半徑rad順時針轉動angle角度
    turtle.circle(rad,angle/2)          #讓烏龜的方向調整爲水平
    turtle.fd(rad)                      #讓烏龜向前移動rad距離
    turtle.circle(neckrad+1,180)        #讓烏龜向後轉頭
    turtle.fd(rad*2/3)                  #最後再向前移動

def main():
    turtle.setup(1300,800,0,0)         #確定圖形窗口的大小和窗口出現在顯示屏上的位置
    pythonsize=30                      
    turtle.pensize(pythonsize)         #將畫筆的粗細設置爲30
    turtle.pencolor("blue")            #設置畫筆的顏色爲blue
    turtle.seth(-40)                   #將烏龜的方向設置爲-40度
    drawSnake(40,80,5,pythonsize/2)    #調用drawSnake函數

main()                                 #執行main函數

二、使用turtle庫畫樹的(遞歸調用)

from turtle import Turtle           #引入turtle庫

def tree(plist,l,a,f):              
'''參數解釋:
    plist:存放下一層樹枝的父元素
    l:每一次前進的長度
    a:下一次前進需要轉的角度
    f:下一層的枝長與上一層枝長的比值
'''
    if l>5:                         #這個遞歸的基例就是l<=5
        lst=[]                      #存放子樹枝的父元素的列表
        for p in plist:             #根據列表中父元素的個數來爲樹枝分多少叉
            p.forward(l)            
            q=p.clone()             #複製出一個樹幹
            p.left(a)               #原樹幹左轉
            q.right(a)              #複製樹幹右轉
            lst.append(p)           #將原樹幹元素添加到lst列表
            lst.append(q)           #將複製樹幹元素也添加到lst列表
        tree(lst,l*f,a,f)           #遞歸調用tree(下一層長度比上一層長度短)

def maketree(x,y):                  #畫出一顆完整的樹並確定樹的位置
    p=Turtle()
    p.color("green")
    p.pensize(5)
    p.hideturtle()                 #隱藏烏龜圖標
    p.speed(6)                     #設置烏龜的速度(0.5-10範圍外的爲0速度最快)
    p.left(90)                     #將方向轉爲垂直方向

    p.penup()                      #提起畫筆
    p.goto(x,y)                    #移動畫筆到指定位置
    p.pendown()                    #放下畫筆

    t=tree([p],100,65,0.634)       #調用畫樹函數 
    print(len(p.getscreen().turtles()))   

def main():
    #三顆不同位置的樹
    maketree(-200,-200)
    maketree(0,0)
    maketree(200,-200)
main()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章