今天出差淮安,白天对接工作,梳理沟通过程中存在的问题,避免以后再发生。
随后简单健身运动,拉伸后晚餐,回宾馆后学习编程,做慕课南京邮电大学开设的python程序设计第四周-神奇的小海龟,因为turtle初学不难,就是一些基本操作,但是如果想绘制一些图形,需要结合循环、函数、序列等知识,然而我循环并没有完全熟练操作,如果把一个内容放入循环可能会出错。
其中两道题做完后很有收获,自己练习太少没有编程的“感觉”,以后无所事事的话不妨玩玩编程,提升脑力。
题目1:
提示用户从键盘上输入一个正整数n,使用小海龟在屏幕上输出一个任意大小和任意颜色填充的正n边形。
import turtle,random
#任意形状图形的半径在50-100区间随机取得
r=random.randint(50,100)
n=int(input("请输入一个正整数:"))
#控制绘制速读,之前产生错误,没检查出来因为绘制速读太快了
turtle.speed(1)
turtle.color("black","red")
turtle.begin_fill()
for i in range(n):
#使用内角公式,之前出错在于没有取补角
turtle.right(180-(n-2)/n*180)
turtle.fd(r)
turtle.end_fill()
turtle.done()
自己开始没有发现问题,后来控制绘制速读后查出来是角度问题,最终源头还是数学问题了,我需要提升自己的数学思维,然后转换成计算机思维。
题目2:使用小海龟,在屏幕上绘制一系列的同心圆,并未这些同心圆填充上不同的颜色。
import turtle,random
n=eval(input("请输入绘制的同心圆的个数:"))
#为了简化,假设最小圆半径是20
r=20
turtle.pensize(2)
turtle.speed(1)
pencolor=["blue","red","pink","green","yellow"]
fillcolor=["blue","red","pink","green","yellow"]
turtle.begin_fill()
for i in range(n):
turtle.pencolor(random.choice(pencolor))
turtle.fillcolor(random.choice(fillcolor))
turtle.penup()
#turtle.begin_fill()
turtle.goto(0,-r*(i+1))
turtle.pendown()
turtle.circle(r+i*r,360)
#turtle.end_fill()
turtle.end_fill()
turtle.done()
目前存在问题:绘制的同心圆颜色覆盖如何解决?
之前尝试运行for循环我加上注释的两行,发现颜色被覆盖了,可能自己对于颜色填充的掌握程度不够,目前还是改为在循环之外只填充一种颜色。
今天才发现简书也有markdown功能,之前在typora上使用但是是本地没有联网功能,不方便后续回顾。
看来很多软件的很多功能自己并不知道,知识面太窄了,多读书吧,加油,少年!
网友评论