Python学习笔记 | 布尔值和四种语句

本文介绍了Python中的布尔值及其在条件判断中的作用,详细阐述了比较运算符和布尔运算,包括and、or、not。接着,讨论了break、continue、pass和else四种控制语句的用法,并通过实例解释了它们在循环中的行为。文章末尾提供了多个代码练习,用于巩固学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Python3版本的学习。

用数据做判断:布尔值

布尔值:TrueFalse

决定if语句和while语句是否运行。
为真执行一次。

print(3<5)
print(3>5)
print('长安'=='长安')  
print('长安'!='金陵') 

#运行结果
True
False
True
True

print()括号内的计算其实就是【布尔运算】。终端上出现的True和False我们称为【布尔值】。

第1行和第2行代码很简单啦。我们看后面两行:两个字符串’长安’相等,结果正确,所以打印为True。
而字符串’长安’和字符串’金陵’做比较,结果不相等,!=代表不等号,结果正确,打印为True。

只有当条件判断为True时,if和while后面的子句才会执行下去。

两个数值做比较

python中的比较运算符:

比较运算符含义
==等于
!=不等于
>大于
<小于
>=大于等于
<=小于等于

提醒:在代码中,A == B 表示A和B相等, 表示相等关系;而=表示给变量赋值。

直接用数值做运算

python中的真假判断:

假的情况真的情况
FalseTrue
05(任意整数)、1.0(任意浮点数)
‘’(空字符串)‘诸葛亮’(任意字符串)
[](空列表)[1,2,3]
{}(空字典){1:‘白天’,2:‘黑夜’}
None

bool()函数可以用来查看一个数据会被判断为真还是假。

布尔值之间的运算

五种运算:and、or、not、in、not in。
and:要求条件都满足才为True;
or:只要求其中一个条件满足就为True;
not:计算会反正真假;
in:用来判断一个元素是否在一堆数据中;
not in:与in相反。


四种新的语句

break语句

break的意思是“打破”,是用来结束循环的。
while True条件恒为真,可开启无限循环。而while True常和break语句搭配使用,可结束无限循环。

# break语句搭配for循环
for...in...:
    ...
    if ...:
        break

# break语句搭配while循环
while...(条件):
    ...
    if ...:
        break
continue语句

continue的意思是“继续”。这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。

# continue语句搭配for循环
for...in...:
    ...
    if ...:
        continue
    ...

# continue语句搭配while循环
while...(条件):
    ...
    if ...:
        continue
    ...
pass语句

它的英文意思是“跳过”,什么都不做。

a = int(input('请输入一个整数:'))
if a >= 100:
    pass
else:
    print('你输入了一个小于100的数字')

#运行结果:
请输入一个整数:222
else语句

else语句:可以和if配合使用,还能跟for循环和while循环配合使用。

总结:

break语句:从循环内跳出,必须和if语句等连用。
continue语句:跳跃到循环开头,必须和if语句等连用。
pass语句:什么都不做,常在if语句下。
else语句:用在循环语句后,如果正常循环结束或者不满足,就执行else语句下的子语句(没有遇到break语句)。


风变编程学习笔记 / 代码练习

1、练习要求:
一个人在心里想好一个数,比如24,然后让另一个人猜。如果他猜的数比24小,告诉他“太小了”,如果他猜的数比24大,告诉他“太大了”,这个游戏只能猜3次,3次都猜不中,就告诉他“失败了”。

运行代码:

t=0 #定义并赋值,控制猜的次数
while True: #设置while循环,开启无限循环
    if t!=3:
        t=t+1
        i=int(input('你猜我想的数是多少:\n')) #采集输入的信息
        if i!=24: #当输入的数不等于24时,执行子语句
            if i<24: #当输入的数小于24,打印'太小了'
                print('太小了')
            else: #当输入的数大于24,打印'太大了'
                print('太大了')
            continue #猜错了,返回循环开头,继续等待输入
            
        else: #当输入的数等于24,打印'猜对了'
            print('猜对了')
            break #猜对了,跳出循环,结束语句
    else:
        print('不好意思,你的次数用完了~')
    break #猜对了,跳出循环,结束语句

运行结果:

你猜我想的数是多少:
1
太小了
你猜我想的数是多少:
3
太小了
你猜我想的数是多少:
5
太小了
不好意思,你的次数用完了~

2、练习要求:
假设有两名囚徒A和B因为合伙犯罪被抓捕,因没有确凿可以指认罪行的证据,审判者准备单独审判两位囚徒。
若两人都认罪,则两人各判10年;若一个认罪一个抵赖,则认罪的人判1年,抵赖的人判20年;若两人都抵赖,则各判3年。
现在,请写个代码:当两人都抵赖时,打印判决,代码结束;若为其他结果,则在打印判决后继续循环。

运行代码:

while True:
    a = input('A,你认罪吗?请回答认罪或者不认')
    b = input('B,你认罪吗?请回答认罪或者不认')
    if a == '认罪' and b == '认罪':
        print('两人都得判10年,唉')
    elif a == '不认' and b == '认罪':
        print('A判20年,B判1年,唉')
    elif a == '认罪' and b == '不认':
        print('A判1年,B判20年')
    else:
        print('都判3年,太棒了')
        break  # 当满足开头提到的条件时,跳出循环。

运行结果:

A,你认罪吗?请回答认罪或者不认
认罪
B,你认罪吗?请回答认罪或者不认
不认
A判1年
B判20年
A,你认罪吗?请回答认罪或者不认
不认
B,你认罪吗?请回答认罪或者不认
认罪
A判20年
B判1年
A,你认罪吗?请回答认罪或者不认
认罪
B,你认罪吗?请回答认罪或者不认
认罪
各判10年
A,你认罪吗?请回答认罪或者不认
不认
B,你认罪吗?请回答认罪或者不认
不认
各判3

3、练习要求:
上一个练习,我们将“囚徒困境”写成了代码,让程序收集两名囚犯的认罪情况,进而决定他们的判决:
两人都认罪,则各判10年;一个认罪一个抵赖,则前者判1年,后者判20年;两人都抵赖,各判3年。只有两人都不认罪,程序才会停止。
现在有一个社会学家,在不同的人群中做这个实验,一旦遇到都不认罪的情况,就停止该人群中的实验。
同时,他希望程序能记录每一对实验者的选择,以及记录第几对实验者都选择不认罪。请你帮帮他吧。

运行代码:

n = 0
list_answer = []

while True:
    n += 1
    a = input('A,你认罪吗?请回答认罪或者不认:')
    b = input('B,你认罪吗?请回答认罪或者不认:')
    list_answer.append([a,b])  # 用列表嵌套的方式来存放实验者的选择,也可用元组或字典。
    if a == '认罪' and b == '认罪':
        print('两人都得判10年,唉')
    elif a == '不认' and b == '认罪':
        print('A判20年,B判1年,唉')
    elif a == '认罪' and b == '不认':
        print('A判1年,B判20年')
    else:
        print('都判3年,太棒了')
        break

print('第' + str(n) + '对实验者选了最优解。')

for i in range(n):
    # 注意数据类型的转换,以及计数起点的不同(0和1)
    print('第' + str(i+1) + '对实验者的选择是:' + str(list_answer[i]))

运行结果:

A,你认罪吗?请回答认罪或者不认:认罪
B,你认罪吗?请回答认罪或者不认:不认
A判1年,B判20年
A,你认罪吗?请回答认罪或者不认:认罪
B,你认罪吗?请回答认罪或者不认:认罪
两人都得判10年,唉
A,你认罪吗?请回答认罪或者不认:不认
B,你认罪吗?请回答认罪或者不认:认罪
A判20年,B判1年,唉
A,你认罪吗?请回答认罪或者不认:不认
B,你认罪吗?请回答认罪或者不认:不认
都判3年,太棒了
第4对实验者选了最优解。
第1对实验者的选择是:['认罪', '不认']2对实验者的选择是:['认罪', '认罪']3对实验者的选择是:['不认', '认罪']4对实验者的选择是:['不认', '不认']

4、练习要求:
我很喜欢看电影,我回忆了一下,这两年我觉得还不错的国产电影。 下面,会将电影的影片名和主演放在字典里,如movie =
{‘妖猫传’:[‘黄轩’,‘染谷将太’]}。 需要你补充一些代码,让其他人只要输入演员名,就打印出:××出演了电影××。

运行代码:

movies = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}

actor = input('你想查询哪个演员?')
for  movie in movies:  # 用 for 遍历字典
    actors = movies[movie]  # 读取各个字典的主演表
    if actor in actors:
        print(actor + '出演了电影' + movie)

运行结果:

你想查询哪个演员?黄轩
黄轩出演了电影妖猫传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值