1.方法一:
代碼:

#python3.8 #xuguojun #2020.1.30 #導出模塊 import turtle as t import random as r #定義畫雪 def drawsnow(): t.ht() #隱藏筆頭,ht=hideturtle t.pensize(2) #定義筆頭大小 for i in range(50): #50,其實畫49朵雪花 t.pencolor("white") #定義畫筆顏色為白色,其實就是雪花為白色 t.pu() #提筆,pu=penup t.setx(r.randint(-350,350)) #定義x坐標,隨機從-350到350之間選擇 t.sety(r.randint(1,350)) #定義y坐標,注意雪花一般在地上不會落下,所以定義是從1開始 t.pd() #落筆,pd=pendown dens = 6 #雪花瓣數設為6 snowsize = r.randint(2,12) #定義雪花大小 for j in range(dens): #就是6,那就是畫5次,也就是一個雪花五角星 #t.forward(int(snowsize)) #int()取整數 t.fd(int(snowsize)) t.backward(int(snowsize)) #t.bd(int(snowsize)) #注意沒有bd=backward,但有fd=forward,小bug t.right(int(360/dens)) #轉動角度 #畫地面線: def drawgroud(): t.ht() #隱藏畫筆,t.hideturtle() for i in range(r.randint(10,15)): #隨機畫幾條地面線,但在10和15之間 #for i in range(10): #每次操作只畫10條地面線 x=r.randint(-400,350) y=r.randint(-280,-1) t.pencolor("white") t.pu() #提筆pu=penup t.goto(x,y) #去這個坐標 t.pd() #落筆pd=pendown t.fd(r.randint(40,100)) #fd=forward向前畫大小,隨機從40~100選 t.setup(800,600,200,200)#窗口大小和位置 t.tracer(True) #雪花和背景繪制的過程,true=就是慢慢看它畫雪 t.bgcolor("lightpink") #lightpink=輕粉色,天藍色lightblue=#B0E0E6 t.speed(0.1) #畫筆的速度 drawsnow() #執行畫雪 drawgroud() #執行畫地面線 t.done() #完成
效果圖:
2.方法二:
代碼:

#python3.8 #xuguojun #2020.1.30 #導出模塊,這樣導出比代碼較簡潔,但是注意r和后面RGB的r,所以我改為d代替R(r) import turtle as t import random as r #繪制雪花 s=30 #定義30個 def snow(s): t.ht() #ht=hideturtle,隱藏畫筆和軌跡 t.speed(500) #設置畫筆的速度,快 t.pensize(2) #設置筆頭大小 for i in range(s): d = r.random() #隨機定義顏色 g = r.random() b = r.random() t.pencolor(d, g, b) #隨機顏色定義,畫筆的顏色,注意這里本來是rgb,但是r定義過random,所以用d代替 t.pu() #pu=penup,提筆 t.goto(r.randint(-350, 350), r.randint(1, 270)) #坐標和x和y值隨機取值及范圍 t.pd() #pd=pendown,落筆 dens = r.randint(8, 12) #隨機定義雪花的花瓣數 snowsize = r.randint(10, 14) #隨機定義雪花的大小 for _ in range(dens): t.forward(snowsize) # 向當前畫筆方向移動snowsize像素長度 t.backward(snowsize) # 向當前畫筆相反方向移動snowsize像素長度 t.right(360 / dens) # 順時針移動360 / dens度 #繪制地面線 g=50 #定義50條 def ground(g): t.ht() #ht=hideturtle,隱藏畫筆和軌跡 t.speed(500) #畫筆的速度 for i in range(g): t.pensize(r.randint(5, 10)) #隨機畫筆大小,從5~10選 x = r.randint(-400, 350) #x坐標軸的隨機從-400到350選 y = r.randint(-280, -1) d = -y / 280 #注意這里的r要該d g = -y / 280 #定義隨機數dgb,與y隨機數掛鈎 b = -y / 280 t.pencolor(d, g, b) #定義顏色,r改為d,因為r在模塊導出時定義random的 t.penup() #pu=penup,提筆 t.goto(x, y) # 讓畫筆移動到此位置 t.pendown() # pd=pendown,落筆 t.forward(r.randint(40, 100)) # 眼當前畫筆方向向前移動40~100距離,fd=forward #-----熟悉以下2中方法,啟動畫畫------ # 方法一:主函數法 def main(): t.setup(800, 600, 500, 0) #窗口大小和位置,x=500,y=0,代表坐標 t.bgcolor("black") #背景顏色為黑色 snow(s) #代表數量 ground(g) #代表數量 t.mainloop() #循環掛起 main() #方法二 簡潔法 #將方法一,注釋掉,去掉下面的注釋,啟動方法二,即可 ''' t.setup(800, 600, 500, 0) #窗口大小和位置,x=500,y=0,代表坐標 t.bgcolor("black") #背景顏色為黑色 snow(s) #代表數量 ground(g) #代表數量 t.done() #如果沒有這個,結束后自動關閉窗口,有了,就不關閉。 '''
效果圖: