测试题:
0. 请问以下代码会打印多少次“我爱鱼C!”
while ‘C’:
print(‘我爱鱼C!’)
复制代码
无穷多次
1. 请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
print(‘我爱鱼C!’)
i = i - 1
复制代码
10次
2. 请写出与 10 < cost < 50 等价的表达式
(10 < cost) and (cost<50)
3. Python3 中,一行可以书写多个语句吗?(一行写多句)
可以,用分号隔开每个语句即可。
4. Python3 中,一个语句可以分成多行书写吗?(一句分多行)
可以,用\接在未写完的句子后,或用()将整个语句括起来。
如:
3>4 and \
1<2
(3>4 and
1<2)
5. 请问Python的 and 操作符 和C语言的 && 操作符 有何不同?【该题针对有C或C++基础的朋友】
&& 操作符只能返回【逻辑值】: 0 或 1
and 操作符返回的是【实际值】
6. 听说过“短路逻辑(short-circuit logic)”吗?
在Python中:
- 对于纯and语句,如果每一个表达式都为真,则返回最后一个表达式的实际值(因为要一直匹配到最后一个表达式,才能知道该表达式是否为真);如果有一个表达式为假,则返回第一个假表达式的实际值(因为根据第一个为假表达式就可以知道整个表达式为假了,没必要再看后面的表达式了)。例如:1 and 2 返回 2;3 and False 返回 False;1 and 0 and 3 and 5,有一个0为假,其他表达式都不用看,直接知道返回值为0,实际分析过程:((1 and 0) and 3 )and 5。
- 对于纯or语句,如果每一个表达式都为假,则返回最后一个表达式的实际值;如果有一个表达式为真,则返回第一个真表达式的实际值。例如:1 or 0 返回1;False or 3 or 0返回3。
- 对于and和or混合语句,逐个分析。例如:(False and 3 )or( 9 and 0) or 7 or 4 返回 7。
注意:逻辑运算符优先级:not>and>or;分析:not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9
【解】(not 1) or (0 and 1 )or (3 and 4) or (5 and 6) or (7 and 8 and 9)返回:4。
这便是所谓的“短路逻辑”,类似于分析串并联电路中各个元件是否正常工作一样。
动动手:
0. 完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。
print('--------------------我爱鱼C工作室--------------------')
guess = int(input('不妨猜一下小甲鱼现在心里想的是哪个数字:'))
ans = 8
i=1
while guess != ans and i<=3:
if guess > 8:
print('大了,大了~')
else:
print('小了,小了~')
if i < 3:
print('还有',3 - i,'次机会~')
guess = int(input('再猜猜看吧:'))
i+=1
if i > 3:
print('机会用完了,游戏结束~')
else:
print('猜对了,你是小甲鱼肚子里的蛔虫吗?!')
print('哼~猜对了也没奖励~')
经验总结:
1.分支不一定要用条件语句,while 也可以实现分支。
2.一方面要判断答案是否正确,另一方面要限制次数,所以是要同时判断两个条件是否成立。也可以用两层循环嵌套,最外层判断次数,内层判断答案,但是这样很麻烦。
3.在最后一次机会时,编代码要考虑的因素很多。利用次数来构建条件语句,从而输出某些特定语句或不输出某些语句,例如最后一次要提示用户机会用完了,所以设置if i > 3;最后一次时,告诉用户结果是偏大还是偏小,但是不再给予用户再次猜测的机会,故给出一个if i < 3进行判断。
1. 尝试写代码实现以下截图功能:
number=int(input('请输入一个整数:'))
i=1
while i <= number:
print(i)
i+=1
2. 尝试写代码实现以下截图功能:
number=int(input('请输入一个整数:'))
i=number
while i > 0:
print(' '*(i-1)+'*'*i)
i-=1
3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!
while循环