我们前面已经介绍学习Turtle库的基本绘图方法,现在我们来绘制一个正方形。
正方形
首先分析,正方形有4条边,内角为90°,即每次左转或右转90°,执行4次
import turtle as t
t.bgcolor("black") # 背景颜色
t.pencolor('red') # 画笔颜色
t.width(5) # 画笔宽度
for x in range(4): # 循环重复4次
t.fd(100) # 边长100像素
t.lt(90) # 左转90°
for x in range(4):
代表程序要重复4次,因为我们正方形有4个边。
正五边形
首先分析,正五边形有5条边,内角我们要计算,180° - 360/5 = 108°,左转或右转的角度为360/5 = 72°
import turtle as t
t.bgcolor("black") # 背景颜色
t.pencolor('red') # 画笔颜色
t.width(5) # 画笔宽度
for x in range(5): # 循环重复5次
t.fd(100) # 边长100像素
t.lt(72) # 左转72°
假如我们要绘制6角形,8边形,12边形,那每次都要去计算左转的角度,还要输入重复的次数,是不是很麻烦?
这时候我们就需要引入一个表示多边形边长的变量,每次需要绘制几边形,只需要需改变量的值就可以了,选择的角度我们使用turtle.left(360/边长),这样是不是就会很方便。
绘制8边形
import turtle as t
t.bgcolor("black") # 背景颜色
t.pencolor('red') # 画笔颜色
t.width(5) # 画笔宽度
sides = 8 # 多边形的边数
for x in range(sides): # 循环重复次数
t.fd(100) # 边长100像素
t.lt(360/sides) # 左转角度
如果我们想要绘制10边形,只需要改变变量sides的值即可,即sides = 10
当然,想要绘制任意边的图形,都只需要修改变量sides
的值就可以了。因为重复次数for x in range(sides):
使用了这个变量,选择角度调用了这个变量名,会根据边数的改变而改变。
变量——保存内容的地方
变量是用来存储数据的,是我们希望在程序运行的时候计算机能够记住的内容,比如我们定义了变量sides=6,Python就会记住这个变量,此时sides就代表数字6,会存放到内存中。程序在运行到t.lt(360/sides)的时候,就会把sides替换成6,然后计算出360/6=60。当sides=5时,就会计算出360/5=72。
Python可以记住几种类型的值,包括数字(例如6,10,甚至99.9)和字符串(字母、符号、单词、句子或者我们在键盘上输入的任何内容都可以)
如何给变量赋值
赋值就是将某一数值赋给某个变量的过程,我们使用等号(=)
来给一个变量赋值。像sides=6
,计算机会记住这个内容,当我们下次使用sides这个变量的时候,会返回一个数字6给我们。
我们还可以使用等号(=)
将键盘字符的一个字符串赋值给一个变量,但是要使用单引号(')
或者双引号(")
将字符串括起来。
name = 'Json'
或者name = "小明"
我们将'Json'
分配给了变量name
,引号代表这是一个字符串,数字就不需要引号。
这里的name
和sides
都是变量名,在等号(=)
的右边是值,我们想要在程序中使用这个值,只需要调用变量名就可以,变量名是唯一的。
如何给我们的变量取一个名字呢
变量名必须是以字母开头
变量名中剩下的部分可以是字母、数字、下划线(-)
_name,12name | 错误,开头必须是字母 |
---|---|
my name | 错误,不允许出现空格 |
变量是如何保存到内存中的
有一个空的储物柜,现在给你一个苹果,要放到储物柜里面。首先你会选一个位置(第几行第几列)来放置这个苹果,假如放到第3行第3列,放置好了之后,为了下次查找方便,我给放了苹果的这个位置贴了一个标签a,看到这个a我就知道这里面放的是苹果。
这里标签a就是一个变量,苹果是值,储物柜就是内存,苹果放置的位置就是在内存中为这个值开辟出一个位置,第3行第3列在计算机中代表内存地址。
a = '苹果'
我们先看等号(=)
的右边,这时会在内存中预留一个位置,相当于一个空盒子,用来存放“苹果”,然后等号(=)
左边,相当于一个标签,贴到这个盒子上,2242320383120
就是内存地址,相当于第3行第3列。
a = '苹果'
print(a)
print(id(a))
print()
函数是输出,将变量a
所指向的值打印出来。id()
函数可以查看变量中保存数据所在的内存地址。
my_name = '蜗牛'
my_age = 20
your_name = input("你叫什么名字?")
your_age = input("你几岁了?")
print("我的名字是:",my_name,",我的年龄是:",my_age)
print("你的名字是:",your_name,",你的年龄是:",your_age)
我们首先定义了两个变量my_name
和my_age
,并让计算机记住他们的值。还有两个变量your_name
和your_age
,在我们输入了姓名和年龄之后,就会把值赋给这两个变量。
input()是输入函数,在程序运行的过程中,输入到程序中的信息,然后分别保存到变量your_name
和your_age
中。圆括号中的内容要用引号括起来input("你几岁了?")
。
实例
import turtle as t
t.bgcolor('black')
colors = ['red','yellow','purple','orange','green','blue'] #颜色列表
sides = 6 #边长,是一个变量
for x in range(360):
t.pencolor(colors[x%sides]) #画笔颜色,从colors列表中选择
t.fd(x*3/sides + x)
t.lt(360/sides + 1)
t.width(x*sides/200) #设置画笔的宽度
我们定义了一个变量sides
,赋值为6
。for
循环中的x也是一个变量,值从0-360
。
假如我们修改变量sides
的值,sides=2
import turtle as t
t.bgcolor('black')
colors = ['red','yellow','purple','orange','green','blue'] #颜色列表
sides = 2 #边长,是一个变量
for x in range(360):
t.pencolor(colors[x%sides]) #画笔颜色,从colors列表中选择
t.fd(x*3/sides + x)
t.lt(360/sides + 1)
t.width(x*sides/200) #设置画笔的宽度
你也可以尝试修改sides
,对比不同的值绘制的图形。
谢谢大家的关注,有不足的地方欢迎指正。
更多内容可以关注微信公众号【陪孩子一起学编程】