一、渐变同心圆
利用turtl进行绘制如下图的同心标靶图,颜色有变比。要求利用函数方式,自定定义一个函数mycircle(x,y,r,cr,cg,cb),其中x,y为绘制圆形的圆心,r为半径,cr,cg,cb为圆形填充的RGB颜色值(0-255),利用这个自定义函数绘制同心圆,如下图所示。
import turtledef mycircle(x,y,r,cr,cg,cb):turtle.goto(x,y)for i in range(0, 9):turtle.fillcolor(cr-i*24,cg-i*20,cb+i*20)turtle.begin_fill()turtle.circle(r-(i*10))turtle.penup()turtle.left(90)turtle.fd(10)turtle.right(90)turtle.pendown()turtle.end_fill()#color = list()#color = ['pink','yellow','brown','orange','yellow','blue','red','purple','gold']turtle.setup(600,600,200,200)turtle.penup()turtle.pendown()turtle.pensize(1)turtle.colormode(255)turtle.pencolor(0,0,0)mycircle(0,0,90,255,255,0)turtle.done()
注:
1、图一和图二是一个思路,但是颜色不同,想呈现第一个就建立一个列表然后里面添加一系列的颜色数据。
2、turtle库
需要说的是penup后一定要pendown才能forword或者后退
对区域进行颜色填充我们需要将turtle.fillcolor()写好,然后先写turtle.begin_fill(),接着是海龟轨迹,其次是turtle.end_fill(),然后完成颜色填充
二、六芒星阵
(1)由键盘输入等边三角形的边长值,根据边长值绘制六角星
(2)给六角星进行颜色填充
import turtledef fun(n):turtle.setup(900,900,200,200)turtle.penup()turtle.goto(0,0)turtle.pendown()turtle.fillcolor("yellow")turtle.begin_fill()turtle.left(60)turtle.fd(n)turtle.left(120)turtle.fd(n)turtle.left(120)turtle.fd(n)turtle.end_fill()turtle.begin_fill()turtle.left(180)turtle.fd(2*n)turtle.left(120)turtle.fd(n)turtle.left(120)turtle.fd(n)turtle.end_fill()turtle.begin_fill()turtle.left(120)turtle.fd(2*n)turtle.right(120)turtle.fd(n)turtle.right(120)turtle.fd(n)turtle.end_fill()turtle.begin_fill()turtle.right(180)turtle.fd(2*n)turtle.right(120)turtle.fd(n)turtle.right(120)turtle.fd(n)turtle.end_fill()turtle.begin_fill()turtle.right(180)turtle.fd(2*n)turtle.right(120)turtle.fd(n)turtle.right(120)turtle.fd(n)turtle.end_fill()turtle.begin_fill()turtle.right(180)turtle.fd(2*n)turtle.right(120)turtle.fd(n)turtle.right(120)turtle.fd(n)turtle.end_fill()#m = int(input())fun(100)turtle.done()
想了很久如何使用循环去省略这么长的代码,最后小编还是妥协了,如果有哪位大佬由更好的办法,麻烦帮忙优化一下。
三、n的阶乘
编写函数fac(n),用递归法求出n的阶乘.在程序中使用此函数,将输入的整数n的阶乘求出并输出到控制台.控制台输入整数n,控制台输出n!
例子输入5反馈120,公式:5! = 120
def fac(n):if n <= 1:result = 1else:result = n * fac(n - 1)return resultm = int(input())print(fac(m))