Python代码编程基础第06课 旋转阶梯

知识要点

  1. 列表
  2. 访问列表元素
  3. 取模运算符
  4. for循环与range()函数

一、PPT课件

二、知识要点

1.列表(list)

列表(list)像一个容器,可以用来存储各种各样的数据,这些数据就是列表元素。

注意:

  • 包裹住列表元素的符号是方括号,不是小括号也不是花括号;

  • 列表元素之间用逗号隔开。

    listone = [‘red’ , ‘yellow’ , ‘green’] # 列表listone存储的数据都是字符串

    listtwo = [2 , ‘hello’ , 4.0] # 列表listtwo存储不同类型的数据

2.访问列表元素

列表中元素是有顺序的,我们可以按照索引去访问某个列表元素。

注意:

  • 访问列表元素的方法为::列表名[ 索引值 ],这里也是中括号。

  • 索引值从0开始,即列表里第一个元素的索引值是0,第二个元素的索引值是1,以此类推。

    listone = [‘red’ , ‘yellow’ , ‘green’ , ‘blue’]

    print(listone[0]) # 获得索引值是0的列表元素,打印出’red’

    print(listone[2]) # 获得索引值是0的列表元素,打印出’green’

3.% : 取模运算符

a % b : 得到 a 除以 b 的余数, 如 10 % 3 的结果是1

1
2
3
4
5
6
7
colors = ['red' , 'yellow' , 'blue' , 'purple']

i = 0

while i < 80:
print(colors[i%4])
i = i + 1

4.for循环与range()函数

Python中的循环语句除了while循环之外,还有for循环。

for循环可以很方便地遍历列表或字符串。

range()函数:可以在python里生成一定范围的整数序列。比如:

range(6),生成包含从0到5的六个整数的序列。

range(1, 6),生成包括从1到5的五个整数的序列,不包括6。

for 循环结合 range() 函数可以实现遍历数字序列。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 使用while循环
# 生成的序列包括:1、2、3、4这四个数。
i = 0
while i < 4:
print('这是第' + str(i + 1) + '个数')
i = i + 1

# 使用for循环
# range(4)生成的序列包括:1、2、3、4这四个数。
for i in range(4):
print('这是第' + str(i + 1) + '个数')

# 使用for循环
# range(1,5)生成的序列包括:1、2、3、4这四个数。
for i in range(4):
print('这是第' + str(i) + '个数')

使用range()函数生成指定开始数字和增量的数字序列

有时候你不希望数字序列从1开始、或者序列里的数字间隔不是1,那么可以用range(a, b, c) 生成指定开始数字和增量的数字序列:以 a 开始,增量为 c, 到 b 停止(不包括 b)。

1
2
3
4
5
6
7
# 打印结果为:0、2、4、6
for i in range(0 , 8 , 2):
print(i)

# 打印结果为:0、3、6
for i in range(0 , 8 , 3):
print(i)

5.for循环 VS while循环

  • 所有的for循环都可以写成while循环

  • for 循环写起来比while循环更简单,但是只适用于知道具体循环次数的情况。

三、代码示例

1.case

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding: utf-8 -*-
# 旋转阶梯参考代码

import turtle

turtle.speed(3)

turtle.pensize(1)
colors = ["red", "yellow", "blue", "purple"]

start = input('输入初始值:')
end = input('输入结束值:')
gap = input('输入间隔值:')

start = int(start)
end = int(end)
gap = int(gap)


def drawPic(a, b, c):
for j in range(a, b, c):
turtle.color(colors[j % 4])
turtle.forward(30 + 5 * j)
turtle.left(91)
turtle.pensize(1 + j // 5) # '/'表示浮点数除法,返回浮点结果;'//'表示整数除法,返回整数结果。
j = j + 1
print(j)


drawPic(start, end, gap)

turtle.done()

2.homework

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# -*- coding: utf-8 -*-
# 作业参考代码
import turtle

colors = ['red', 'green', 'blue', 'yellow']


def drawSquare(x, y, color):
turtle.pu()
turtle.goto(x, y)
turtle.pd()
turtle.fillcolor(color)
turtle.begin_fill()
for i in range(4):
turtle.forward(30)
turtle.right(90)
turtle.end_fill()


for i in range(12):
drawSquare(-300 + 50 * i, 0, colors[i % 4])

turtle.done()

3.plus

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# -*- coding: utf-8 -*-
# P206的拓展:这是一幅神奇的图,运行程序发现最开始出现的图案和课堂上的旋转阶梯很像,但是随着循环次数的增大,绘制出图案变成了一个彩色螺旋!

import turtle

turtle.speed(60)
colors = ['red', 'purple', 'blue', 'green', 'yellow', 'orange']
for i in range(500000):
turtle.pensize(i / 10 + 1)
turtle.forward(i)
turtle.left(63)
turtle.pencolor(colors[i % 6])

turtle.done()