Python基础语法篇:布尔值是什么?True 和 False 的实际用途
刚学完变量、字符串和数字,你可能会疑惑:“Python 里为什么有 True 和 False?这两个词到底能干嘛?” 其实布尔值(True/False)是 Python 的 “判断工具”,就像生活里的 “是 / 否”“对 / 错”,不管是成绩是否及格,还是筛选符合条件的数据,都要用到它。这篇文章来讲讲:布尔值是什么?实际场景中怎么用?
我整理了一些学习资料,包含课程、专业、考试等内容,还有游戏和软件的合集。
学习资料合集文档https://www.kdocs.cn/l/cjchDXwklk1B
一、布尔值到底是什么?
布尔值(Boolean)是 Python 里一种特殊的数据类型,只有两个取值:True(真,相当于 “是”“对”)和False(假,相当于 “否”“错”)。注意首字母必须大写,写true或false会报错!
1. 怎么定义布尔值变量?
和定义普通变量一样,直接赋值True或False就行:
# 定义布尔值变量
is_pass = True # 表示“及格了”
has_homework = False # 表示“没有作业”
print(is_pass) # 输出:True
print(has_homework) # 输出:False
2. 怎么确认是布尔值类型?
用type()函数查看,布尔值的类型是bool(Boolean 的缩写):
is_pass = True
print(type(is_pass)) # 输出:<class 'bool'>
小常识:布尔值和数字的关系
在 Python 里,True相当于数字1,False相当于数字0,比如:
print(True + 1) # 输出:2(True按1算)
print(False + 3) # 输出:3(False按0算)
但平时尽量别这么用,布尔值的核心用途是 “判断”,不是 “计算”。
二、什么时候会得到 True/False?
你很少会直接写is_pass = True,更多时候是通过 “判断语句” 自动得到布尔值。比如判断 “成绩是否大于 60”“字符串是否包含某个词”,结果要么是 True,要么是 False。
1. 比较运算:数字 / 字符串的 “大小 / 相等” 判断
最常用的场景是比较两个值,用比较运算符(==、!=、>、<、>=、<=),结果直接是布尔值。
案例 1:判断成绩是否及格(数字比较)
math_score = 75
# 判断“成绩是否>=60”,结果是True
is_pass = math_score >= 60
print(is_pass) # 输出:True# 判断“成绩是否等于100”,结果是False
is_full_score = math_score == 100
print(is_full_score) # 输出:False
案例 2:判断字符串是否相等(文字比较)
course = "Python基础"
# 判断“课程名是否等于Python基础”,结果是True
is_python_course = course == "Python基础"
print(is_python_course) # 输出:True# 判断“课程名是否不等于Java”,结果是True
is_not_java = course != "Java"
print(is_not_java) # 输出:True
避坑提醒:==和=别搞混!
- ==是 “等于”,用来判断两个值是否相等,返回布尔值(True/False);
- =是 “赋值”,用来给变量存值,比如a = 10是把 10 存到 a 里。
❌ 错误案例:if a = 10:(想判断 a 是否等于 10,却用了赋值符号,会报错)
✅ 正确案例:if a == 10:
2. 成员运算:判断 “是否包含”
用in或not in判断一个值是否在另一个值里(比如字符串是否包含某个词、列表是否包含某个元素),结果也是布尔值。
案例 1:判断字符串是否包含关键词
essay_title = "Python字符串拼接技巧"
# 判断标题是否包含“Python”,结果是True
has_python = "Python" in essay_title
print(has_python) # 输出:True# 判断标题是否不包含“Java”,结果是True
no_java = "Java" not in essay_title
print(no_java) # 输出:True
案例 2:判断列表是否包含某个元素
course_list = ["Python", "Java", "C++"]
# 判断列表是否包含“Python”,结果是True
has_python_course = "Python" in course_list
print(has_python_course) # 输出:True
3. 逻辑运算:多个判断的 “且 / 或 / 非”
当需要同时判断多个条件时(比如 “成绩及格且作业完成”),用逻辑运算符(and、or、not)组合,结果还是布尔值。
逻辑运算符 | 含义 | 规则(A 和 B 是判断条件) |
and | 且(同时满足) | A 和 B 都为 True,结果才是 True;否则 False |
or | 或(满足一个即可) | A 或 B 有一个为 True,结果就是 True;否则 False |
not | 非(取反) | A 是 True,结果是 False;A 是 False,结果是 True |
案例 1:判断 “成绩及格且作业完成”
math_score = 80
has_finished_homework = True# 两个条件都满足,结果是True
can_play = (math_score >= 60) and has_finished_homework
print(can_play) # 输出:True
案例 2:判断 “成绩优秀或有加分”
english_score = 85
has_bonus = True# 满足一个条件就为True(这里两个都满足)
can_get_scholarship = (english_score >= 90) or has_bonus
print(can_get_scholarship) # 输出:True
案例 3:判断 “没有迟到”(取反)
is_late = False
# 对is_late取反,False变成True
is_on_time = not is_late
print(is_on_time) # 输出:True
三、布尔值到底能解决什么问题?
布尔值本身不 “做事”,但它是 “决策依据”—— 比如判断是否执行某段代码、筛选符合条件的数据,都要靠布尔值的 True/False 来决定。
1. 用途 1:控制 if 条件语句(“满足条件才执行”)
if 语句的核心是 “条件为 True 时,执行缩进里的代码;为 False 时不执行”,这里的 “条件” 本质就是布尔值。
案例:成绩及格就打印 “合格”,否则打印 “加油”
score = 58
# 条件:score >= 60,结果是False
if score >= 60:print("成绩合格!") # 条件为False,不执行这行
else:print("成绩未及格,继续加油!") # 条件为False,执行这行
# 最终输出:成绩未及格,继续加油!
2. 用途 2:控制循环(“满足条件才继续循环”)
while 循环的逻辑是 “条件为 True 时,反复执行代码;为 False 时停止循环”,这里的条件也是布尔值。
案例:倒计时 3 秒(条件为 “count> 0”,直到 count 变成 0 停止)
count = 3
# 条件:count > 0,初始是True
while count > 0:print(f"倒计时:{count}秒")count = count - 1 # 每循环一次,count减1
# 当count变成0,条件count>0为False,循环停止
# 输出:
# 倒计时:3秒
# 倒计时:2秒
# 倒计时:1秒
3. 用途 3:筛选数据(“只保留符合条件的内容”)
比如从列表里挑出 “及格的成绩”“包含 Python 的课程名”,本质是用布尔值判断每个元素是否符合条件,只保留结果为 True 的元素。
案例:从成绩列表里筛选及格成绩
score_list = [55, 72, 88, 49, 95, 58]
passed_scores = [] # 用来存及格的成绩for score in score_list:# 判断成绩是否>=60(得到True/False)if score >= 60:passed_scores.append(score) # 条件为True,加入列表print(passed_scores) # 输出:[72, 88, 95]
四、实战练习:判断 “是否能参加 Python 竞赛”
假设参加竞赛需要满足两个条件:1. Python 课程成绩 >=80;2. 已经完成竞赛报名(has_registered = True)。请用布尔值判断某同学是否能参加,并打印结果。
参考代码:
# 1. 定义已知条件
python_score = 85 # 同学的Python成绩
has_registered = True # 是否完成报名# 2. 判断是否满足两个条件(用and连接)
can_join = (python_score >= 80) and has_registered# 3. 根据布尔值输出结果
if can_join:print("恭喜!你可以参加Python竞赛~")
else:print("抱歉,你暂不符合竞赛参与条件。")# 最终输出:恭喜!你可以参加Python竞赛~
总结
- 布尔值只有两个值:True(真)和False(假),首字母必须大写;
- 获得布尔值的 3 种方式:比较运算(==、> 等)、成员运算(in/not in)、逻辑运算(and/or/not);
- 核心用途:作为 if 语句、while 循环的 “决策依据”,以及筛选数据时的 “判断标准”。
下次写代码时,只要遇到 “要不要执行”“要不要保留” 的问题,就想想用布尔值来判断 —— 这是 Python 里最基础也最核心的逻辑工具之一!如果在判断条件时遇到报错