一、课程介绍
本节课将学习新的 while 循环,并结合布尔值 True 实现无限循环,最终实现一个动态表情包的效果。
二、重难点解析
布尔值
在编程中,True 是真,False 是假。“真,假”,也是“对,错”的意思,它们是由英国著名数学家和逻辑学家乔治布尔提出的。
所以,True 和 False 也叫做布尔值,用于表示条件成立,和条件不成立。
while True
while 的意思是当什么什么的时候,是另一种循环结构。
使用时,while 后面要加上判断条件和英文冒号,然后将要重复执行的代码缩进到它里面。
while 判断条件:
重复执行的代码
只要 while 后的条件是永远正确的,就可以不停地执行缩进的代码,即无限循环。 可以将条件直接替换成布尔值 True,代表此处条件判断的结果永远正确,实现最简单、最直接的无限循环。
# 永远只会一直打印 1
while True:
print(1)
print(2)
time.sleep()
time 库,即时间库,其中的 sleep 方法可以让程序暂时休息一下,也就是暂停运行。
使用时方法的括号里填入要暂停的时间,单位是秒。比如写 3 就代表程序要暂停 3 秒。
import time
print(1)
time.sleep(3)
print(2)
write()
turtle 画笔的 write() 方法可以书写包含中文、英文、数字、特殊符号等的字符串,字会以画笔箭头的尖端右上角为起点书写。
方法括号中的第一个参数是待写的字符串。
第二个参数可以是对计算机字体的设置,包含对字体外形、大小的改变。需要通过 font 明确指定要设置字体,小括号中的字体外形与大小用英文逗号隔开。字体外形可以写一个没内容的字符串,会自动找到能用的外形。
import turtle
p = turtle.Pen()
p.write('看我多聪明~', font=('', 30))
turtle.done()
三、单词卡
face [feɪs] 脸
while [waɪl] 当...的时候
true [truː] 真
false [fɔːls] 假
time [taɪm] 时间
sleep [sliːp] 睡眠
write [raɪt] 写
四、小试牛刀
4.1 源码操作
编写代码,实现一个不断绘制、永远不停的方形螺旋线。
import turtle
p = turtle.Pen()
n = 0
while True:
p.forward(n)
p.right(90)
n = n + 10
turtle.done()
4.2 源码操作
import turtle
p = turtle.Pen()
p.penup()
p.write('春眠不觉晓', font=('', 50))
p.right(90)
p.forward(80)
p.left(90)
p.write('处处闻啼鸟', font=('', 50))
p.right(90)
p.forward(80)
p.left(90)
p.write('夜来风雨声', font=('', 50))
p.right(90)
p.forward(80)
p.left(90)
p.write('花落知多少', font=('', 50))
turtle.done()
4.3 源码操作
编写代码,实现泡泡一直飘来飘去的效果。
import turtle
import random
p = turtle.Pen()
turtle.addshape('bubble4.png')
p.shape('bubble4.png')
p.penup()
while True:
angle = random.randint(0, 360)
p.left(angle)
p.forward(50)
turtle.done()
五、扩展练习
import turtle
import time
turtle.bgpic('face3.gif')
p=turtle.Pen()
turtle.addshape('eye1.gif')
p.shape('eye1.gif')
p.penup()
p.goto(-100,350)
p.write('看我多聪明~',font=('',40))
p.goto(-85,120)
while True:
p.forward(170)
p.forward(-170)
time.sleep(1)
turtle.done()
六、大开脑洞
这个程序,数数“贼拉”快!!
n = 0
while True:
print(n)
n = n+1