鱼C论坛

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

猜数字小游戏找bug

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

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

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

x
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
        

连续猜两个相同的数字就会出bug,直接显示猜对了
这是一个猜数字小游戏
你有10次机会
17
请输入你猜的数字: 7
猜小了
请输入你猜的数字: 7
恭喜你猜对了!答案是7
你一共猜了2次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-24 18:21:52 | 显示全部楼层
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('请输入你猜的数字: '))
    elif c<x:
        print('猜大了')
        x=int(input('请输入你猜的数字: '))
    else:
        print(f'恭喜你猜对了!答案是{c}\n你一共猜了{i+2}次')
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-24 18:23:02 | 显示全部楼层
您可以把代码改成这样:
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
        
这里将第 11 行的:
if c<x
改成了:
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 语句,
只有当上一条成立时才会执行下一条判断!


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

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
想知道小甲鱼最近在做啥?请访问 -> 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了
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 08:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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