我的Python學習之路(2)
阿新 • • 發佈:2021-01-11
此文轉載自:https://blog.csdn.net/Mr_BigG/article/details/112394166
今日所學內容
1.學習了海龜(turtle)庫的一些函式,掌握基本的線條繪製方法
2.根據視訊所學內容,繪製一條蟒蛇,逐句理解程式碼並寫出詳細的註釋,效果圖如下:
程式碼如下:
#PythonDraw.py
import turtle as t #引入海龜turtle繪相簿
t.setup(650, 350, 200, 200) #前兩個引數設定視窗的寬高,後兩個引數設定視窗左上角的位置
t.penup() #畫筆控制函式,抬起海龜(畫筆),不會在螢幕上留下軌跡,一般和pendown成對使用。可簡寫為t.pu()
t.fd(-250) #t.fd()是海龜的前進函式,引數為前進的畫素距離,與t.forward()等價
t.pendown() #可簡寫為t.pd()
t.pensize(25) #畫筆寬度,也就是海龜的腰圍,別名t.width()
t.pencolor("purple") #畫筆顏色函式,引數為顏色的字串或者是R,G,B值(小數)
t.seth(-40) #控制海龜的運動方向,與t.setheading()等價,引數為絕對角度。相對角度可以用t.left()或t.right(),引數為角度
for i in range(4): #range(N)產生0到N-1的整數序列,共N個。range(M, N)產生M到N-1的整數序列,共N-M個
t.circle(40, 80) #根據第一個引數為半徑繪製第二個引數角度的弧形,圓心在海歸左側半徑為第一個引數的位置
t.circle(-40, 80)
t.circle(40, 80 / 2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2 / 3)
t.done()
3.結合網上的相關例子,編寫一段送給女朋友的小程式(專屬程式設計師的浪漫,嘿嘿),效果圖如下:
程式碼如下:
#Love.py
#表白神器
import turtle as t
import time
#密碼部分
Str = t.textinput("給最愛的寶貝!", "小寶貝麼麼噠,這是豬豬給你的節日賀卡,需要輸入特定密碼才能開啟哦")
if (Str != '2020-07-27'):
Str = t.textinput( "抱歉", "密碼錯誤!溫馨提示:8位數字,再來一次吧!")
if (Str == '20200727'):
Str = t.textinput("233333", "寶貝最棒啦,數字對了哦,但是格式不正確,密碼格式為'XXXX-XX-XX'")
while (Str != '2020-07-27'):
Str = t.textinput("233333", "是我們在一起的日子呀,密碼格式為'XXXX-XX-XX'")
elif (Str != '2020-07-27'):
Str = t.textinput("抱歉", "是一個對我們很有意義的日子哦")
if (Str == '20200727'):
Str = t.textinput("233333", "寶貝最棒啦,數字對了哦,但是格式不正確,密碼格式為'XXXX-XX-XX'")
while (Str != '2020-07-27'):
Str = t.textinput("233333", "是我們在一起的日子呀,密碼格式為'XXXX-XX-XX'")
elif (Str != '2020-07-27'):
Str = t.textinput("抱歉", "最後一次提示哦,是我們的紀念日啊")
if (Str == '20200727'):
Str = t.textinput("233333", "寶貝最棒啦,數字對了哦,但是格式不正確,密碼格式為'XXXX-XX-XX'")
while (Str != '2020-07-27'):
Str = t.textinput("233333", "是我們在一起的日子呀,密碼格式為'XXXX-XX-XX'")
else:
while (Str != '2020-07-27'):
Str = t.textinput("233333", "是我們在一起的日子呀,密碼格式為'XXXX-XX-XX'")
#畫布的初始化
t.setup(800, 600)
time.sleep(3)
#上半部分的文字
t.hideturtle()
t.color("red")
t.penup()
t.goto(-300, 220)
loveWords1 = '當'
loveWords2 = ['送', '給', '小', '寶', '貝']
loveWords3 = ['每', '天', '都', '快', '樂', '!']
for i in range(4):
t.write(loveWords1, font = ("華文彩雲", 3 * i + 14, "bold"))
t.fd(20 + 3 * i)
time.sleep(1)
t.fd(8)
t.write("!", font = ("華文彩雲", 23, "bold"))
t.fd(20)
time.sleep(1)
for word in loveWords2:
t.write(word, font = ("華文彩雲", 26, "bold"))
t.fd(35)
time.sleep(1)
t.write(":", font = ("華文彩雲", 23, "bold"))
t.fd(35)
#大白部分
#腦袋
t.goto(-100, 150)
t.right(90)
t.color("black")
t.pensize(1)
t.pendown()
size = 0.6
a = 0.8 * size
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a += 0.2 * size
t.left(3)
t.fd(a)
else:
a -= 0.2 * size
t.left(3)
t.fd(a)
t.penup()
#眼睛
time.sleep(1)
t.goto(-70, 150)
t.dot(14)
time.sleep(1)
t.goto(-24, 150)
t.dot(14)
time.sleep(1)
t.right(60)
t.pendown()
t.speed(2)
t.circle(-50, 50)
#身體
t.penup()
t.goto(-89.85, 131.47)
t.left(65)
t.pendown()
t.circle(250, 60)
t.penup()
t.goto(-2.64, 133.09)
t.left(30)
t.pendown()
t.circle(-250, 60)
t.right(20)
t.circle(-134,110)
#腿
t.penup()
t.left(135)
t.goto(-120, -145)
t.pendown()
t.circle(120, 45)
t.left(15)
t.circle(42, 80)
t.left(50)
t.fd(70)
t.penup()
t.bk(70)
t.pendown()
t.right(130)
t.circle(42, 80)
t.left(15)
t.circle(115, 48)
t.penup()
#胳膊
t.goto(-125, 89)
t.pendown()
t.left(112)
t.circle(250, 50)
t.circle(50, 45)
t.circle(20, 80)
t.circle(50, 45)
t.circle(180, 16)
t.penup()
t.goto(31, 90)
t.pendown()
t.right(126)
t.circle(-250, 50)
t.circle(-50, 45)
t.circle(-20, 80)
t.circle(-50, 45)
t.circle(-180, 14)
#手
t.penup()
t.goto(-208, -90)
t.pendown()
t.left(150)
t.right(180)
t.circle(-30, 20)
t.penup()
t.goto(-208, -90)
t.right(160)
t.pendown()
t.circle(30, 40)
t.circle(5, 120)
t.circle(40, 40)
#玫瑰
t.penup()
t.goto(-270, 60)
t.pendown()
#玫瑰花的角度
t.right(60)
#玫瑰花的尺寸
size = 0.35
#玫瑰花的花瓣
t.fillcolor("red")
t.begin_fill()
t.circle(10 * size, 180)
t.circle(25 * size, 110)
t.left(50)
t.circle(60 * size, 45)
t.circle(20 * size, 170)
t.right(24)
t.fd(30 * size)
t.left(10)
t.circle(30 * size, 110)
t.fd(20 * size)
t.left(40)
t.circle(90 * size, 70)
t.circle(30 * size, 150)
t.right(30)
t.fd(15 * size)
t.circle(80 * size, 90)
t.left(15)
t.fd(45 * size)
t.right(165)
t.fd(20 * size)
t.left(155)
t.circle(150 * size, 80)
t.left(50)
t.circle(150 * size, 90)
t.end_fill()
# 花瓣1
t.left(150)
t.circle(-90*size, 70)
t.left(20)
t.circle(75*size, 105)
t.seth(80)
t.circle(80*size, 98)
t.circle(-90*size, 40)
# 花瓣2
t.left(180)
t.circle(90 * size, 40)
t.circle(-80 * size, 98)
t.seth(-63.5)
# 葉子1
t.fd(30 * size)
t.left(90)
t.fd(25 * size)
t.left(45)
t.fillcolor("green")
t.begin_fill()
t.circle(-80 * size, 90)
t.right(90)
t.circle(-80 * size, 90)
t.end_fill()
t.right(135)
t.fd(60 * size)
t.left(180)
t.penup()
t.fd(85 * size)
t.pendown()
t.left(90)
t.fd(80 * size)
# 葉子2
t.right(90)
t.right(45)
t.fillcolor("green")
t.begin_fill()
t.circle(80 * size, 90)
t.left(90)
t.circle(80 * size, 90)
t.end_fill()
t.left(135)
t.fd(60 * size)
t.left(180)
t.fd(60 * size)
t.right(90)
t.circle(-1000 * size, 8.6)
t.penup()
t.goto(-200, -110)
t.pendown()
t.circle(-1000 * size, 10)
#文字
t.penup()
t.color("red")
t.goto(30, 220)
t.seth(0)
for word in loveWords3:
t.write(word, font=("華文彩雲", 26, "bold"))
t.fd(35)
time.sleep(1)
t.done()
注:本文是博主本人學習的日常記錄,不進行任何商用所以不支援轉載請理解!(大白的例子如有侵權請聯絡博主刪除)如果你也對Python有一定的興趣和理解,歡迎隨時找博主交流~