Python学习第三天随笔
今天是学习Python的第二天 今天 Nick老师带我们学习使用turtle库进行画图,并通过大蟒蛇案例进行讲解,让我们进一步加深对Python的认识与学习。
课堂内容:
今天上课学的是通过turtle库进行图形的绘制,很有意思的一节课学习到了很多新内容。
课堂代码:
# 导入turtle模块库
import turtle
# 设置一块画布
turtle.setup(650,350,200,200)
#抬笔 将 笔定位到原点-250的位置然后落笔
turtle.penup()
turtle.fd(-250)
turtle.pendown()
# 设置画笔大小 画笔颜色
turtle.pensize(24)
turtle.pencolor("red")
# 更改画笔的方向 向下
turtle.seth(-40)
# 通过一个for循环画出蟒蛇的身子
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(60,80/2)
turtle.fd(40)
turtle.circle(30,180)
turtle.seth(-140)
turtle.fd(40)
turtle.done()
运行效果:
以下是课后作业:
课下作业
第一题:使用turtle库,绘制一个八边形
代码如下:
import turtle as t
# 先设置一个画布
t.setup(800,800)
t.pensize(8)
## 将画笔移动到画布的左上角
t.penup()
t.goto(-250,80)
t.pendown()
# 向下画一条直线
t.seth(-90)
t.fd(160)
# 向右下方45度画一条斜线
t.seth(-45)
t.fd(160)
# 向右画一条直线
t.seth(0)
t.fd(160)
# 向右上方画一条斜线
t.seth(45)
t.fd(160)
# 向上画一条直线
t.seth(90)
t.fd(160)
# 向左上方画一条斜线
t.seth(135)
t.fd(160)
# 向左画一条横线
t.seth(180)
t.fd(160)
# 向左下方画一条斜线
t.seth(225)
t.fd(160)
t.done()
运行结果:
第二题:使用turtle库,绘制一个八角图形。
代码如下:
import turtle as t
### 第二题使用turtle库,绘制一个八角图形
# 先设置一个画布
t.setup(800,800)
t.pensize(8)
## 将画笔移动到画布的左上角
t.penup()
t.goto(-250,-80)
t.pendown()
# 第一笔先画一条直线
t.fd(400)
# 调整方向向左上方135度 画一条斜线
t.seth(135)
t.fd(400)
# 调整方向向下画一条直线
t.seth(-90)
t.fd(400)
# 再次调整方向向右上角45度画一条斜线
t.seth(45)
t.fd(400)
# 向左画一条直线
t.seth(180)
t.fd(400)
# 向右下角45度画一条斜线
t.seth(-45)
t.fd(400)
# 向上画一条直线
t.seth(90)
t.fd(400)
# 向左下角 225度或者 -135度画一条斜线
t.seth(-135)
t.fd(400)
t.done()
运行效果如下:
第三题:简述import <模块名>
/from <模块名> import *
/import <模块名> as <新模块名>
三者的区别
1,import <模块名> :这种模块调用方法在使用模块中的方法时,需要带上模块名,例如使用turtle库的setup方法:turtle.setup(),相对比较麻烦,但是出错率小
2,from <模块名> import * :这种方法是直接导入模块库中所有的方法,在使用方法的时候无需再加 模块名进行调用,但是这种方法会出现冲突,因为我们在定义变量和方法的时候 会与模块库中的方法名起冲突
3,import <模块名> as <新模块名>:这种方法是将原有的模块库起一个新的名字,从而使我们在使用过程中更加简单方便,而且可以避免一些错误
第四题:设计程序,要求:循环打印数列`1,3,5,...,99
代码如下:
for i in range(1,100):
if i%2!=0:
print(i)
第五题:使用turtle库,绘制一个自己喜欢的图形,并截图发到微信群中,别告诉我你喜欢一条直线(/哭笑)
代码如下:
import turtle as t
import random
t.setup(800,800)
t.pensize(5)
t.colormode(255)
for i in range(10,160):
if i%10==0:
t.seth(90)
t.pencolor(random.randint(0,255),random.randint(0,255),random.randint(0,255))
t.circle(i, 360)
t.seth(180)
t.pencolor(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
t.circle(i, 360)
t.seth(270)
t.pencolor(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
t.circle(i,360)
t.seth(0)
t.pencolor(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
t.circle(i, 360)
t.done()
运行效果如下:
总结
今天学会了通过turtle绘制简单的图像,也学会了如何使用简单的使用for循环,在python中的for循环和其他语言是不一样的,相对而言更加简洁,方便。今天也是收获满满的一天呢!