600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【python练习题5】六芒星阵+渐变同心圆+n的阶乘

【python练习题5】六芒星阵+渐变同心圆+n的阶乘

时间:2022-06-10 20:41:58

相关推荐

【python练习题5】六芒星阵+渐变同心圆+n的阶乘

一、渐变同心圆

利用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))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。