玩游戏学Python12-布尔型与条件语句

1.布尔型数据

布尔数据是 Python 四种基本数据类型之一,用bool表示。用来表示逻辑上的"真"和"假"两种状态。它只有两个标准取值:True 和 False。其中 True 表示真,False 表示假。定义布尔类型数据变量的代码如图1所示。

图1 定义布尔类型变量的代码

2.比较运算符

在前面的内容中,提到了Python的算术运算符和赋值运算符,接下来我们看一下Python的第三种运算符-比较运算符。

比较运算符是一类用于判断两个对象之间关系的运算符。一般来说,它们比较变量的值,并通常返回布尔值True或False,表示比较命题是否成立。常用的比较运算符有">"(大于)、"<"(小于)、">="(大于等于)、"<="(小于等于)、"=="(是否相等)和"!="(是否不相等)等。使用比较运算符的代码如图2所示。

图2 使用比较运算符的代码

其中,变量a的值是1,b的值是2。a>b命题不成立,因此其值是False;a<b命题成立,因此其值是True,其他表达式以此类推。

注意1 判断两个值是否相等的关系运算符是"==",常用的赋值运算符是"="。

3.条件语句

Python的条件语句一种控制流语句,用于根据条件的真值,选择是否执行对应的代码块。它判断条件,当条件为真(True)时就执行对应代码块,条件为假(False)时,则不执行对应的代码块。其格式如下所示。

python 复制代码
if 条件:

  对应代码块

其中,代码块前要有空白字符表示代码有缩进。

使用if条件语句的代码如图3所示。

图3 使用if条件语句的代码1

其中,a的值是1,if条件语句的条件是a>0,该条件成立,其值是True,此时会执行if条件语句对应的代码块,通过print()打印正数。而图4所示的代码,因为其条件为False,不会执行代码块。

图4 使用if条件语句的代码2

4.通过条件语句实现汽车的环绕屏幕行驶

在《玩游戏学Python10-算术运算符应用2》中,实现了汽车的行驶,如图5所示。

图5 行驶的汽车

但是,从图5中可以看出,汽车会行驶到屏幕右侧之外,导致显示汽车。我们可以通过if语句,让汽车实现环绕屏幕行驶,也就是当汽车行驶到屏幕右侧之外后,继续在屏幕左侧显示汽车,实现环绕屏幕行驶,代码如图6所示。

图6 实现汽车环绕屏幕行驶的代码

其中,在update()函数中,第28-29行代码通过if条件语句实现了汽车环绕屏幕行驶。if语句的条件是判断汽车的左侧car.left是否大于等于屏幕的宽度WIDTH。如果汽车完全驶出屏幕右侧,那么这个条件就变为True,此时会执行对应的代码段,也就是第29行代码,将汽车的右侧car.right设置为0,相当于把汽车的位置设置到了屏幕最左侧,实现了环绕屏幕。以上代码运行的效果如图7所示。

图7 实现屏幕环绕的汽车

5.完整代码

实现汽车环绕屏幕行驶的完整代码如下所示。

python 复制代码
import pgzrun



WIDTH = 960

HEIGHT = 480



TITLE = '我的第一个pgzero游戏'*2

ICON = 'car'+'.png'



screen_color = 'green'



car = Actor('car', (250, HEIGHT/2))

car_speed = 5.0



font_pos = (150, HEIGHT//5)

font_size = 64

font_color = 'red'

def draw():

    screen.fill(screen_color)

    car.draw()

    screen.draw.text('Hello World'

                     , font_pos

                     , fontsize = font_size

                     , color = font_color)

   

def update():

    car.right += car_speed

    if car.left >= WIDTH:

        car.right = 0

   

pgzrun.go()
相关推荐
Flynn Liang8 小时前
Spring AI 2.0 深度解析:ChatClient、Advisor 链与 MCP——Java 工程师的 AI 落地最优解
java·人工智能·spring·大模型·架构设计·spring ai
DeepVisionary8 小时前
为拿并网许可,OpenAI在佐治亚新园区同意高峰期断电三成
python·自动化
灿飞8 小时前
Kotlin与Java虚拟机六:基础与类型系统:一切皆对象,但对象有代价
java·kotlin
静水leo8 小时前
使用 Whistle 拦截接口并模拟后端响应
前端
计算机毕设定制辅导-无忧学长8 小时前
《基于微信小程序健康习惯激励系统设计与实现》
java·spring boot·mysql·微信小程序·uniapp·健康习惯激励系统
掘金者阿豪8 小时前
SQL Server数据迁移完成后,凌晨的数据库告警该怎么查?
前端·后端
JudithHuang8 小时前
React 嵌套路由与布局
前端·react.js·arcgis·react·react router
htzyl2068 小时前
前端阶梯——第四十三章、实战二:待办清单To-Do
前端·javascript·html
VIP_CQCRE8 小时前
内容自动化越跑越乱?先补上状态、去重和失败恢复
python·ai·工作流·幂等设计·内容自动化