鱼C论坛

 找回密码
 立即注册
查看: 2340|回复: 5

猜数字小游戏找bug

[复制链接]
发表于 2022-1-24 17:53:49 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. c=random.randint(1,101)
  3. print('这是一个猜数字小游戏\n你有10次机会')
  4. print(c) #测试
  5. x=int(input('请输入你猜的数字: '))
  6. for i in range(9):
  7.     if c>x:
  8.         print('猜小了')
  9.         x=int(input('请输入你猜的数字: '))

  10.     if c<x:
  11.         print('猜大了')
  12.         x=int(input('请输入你猜的数字: '))
  13.     else:
  14.         print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
  15.         break
  16.         
复制代码


连续猜两个相同的数字就会出bug,直接显示猜对了
  1. 这是一个猜数字小游戏
  2. 你有10次机会
  3. 17
  4. 请输入你猜的数字: 7
  5. 猜小了
  6. 请输入你猜的数字: 7
  7. 恭喜你猜对了!答案是7
  8. 你一共猜了2次
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-24 18:21:52 | 显示全部楼层
  1. import random


  2. c=random.randint(1,101)

  3. print('这是一个猜数字小游戏\n你有10次机会')
  4. print(c) #测试

  5. x=int(input('请输入你猜的数字: '))

  6. for i in range(9):
  7.     if c>x:
  8.         print('猜小了')
  9.         x=int(input('请输入你猜的数字: '))
  10.     elif c<x:
  11.         print('猜大了')
  12.         x=int(input('请输入你猜的数字: '))
  13.     else:
  14.         print(f'恭喜你猜对了!答案是{c}\n你一共猜了{i+2}次')
  15.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-24 18:23:02 | 显示全部楼层
您可以把代码改成这样:
  1. import random
  2. c=random.randint(1,101)
  3. print('这是一个猜数字小游戏\n你有10次机会')
  4. print(c) #测试
  5. x=int(input('请输入你猜的数字: '))
  6. for i in range(9):
  7.     if c>x:
  8.         print('猜小了')
  9.         x=int(input('请输入你猜的数字: '))

  10.     if c<x:
  11.         print('猜大了')
  12.         x=int(input('请输入你猜的数字: '))
  13.     else:
  14.         print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
  15.         break
  16.         
复制代码

这里将第 11 行的:
  1. if c<x
复制代码

改成了:
  1. elif c < x
复制代码

因为这里您前面第 7 行就是 if 语句,
而这一行的意思就是判断用户猜的是不是小了,
但第 11 行 if c<x 就不应该这样写,
因为您前面写过 if c<x 判断过一次了,
下面应该直接写 elif c > x,
而不是 if c > x,
不然的话您这里这条语句无论前面的 if c<x  判断结果指真或假,
也会执行 if c<x  这一句,所以需要用到 elif 语句,
只有当上一条成立时才会执行下一条判断!


懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2022-1-24 22:31:39 | 显示全部楼层
import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
    if c==x:
        print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
        break
    else:
        if c<x:
            print('猜大了')
            x=int(input('请输入你猜的数字: '))
        else:
           print('猜小了')
           x=int(input('请输入你猜的数字: '))
        
这样就ok了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 08:42:14 | 显示全部楼层
import random
c=random.randint(1,101)
print('这是一个猜数字小游戏\n你有10次机会')
print(c) #测试
x=int(input('请输入你猜的数字: '))
for i in range(9):
    if c>x:
        print('猜小了')
        x=int(input('请输入你猜的数字: '))

    if c<x:
        print('猜大了')
        x=int(input('请输入你猜的数字: '))
    else:
        print(f'恭喜你猜对了!答案是{x}\n你一共猜了{i+2}次')
        break
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 13:15:50 | 显示全部楼层
为啥只在else后面加break,而if后面不加呢? 一次循环有了结果就要重新循环。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 10:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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