16个python实例解析
- 实例1: 温度转换
- 实例2: Python蟒蛇绘制
- 实例3: 天天向上的力量
- 实例4: 文本进度条
- 实例5:身体质量指数BMI
- 实例6: 圆周率的计算
- 实例7: 七段数码管绘制
- 实例8: 科赫雪花小包裹
- 实例9: 基本统计值计算
- 实例10: 文本词频统计
- 实例11: 自动轨迹绘制
- 实例12: 政府工作报告词云
- 实例13: 体育竞技分析
- 实例14: 第三方库安装脚本
- 实例15: 霍兰德人格分析雷达图
- 实例16: 玫瑰花绘制
前排提示:
**在pycharm中可用
Screen().setup(650, 350, 200, 200)
替换setup(650, 350, 200, 200)**
来源:https://blog.csdn.net/rong11417/article/details/104002872
1.温度转化实例
#TempConvert.py
val=input("请输入带温度表示符号的温度值(例如:32C):")
if val[-1] in ['C','c']:
f = 1.8*float(val[0:-1])+32
print("转换后的温度为:%.2fF"%f)
elif val[-1] in ['F','f']:
c = (float(val[0:-1])-32)/1.8
print("转换后的温度为:%.2fC"%c)
else:
print("输入有误")
2.画蛇~
import turtle
def drawSnake(rad,angle,len,neckrad):
for i in range(len):
turtle.circle(rad,angle)
turtle.circle(-rad,angle)
turtle.circle(rad,angle/2)
turtle.fd(rad)
turtle.circle(neckrad+1,180)
turtle.fd(rad*2/3)
def main():
turtle.setup(1300,800,0,0)
pythonsize=30
turtle.pensize(pythonsize)
turtle.pencolor("pink")
turtle.seth(-40)
drawSnake(40,80,5,pythonsize/2)
main()
'''
Turtle的turtle.setup()函数用于启动一个图形窗口,它有四个参数
turtle.setup(width,height,startx,starty)
分别是:启动窗口的宽度,高度,表示窗口启动时窗口左上角在屏幕中的坐标位置
(显示屏幕也是坐标系,左上角为原点,向左和向下分别是x轴和y轴)
'''
#turtle.pensize()函数表示小乌龟运动轨迹的宽度,包含一个参数。
#turtle.pencolor()函数表示小乌龟运动轨迹的颜色,包含一个输入参数。(RGB方式)
#turtle.seth(angle)表示小乌龟启动时运动的方向,它表示一个输入参数,角度值。
3.天天向上的力量
#DayDayUpQ1.py
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
#DayDayUpQ2.py
dayfactor=0.01
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
#DayDayUpQ3.py
dayup=1.0
dayfactor=0.01
for i in range(365):
if i % 7 in[6,0]:
dayup=dayup*(1-dayfactor)
else:
dayup=dayup*(1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
#DayDayUpQ4.py
def dayUP(df):
dayup=1
for i in range(365):
if i % 7 in[6,0]:
dayup=dayup*(1-0.01)
else:
dayup=dayup*(1+df)
return dayup
dayfactor=0.01
while dayUP(dayfactor)<37.78:
dayfactor+=0.001
print("工作日的努力参数是:{:.3f}".format(dayfactor))
获取星期字符串
#WeekNamePrintV2.py
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekId-1])
4.文本进度条
#TextProBarV2.py
import time
scale=50
print("执行开始".center(scale//2,"-"))
# " / "就表示 浮点数除法,返回浮点结果;" // "表示整数除法。
start=time.perf_counter()
for i in range(scale+1):
a='*'*i #*个数
b='.'*(scale-i) #.个数
c=(i/scale)*100 #百分之几
dur=time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,"-"))
5.身体质量指数BMI
BMI:Body Mass Index
BMI = 体重 (kg) / 身高2 (m2)
#CalBMIv3.py
height,weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]:"))
bmi = weight/pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))
who,nat="",""
if bmi<18.5:
who,nat="偏瘦","偏瘦"
elif 18.5<=bmi<24:
who,nat="正常","正常"
elif 24<=bmi<25:
who,nat="正常","偏胖"
elif 25<=bmi<28:
who,nat="偏胖","偏胖"
elif 28<=bmi<30:
who,nat="偏胖","肥胖"
else:
who,nat="肥胖","肥胖"
print("BMI指标为:国际'{0}',国内'{1}'".format(who,nat))
6.圆周率的计算(蒙特卡罗方法)
#CalPiV2.py
from random import random
from time import perf_counter
DARTS=1000*1000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
x,y=random(),random()
dist=pow(x**2+y**2,0.5)
if dist<=1.0:
hits=hits+1
pi=4*(hits/DARTS)
end=perf_counter()
time=end - start
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(time))
7.小心脏和七段数码管的绘制
#HeartDraw.py
#填充
import turtle
turtle.speed(5)
turtle.setup(1440,900,200,200)
turtle.pensize(16)
turtle.color('red','red')
# color('red','blue')
# 颜色(‘画笔色’,‘填充色’)
turtle.begin_fill()
turtle.penup()
turtle.seth(90)
turtle.fd(300)
turtle.pendown()
turtle.seth(-90)
turtle.seth(45)
turtle.circle(-200,180)
turtle.fd(400)
turtle.right(90)
turtle.fd(400)
turtle.circle(-200,180)
turtle.end_fill()
turtle.done()
#七段数码管绘制V2.py
#年月日
import turtle,time
def drawGap(): #绘制数码管间隔
turtle.penup()
turtle.fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.right(90)
def drawDigit(digit):#根据数字绘制七段数码管
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date): #data为日期,格式为'%Y-%m=%d+'
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write('年',font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write('月',font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i == '+':
turtle.write('日',font=("Arial",18,"normal"))
else:
drawDigit(eval(i))
def main():
turtle.speed(10)
turtle.penup()
turtle.fd(-350)
turtle.pensize(5)
drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
turtle.hideturtle()
turtle.done()
main()
#七段数码管绘制+心脏V3.py
#优化为北京时间而非UTC时间
#心脏非填充
#年月日时分秒
import turtle,time
from datetime import datetime, timedelta
def drawGap(): #绘制数码管间隔
turtle.penup()
turtle.fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(30)
drawGap()
turtle.right(90)
def drawDigit(digit):#根据数字绘制七段数码管
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date): #data为日期,格式为'%Y-%m=%d+'
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write('年',font=("Arial",18,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i == '=':
turtle.write('月',font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i == '+':
turtle.write('日',font=("Arial",18,"normal"))
else:
drawDigit(eval(i))
def drawTime(time):#time为时间,格式为'%H-%M=%S+'
turtle.pencolor("purple")
for i in time:
if i == '-':
turtle.write('时',font=("Arial",18,"normal"))
turtle.pencolor("purple")
turtle.fd(40)
elif i == '=':
turtle.write('分',font=("Arial",18,"normal"))
turtle.fd(40)
elif i == '+':
turtle.write('秒',font=("Arial",18,"normal"))
else:
drawDigit(eval(i))
#HeartDraw.py
def HeartDraw():
turtle.setup(1440,900,200,200)
turtle.pensize(16)
turtle.color('red','red')
# color('red','blue')
# 颜色(‘画笔色’,‘填充色’)
turtle.penup()
turtle.seth(90)
turtle.fd(300)
turtle.pendown()
turtle.seth(-90)
turtle.seth(45)
turtle.circle(-200,180)
turtle.fd(400)
turtle.right(90)
turtle.fd(400)
turtle.circle(-200,180)
def main():
turtle.speed(5)
HeartDraw()
turtle.speed(0.1)
turtle.left(45)
turtle.right(90)
turtle.up()
turtle.fd(200)
turtle.down()
turtle.left(90)
turtle.penup()
turtle.fd(-270)
turtle.pensize(5)
drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
turtle.penup()
turtle.seth(-90)
turtle.fd(100)
turtle.seth(-180)
turtle.fd(500)
turtle.seth(0)
turtle.down()
now_time = datetime.now()
utc_time = now_time - timedelta(hours=8) # UTC只是比北京时间提前了8个小时
utc_time = utc_time.strftime("%H-%M-%S+")
now_time = now_time.strftime("%H-%M-%S+")
drawTime(now_time)
turtle.hideturtle()
turtle.done()
main()
实例8: 科赫雪花小包裹
#科赫曲线.py
import turtle as t
def koch(size,n):
if n==0:
t.fd(size)
else:
for angle in [0, 60, -120, 60]:
t.left(angle)
koch(size/3,n-1)
def main():
t.setup(800,400)
t.penup()
t.goto(-300,-50)
t.pendown()
t.pensize(2)
koch(600,3)
t.hideturtle() #3阶科赫曲线,阶数
main()
#多阶科赫.py
#KochDrawV1.py
import turtle as t
def koch(size,n):
if n==0:
t.fd(size)
else:
for angle in [0,60,-120,60]:
t.left(angle)
koch(size/3,n-1)
def main():
t.delay(0)
t.setup(800,400)
t.penup()
t.goto(-200,100)
t.pendown()
t.pensize(2)
level=3
koch(400,level) #3阶科赫曲线,阶数
t.right(120)
koch(400,level)
t.right(120)
koch(400,level)
t.hideturtle()
t.done()
main()
实例9: 基本统计值计算
#基本统计值计算CalStatisticsV1.py
def getNum():
nums=[]
iNumStr=input("请输入数字(回车退出):")
while iNumStr !="":
nums.append(eval(iNumStr))
iNumStr=input("请输入数字(回车退出):")
return nums
#计算平均值
def mean(numbers):
s=0.0
for num in numbers:
s=s+num
return s/len(numbers)
#计算方差
def dev(numbers,mean):
sdev=0.0
for num in numbers:
sdev=sdev+(num-mean)**2
return pow(sdev/(len(numbers)-1),0.5)
#计算中位数
def median(numbers):
sorted(numbers)
size=len(numbers)
if size%2==0:
med=(numbers[size//2-1]+numbers[size//2]/2)
else:
med=numbers[size//2]
return med
n=getNum()
m=mean(n)
print("平均值:{},方差:{:.2},中位数:{}.".format(m,dev(n,m),median(n)))
实例10: 文本词频统计
哈姆雷特
#CallHamletV1.py
def getText():
#打开文本文件
txt=open("hamlet.txt","r").read()
#文本全小写
txt=txt.lower()
#文本去噪及归一化(把符号之类的化成空格)
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_{|}·~‘’':
txt=txt.replace(ch," ")
return txt
#启动!
hamletTxt=getText()
#单词切片,变成列表
words=hamletTxt.split()
#定义空字典counts(有“键”有“值”)
counts={}
#通过这样2行的代码,逐一的遍历列表中的每一个元素,
#并用字典类型去记录每一个元素出现的次数。
for word in words:
#在字典的“键”挨个写上字典的每一个词,然后在对应的“值”上写上次数。
counts[word]=counts.get(word,0)+1
#将字典类型转变为列表类型便于操作
'''
字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组,
可以用于 for 来循环遍历。用法:dict.items()
'''
items=list(counts.items())
#用来指定列表中使用哪一个多元选项的列作为排序列,
#下列代码是指定键值对的第二个元素排序
#而默认的排序方法是从小到大,reverse设为True,那么返回的排序就是从大到小
items.sort(key=lambda x:x[1],reverse=True)
#至此,items中的第1个元素,就是出现单词次数最多的元素
#将其中的前10个出现最多的单词以及它对应的次数打印出来
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
三国演义
#CalThreeKingdomsV1.py
import jieba
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
excludes={"将军","却说","荆州","二人","不可","不能","如此","商议","如何","主公","左右","军马","引兵"}
words=jieba.lcut(txt)
counts={}
for word in words:
if len(word)==1:
continue
elif word =="诸葛亮"or word =="孔明曰":
rword="孔明"
elif word =="关公"or word =="云长":
rword="关羽"
elif word =="玄德"or word =="玄德曰":
rword="刘备"
elif word =="曹操"or word =="丞相":
rword="曹操"
else:
rword=word
counts[rword]=counts.get(rword,0)+1
for word in excludes:
del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
'''
def getText():
#打开文本文件
txt=open("hamlet.txt","r").read()
#文本全小写
txt=txt.lower()
#文本去噪及归一化(把符号之类的化成空格)
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_{|}·~‘’':
txt=txt.replace(ch," ")
return txt
#启动!
hamletTxt=getText()
#单词切片,变成列表
words=hamletTxt.split()
#定义空字典counts(有“键”有“值”)
counts={}
#通过这样2行的代码,逐一的遍历列表中的每一个元素,
#并用字典类型去记录每一个元素出现的次数。
for word in words:
#在字典的“键”挨个写上字典的每一个词,然后在对应的“值”上写上次数。
counts[word]=counts.get(word,0)+1
#将字典类型转变为列表类型便于操作
'''
'''
字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组,
可以用于 for 来循环遍历。用法:dict.items()
'''
'''
items=list(counts.items())
#用来指定列表中使用哪一个多元选项的列作为排序列,
#下列代码是指定键值对的第二个元素排序
#而默认的排序方法是从小到大,reverse设为True,那么返回的排序就是从大到小
items.sort(key=lambda x:x[1],reverse=True)
#至此,items中的第1个元素,就是出现单词次数最多的元素
#将其中的前10个出现最多的单词以及它对应的次数打印出来
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
'''
实例11: 自动轨迹绘制
#AutoTraceDraw.py
import turtle as t
t.title('自动轨迹绘制')
t.setup(800, 600, 0, 0)
t.pencolor("red")
t.pensize(5)
#数据读取
datals = []
f = open("data.txt")
for line in f:
line = line.replace("\n","")
datals.append(list(map(eval, line.split(","))))
f.close()
#自动绘制
for i in range(len(datals)):
t.pencolor(datals[i][3],datals[i][4],datals[i][5])
t.fd(datals[i][0])
if datals[i][1]:
t.right(datals[i][2])
else:
t.left(datals[i][2])
数据文件:
300,0,144,1,0,0
300,0,144,0,1,0
300,0,144,0,0,1
300,0,144,1,1,0
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,1,720,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,1,0,1
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
实例12: 政府工作报告词云
#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( font_path = "msyh.ttc",\
width = 1000, height = 700, background_color = "white", \
)
w.generate(txt)
w.to_file("grwordcloud.png")
#GovRptWordCloudv2.py
import jieba
import wordcloud
from imageio import imread
mask = imread("bitlogo.png")
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( font_path = "msyh.ttc", mask = mask\
width = 1000, height = 700, background_color = "white", \
)
w.generate(txt)
w.to_file("grwordcloud.png")
实例13: 体育竞技分析
# MatchAnalysis.py
'''
步骤1:打印程序的介绍性信息 printInof()
步骤2:获得程序运行参数:proA, proB, n getInputs()
步骤3:利用球员A和B的能力值,模拟n局比赛 simNGames()
步骤4:输出球员A和B获胜比赛的场次及概率 printSummary()
'''
from random import random
def main():
printInof()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
# description of this code
def printInof():
print("这个程序模拟两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(以0到1之间1的小数表示)")
# input
def getInputs():
a = eval(input("请输入选手A的能力值(0-1): "))
b = eval(input("请输入选手B的能力值(0-1): "))
n = eval(input("模拟比赛的场次: "))
return a, b, n
# output
def printSummary(winsA, winsB):
n = winsA + winsB
print("竞技分析开始,共模拟{}场比赛".format(n))
print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
# N games
def simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
# One game
def simOneGame(probA, probB):
scoreA, scoreB = 0, 0
serving = "A"
# judge if it's gameOver
while not gameOver(scoreA, scoreB):
if serving == "A":
if random() < probA:
scoreA += 1
else:
serving = "B"
else:
if random() < probB:
scoreB += 1
else:
serving = "A"
return scoreA, scoreB
# gameOver
def gameOver(a, b):
return a == 15 or b == 15
main()
实例14: 第三方库安装脚本
# BatchInstall.py
import os
libs = {"numpy", "matplotlib", "pillow", "sklearn", "requests",
"jieba", "beautifulsoup4", "wheel", "networkx", "sympy",
"pyinstaller", "django", "flask", "werobot", "pyqt5",
"pandas", "pyopengl", "pypdf2", "docopt", "pygame"}
try:
for lib in libs:
os.system("pip install " + lib)
print("Successful")
except:
print("Failed Somehow")
实例15: 霍兰德人格分析雷达图
(The below codes probably had an unexpected error.)
# HollandRadarDraw.py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
radar_labels = np.array(['研究型(I)', '艺术型(A)', '社会型(S)',
'企业型(E)', '常规型(C)', '现实型(R)'])
data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88],
[0.85, 0.35, 0.30, 0.40, 0.40, 0.30],
[0.43, 0.89, 0.30, 0.28, 0.22, 0.30],
[0.30, 0.25, 0.48, 0.85, 0.45, 0.40],
[0.20, 0.38, 0.87, 0.45, 0.32, 0.28],
[0.34, 0.31, 0.38, 0.40, 0.92, 0.28]]) # 数据值
data_labels = ('艺术家', '实验员', '工程师', '推销员', '社会工作者', '记事员')
angles = np.linspace(0, 2*np.pi, 6, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure(facecolor="white")
plt.subplot(111, polar=True)
plt.plot(angles, data, 'o-', linewidth=1, alpha=0.2)
plt.fill(angles, data, alpha=0.25)
plt.thetagrids(angles*180/np.pi, radar_labels, frac=1.2)
plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20)
legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1)
plt.setp(legend.get_texts(), fontsize='large')
plt.grid(True)
plt.savefig('holland_radar.jpg')
plt.show()
实例16: 玫瑰花绘制
# RoseDraw.py
import turtle as t
# 定义一个曲线绘制函数
def DegreeCurve(n, r, d=1):
for i in range(n):
t.left(d)
t.circle(r, abs(d))
# 初始位置设定
s = 0.2 # size
t.setup(450*5*s, 750*5*s)
t.pencolor("black")
t.fillcolor("red")
t.speed(100)
t.penup()
t.goto(0, 900*s)
t.pendown()
# 绘制花朵形状
t.begin_fill()
t.circle(200*s, 30)
DegreeCurve(60, 50*s)
t.circle(200*s, 30)
DegreeCurve(4, 100*s)
t.circle(200*s, 50)
DegreeCurve(50, 50*s)
t.circle(350*s, 65)
DegreeCurve(40, 70*s)
t.circle(150*s, 50)
DegreeCurve(20, 50*s, -1)
t.circle(400*s, 60)
DegreeCurve(18, 50*s)
t.fd(250*s)
t.right(150)
t.circle(-500*s, 12)
t.left(140)
t.circle(550*s, 110)
t.left(27)
t.circle(650*s, 100)
t.left(130)
t.circle(-300*s, 20)
t.right(123)
t.circle(220*s, 57)
t.end_fill()
# 绘制花枝形状
t.left(120)
t.fd(280*s)
t.left(115)
t.circle(300*s, 33)
t.left(180)
t.circle(-300*s, 33)
DegreeCurve(70, 225*s, -1)
t.circle(350*s, 104)
t.left(90)
t.circle(200*s, 105)
t.circle(-500*s, 63)
t.penup()
t.goto(170*s, -30*s)
t.pendown()
t.left(160)
DegreeCurve(20, 2500*s)
DegreeCurve(220, 250*s, -1)
# 绘制一个绿色叶子
t.fillcolor('green')
t.penup()
t.goto(670*s, -180*s)
t.pendown()
t.right(140)
t.begin_fill()
t.circle(300*s, 120)
t.left(60)
t.circle(300*s, 120)
t.end_fill()
t.penup()
t.goto(180*s, -550*s)
t.pendown()
t.right(85)
t.circle(600*s, 40)
# 绘制另一个绿色叶子
t.penup()
t.goto(-150*s, -1000*s)
t.pendown()
t.begin_fill()
t.rt(120)
t.circle(300*s, 115)
t.left(75)
t.circle(300*s, 100)
t.end_fill()
t.penup()
t.goto(430*s, -1070*s)
t.pendown()
t.right(30)
t.circle(-600*s, 35)
t.done()