鱼C论坛

 找回密码
 立即注册
查看: 2531|回复: 4

[已解决]python猜数字游戏在循环结束时有点小问题

[复制链接]
发表于 2020-2-10 00:20:02 | 显示全部楼层 |阅读模式

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

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

x
萌新尝试写的一段代码,但是在规定的循环次数内输入正确结果后程序不会结束,而是继续询问“猜一下1-10之间的数字吧: ”直到循环结束。我觉得应该是break位置放置的问题,问一下大佬们这个程序该如何修改
代码如下:
1 print("+++++++++++++++++猜数字小游戏++++++++++++++++++")
2 import random
3 secret=random.randint(1,10)
4 i=3
5 while i>0:
6    temp = input("猜一下1-10之间的数字吧:  ")
7    guess = int(temp)
8    if guess == secret:
9        print("猜对了,你真棒!")
10      break
11   while guess!=secret:
12        if guess>secret:
13            print("大了")
14        else:
15            print("小了")
16       temp = input("再试一次:")
17       guess = int(temp)
18       if guess == secret:
19           print("猜对了,你真棒!")
20           break
21        i=i-1
22        if i==0:
23           print("你没有机会了")
24           break
25 print("游戏结束了")
最佳答案
2020-2-10 01:16:03
这是你的原代码 错误我给你指出了 大概就是 循环没套好用好
print("+++++++++++++++++猜数字小游戏++++++++++++++++++")
import random
secret=random.randint(1,10)
i=3
while i>0:
   temp = input("猜一下1-10之间的数字吧:  ")
   guess = int(temp)
   if guess == secret:
       print("猜对了,你真棒!")
       break 
   while guess!=secret:
       if guess>secret:
           print("大了")
       else:
           print("小了")
       temp = input("再试一次:") #这部分不应该放在这里 重复了
       guess = int(temp)
       if guess == secret:
           print("猜对了,你真棒!")
           break #这个break跳出的是while guess!=secret这个循环 去到while i>0循环 i也没有减
        i=i-1
        if i==0:
           print("你没有机会了")
           break #这个也是 跳出的是while guess!=secret这个循环 去到while i>0循环
print("游戏结束了")  
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-10 01:05:55 | 显示全部楼层
本帖最后由 Judie 于 2020-2-9 12:08 编辑
print("+++++++++++++++++猜数字小游戏++++++++++++++++++")
import random
secret = random.randint(1,10)
i = 3

while i>0:
    temp = input("猜一下1-10之间的数字吧:  ")
    guess = int(temp)
    if guess == secret: #猜对了
        print("猜对了,你真棒!")
        break #跳出while i>循环 去到if那里
    elif guess > secret: #没猜对,猜大了
        i -= 1 #次数-1
        print("大了")
        continue #判断 i是否大于0后 继续while循环 
    else: #没猜对,猜小了
        i -= 1 
        print("小了")
        continue

if i== 0: #判断是否还有机会(即是答对了,还是没有机会) 没有机会了则打印以下
    print("你没有机会了")

print("游戏结束了") #游戏结束声明

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

使用道具 举报

发表于 2020-2-10 01:16:03 | 显示全部楼层    本楼为最佳答案   
这是你的原代码 错误我给你指出了 大概就是 循环没套好用好
print("+++++++++++++++++猜数字小游戏++++++++++++++++++")
import random
secret=random.randint(1,10)
i=3
while i>0:
   temp = input("猜一下1-10之间的数字吧:  ")
   guess = int(temp)
   if guess == secret:
       print("猜对了,你真棒!")
       break 
   while guess!=secret:
       if guess>secret:
           print("大了")
       else:
           print("小了")
       temp = input("再试一次:") #这部分不应该放在这里 重复了
       guess = int(temp)
       if guess == secret:
           print("猜对了,你真棒!")
           break #这个break跳出的是while guess!=secret这个循环 去到while i>0循环 i也没有减
        i=i-1
        if i==0:
           print("你没有机会了")
           break #这个也是 跳出的是while guess!=secret这个循环 去到while i>0循环
print("游戏结束了")  
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-10 14:17:38 | 显示全部楼层
Judie 发表于 2020-2-10 01:16
这是你的原代码 错误我给你指出了 大概就是 循环没套好用好

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

使用道具 举报

发表于 2020-2-10 14:19:01 | 显示全部楼层
本帖最后由 Judie 于 2020-2-10 01:20 编辑


不客气呀
满意的话还请设置一下最佳答案 如还有不懂 还可继续更贴提问哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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