基于Python3版本的学习。
用数据做判断:布尔值
布尔值:True和False。
决定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中的真假判断:
假的情况 | 真的情况 |
---|---|
False | True |
0 | 5(任意整数)、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)
运行结果:
你想查询哪个演员?黄轩
黄轩出演了电影妖猫传