【小甲鱼Python】改进我们的小游戏&&课后作业

测试题:

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中:

  1. 对于纯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。
  2. 对于纯or语句,如果每一个表达式都为假,则返回最后一个表达式的实际值;如果有一个表达式为真,则返回第一个真表达式的实际值。例如:1 or 0 返回1;False or 3 or 0返回3。
  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循环

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值