鱼C论坛

 找回密码
 立即注册
查看: 1559|回复: 10

[已解决]新手求助

[复制链接]
发表于 2017-11-24 20:33:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问这句代码" times = times - 1"放在此位置,为什么执行不了" print('机会用光咯') ",哪位大佬帮忙解释解释?
最佳答案
2017-11-24 21:44:30
本帖最后由 shisan9783 于 2017-11-24 21:46 编辑

times=0,while判断后,不符合条件,跳出循环,不经过if语句,就到了while之外了
把这句放到if前面,times=1的时候,被while判断可以继续循环,然后就进入while内,然后times=times-1=0,这时候就走if了
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-24 20:37:45 | 显示全部楼层
你应该缩进去time= time-1,跟最后一个else对齐
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-24 20:53:51 From FishC Mobile | 显示全部楼层
请将这一句放在第一个else语句内的第一句的位置
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-11-24 21:44:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 shisan9783 于 2017-11-24 21:46 编辑

times=0,while判断后,不符合条件,跳出循环,不经过if语句,就到了while之外了
把这句放到if前面,times=1的时候,被while判断可以继续循环,然后就进入while内,然后times=times-1=0,这时候就走if了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-11-26 16:37:02 | 显示全部楼层
很感谢你的解释,但你说把这句放到if前面,times=1的时候就可以继续循环,可是这句代码放到if前面和我放的位置有什么区别吗?我还是没看明白,麻烦你能再说明白点吗?谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-26 16:37:38 | 显示全部楼层
BngThea 发表于 2017-11-24 20:53
请将这一句放在第一个else语句内的第一句的位置

很感谢你的解释
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-26 16:39:30 | 显示全部楼层
bbjx 发表于 2017-11-24 20:37
你应该缩进去time= time-1,跟最后一个else对齐

很感谢你的解释,但是我还是没明白我这句代码放的位置为什么不对?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 15:09:53 | 显示全部楼层
逝去的时光 发表于 2017-11-26 16:37
很感谢你的解释,但你说把这句放到if前面,times=1的时候就可以继续循环,可是这句代码放到if前面和我放的 ...

按照你所写的,times=0,才会print("机会用光了")
while判断进入第一次循环时。times=3,在while下语句的结尾times=2
while判断进入第二次循环,times=2,在while下语句的结尾times=1
while判断进入第三次循环,times=1,在while下语句的结尾times=0
while判断不进入循环(times>0才能进入循环),所以不会print

把times=times-1移到第一个if之前的话
while判断进入第一次循环时,times=3,在while下语句if前times=2
while判断进入第二次循环时,times=2,在while下语句if前times=1
while判断进入第三次循环时,times=1,在while下语句if前times=0才能print
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-27 20:03:42 | 显示全部楼层
shisan9783 发表于 2017-11-27 15:09
按照你所写的,times=0,才会print("机会用光了")
while判断进入第一次循环时。times=3,在while下语句 ...

基本上看懂了,不过按照我写的,输完3次后,最后一句应该输出"游戏结束啦,不玩了",为什么前面还要执行一句"猜错了,请重新输入",因为times已经等于0了,此时不应该进入循环执行这句代码啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-27 21:20:44 | 显示全部楼层
逝去的时光 发表于 2017-11-27 20:03
基本上看懂了,不过按照我写的,输完3次后,最后一句应该输出"游戏结束啦,不玩了",为什么前面还要执行 ...

你有一句
if times>0:  (此时times=1)
print("猜错了,请重新输入:",end=' ')    (依然会执行)
else  …………(跳过)      
times=times-1  (执行, 然后while判断后跳出)
print("游戏结束")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-28 08:56:24 | 显示全部楼层
shisan9783 发表于 2017-11-27 21:20
你有一句
if times>0:  (此时times=1)
print("猜错了,请重新输入:",end=' ')    (依然会执行)

总算看明白了,很感谢你的耐心讲解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-4 07:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表