鱼C论坛

 找回密码
 立即注册
查看: 1011|回复: 6

[已解决]给位大佬 我想循环这段代码为啥就一次没了

[复制链接]
发表于 2020-1-19 00:19:28 | 显示全部楼层 |阅读模式

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

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

x
print('--------过客代码练习-------')
temp=input('不妨猜猜过客心里想的那个数(1-10):')
guess=int(temp)
while guess==8:
                print('卧槽;‘你是半仙嘛’,算的这么准!')
                print("想要啥子奖励")
                print("奖励就想都不要想了")
if guess!=8:
                print('你是猪嘛')
                print('怎么可能这个数')
                print('想的是8,哈哈哈')
else:
        print("退出游戏")
               
print('不跟你你这辣鸡玩了\n'+"GAME OVER")
最佳答案
2020-1-19 01:10:33
本帖最后由 hrp 于 2020-1-19 02:22 编辑

这段代码逻辑有问题,输入8的时候会进入死循环。
你说的循环是想输入错误可以重新输入,输入对就结束,
还是不论输入对错直接写出结果,然后重新开始?

以下是第一种情况的代码
  1. print('--------过客代码练习-------')
  2. ipt = 3  # 三次机会
  3. while ipt >0:  # 当机会数大于0的时候就继续循环
  4.     temp = input('不妨猜猜过客心里想的那个数(1-10):')
  5.     guess = int(temp)
  6.     if guess == 8:
  7.         print('卧槽;‘你是半仙嘛’,算的这么准!')
  8.         print("想要啥子奖励")
  9.         print("奖励就想都不要想了")
  10.         print("游戏结束,不玩了")
  11.         break  # 猜对就退出循环
  12.     else:
  13.         ipt -= 1 # 没猜对,机会数减1
  14.         print('你是猪嘛')
  15.         print('怎么可能这个数')
  16.         print("还剩%d次机会" %ipt)
  17. else:
  18.     print('不跟你你这辣鸡玩了\nGAME OVER') # 因循环条件不成立而退出循环执行这句
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-19 01:10:33 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 hrp 于 2020-1-19 02:22 编辑

这段代码逻辑有问题,输入8的时候会进入死循环。
你说的循环是想输入错误可以重新输入,输入对就结束,
还是不论输入对错直接写出结果,然后重新开始?

以下是第一种情况的代码
  1. print('--------过客代码练习-------')
  2. ipt = 3  # 三次机会
  3. while ipt >0:  # 当机会数大于0的时候就继续循环
  4.     temp = input('不妨猜猜过客心里想的那个数(1-10):')
  5.     guess = int(temp)
  6.     if guess == 8:
  7.         print('卧槽;‘你是半仙嘛’,算的这么准!')
  8.         print("想要啥子奖励")
  9.         print("奖励就想都不要想了")
  10.         print("游戏结束,不玩了")
  11.         break  # 猜对就退出循环
  12.     else:
  13.         ipt -= 1 # 没猜对,机会数减1
  14.         print('你是猪嘛')
  15.         print('怎么可能这个数')
  16.         print("还剩%d次机会" %ipt)
  17. else:
  18.     print('不跟你你这辣鸡玩了\nGAME OVER') # 因循环条件不成立而退出循环执行这句
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-19 01:24:20 | 显示全部楼层
我建议可以自己用一个数字来检查代码是不是自己要的意思

例如:
假设今天输入的是1,代码会做以下事情

guess=1
while guess==8:  # 因为条件不成立(1 不等于8),所以不会进入这个while循环
if guess!=8           # 因为条件成立(1的确不等于8),于是我们执行if判断式里的语句
# 因为if 被执行了,所以else不会有作用

只要大致过一下你的代码,就会发现并没有可以循环的时机
再试一下吧!不行再讨论讨论
加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-19 10:45:13 | 显示全部楼层
hrp 发表于 2020-1-19 01:10
这段代码逻辑有问题,输入8的时候会进入死循环。
你说的循环是想输入错误可以重新输入,输入对就结束,
...

大佬     %d是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-19 13:23:45 From FishC Mobile | 显示全部楼层
1738048249 发表于 2020-1-19 10:45
大佬     %d是什么意思

占位符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-19 15:22:50 From FishC Mobile | 显示全部楼层
1738048249 发表于 2020-1-19 10:45
大佬     %d是什么意思

格式化输出,这里%d表示强制转换为整形(int)输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-20 20:25:31 | 显示全部楼层
_2_ 发表于 2020-1-19 15:22
格式化输出,这里%d表示强制转换为整形(int)输出

懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-7 07:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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