A021 《斗图大赛》编程 源码

时间:2024-01-20 19:34:22

一、课程介绍

本节课将学习新的 while 循环,并结合布尔值 True 实现无限循环,最终实现一个动态表情包的效果。

A021  《斗图大赛》编程 源码_布尔值

二、重难点解析

A021  《斗图大赛》编程 源码_while True_02布尔值

在编程中,True 是真,False 是假。“真,假”,也是“对,错”的意思,它们是由英国著名数学家和逻辑学家乔治布尔提出的。

所以,True 和 False 也叫做布尔值,用于表示条件成立,和条件不成立。

A021  《斗图大赛》编程 源码_布尔值_03while True

while 的意思是当什么什么的时候,是另一种循环结构。

使用时,while 后面要加上判断条件和英文冒号,然后将要重复执行的代码缩进到它里面。

while 判断条件:
    重复执行的代码

只要 while 后的条件是永远正确的,就可以不停地执行缩进的代码,即无限循环。 可以将条件直接替换成布尔值 True,代表此处条件判断的结果永远正确,实现最简单、最直接的无限循环。

# 永远只会一直打印 1
while True:
    print(1)
print(2)

A021  《斗图大赛》编程 源码_while True_04time.sleep()

time 库,即时间库,其中的 sleep 方法可以让程序暂时休息一下,也就是暂停运行。

使用时方法的括号里填入要暂停的时间,单位是秒。比如写 3 就代表程序要暂停 3 秒。

import time
print(1)
time.sleep(3)
print(2)

A021  《斗图大赛》编程 源码_time.sleep()_05write()

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 源码操作

编写代码,实现一个不断绘制、永远不停的方形螺旋线。

A021  《斗图大赛》编程 源码_布尔值_06

import turtle
p = turtle.Pen()

n = 0
while True:
    p.forward(n)
    p.right(90)
    n = n + 10
 
turtle.done()

4.2 源码操作

A021  《斗图大赛》编程 源码_while True_07

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 源码操作

编写代码,实现泡泡一直飘来飘去的效果。

A021  《斗图大赛》编程 源码_time.sleep()_08

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()

五、扩展练习

A021  《斗图大赛》编程 源码_write()_09

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()

六、大开脑洞

这个程序,数数“贼拉”快!!

A021  《斗图大赛》编程 源码_布尔值_10

n = 0
while True:
    print(n)
    n = n+1