鱼C论坛

 找回密码
 立即注册
查看: 2385|回复: 8

[已解决]求大佬能帮助

[复制链接]
发表于 2021-2-7 21:22:25 | 显示全部楼层 |阅读模式
2鱼币
print('----------sss--------------')
import random
secret=random.randint(1,10)
times=3
temp=input('请输入数字:')
guess=0
while (guess !=secret)and (times>0):
    if temp.isdigit():
        guess=int(temp)
        if guess==secret:
            print('小蛔虫')
        else:
            if guess>secret:
                print('大了大了')
            else:
                print('小了小了')
            if times>1:
                temp=input('请再输入一次:')
            else:
                print('机会用完了')
    else:
        temp=input('请输入一个整数:')
    times=times-1
print('游戏结束')

期望结果:
请输入数字: f
请输入一个整数:f
请输入一个整数:f
游戏结束
最佳答案
2021-2-7 21:22:26
print("----------sss--------------")
import random

secret = random.randint(1, 10)
times = 3

guess = 0
while (guess != secret) and (times > 0):
    temp = input("请输入数字:")
    times = times - 1

    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("小蛔虫")
        else:
            if guess > secret:
                print("大了大了")
            else:
                print("小了小了")
    if not times:
        print("机会用完了")
print("游戏结束")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-7 21:22:26 | 显示全部楼层    本楼为最佳答案   
print("----------sss--------------")
import random

secret = random.randint(1, 10)
times = 3

guess = 0
while (guess != secret) and (times > 0):
    temp = input("请输入数字:")
    times = times - 1

    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("小蛔虫")
        else:
            if guess > secret:
                print("大了大了")
            else:
                print("小了小了")
    if not times:
        print("机会用完了")
print("游戏结束")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 09:04:40 | 显示全部楼层
请问你的问题是?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-8 10:36:37 | 显示全部楼层
Judie 发表于 2021-2-8 09:04
请问你的问题是?

请输入数字:f
请输入一个整数:f
请输入一个整数:f
请输入一个整数:f
游戏结束
这是我的代码运行结果,我想让它变成我的期望结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 12:42:48 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-2-8 12:46 编辑

你有没有发现一件事,一个很关键的问题,你的 times = times - 1 在无论是否为数字的情况下,都会 - 1

而我们的期望是,只有它是数字的情况下,才会 - 1,也就是剩余机会 - 1

所以应该把它放在 if temp.isdigit(): 的里面对不对
print('----------sss--------------')
import random
secret=random.randint(1,10)
times=3
temp=input('请输入数字:')
guess=0
while (guess !=secret)and (times>0):
    if temp.isdigit():
        guess=int(temp)
        if guess==secret:
            print('小蛔虫')
        else:
            if guess>secret:
                print('大了大了')
            else:
                print('小了小了')
            if times>1:
                temp=input('请再输入一次:')
            else:
                print('机会用完了')
        times=times-1
    else:
        temp=input('请输入一个整数:')
    
print('游戏结束')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 12:47:47 | 显示全部楼层


老哥,这个还是没解决问题啊,times -1 那个得放在 if temp.isdigit(): 里面,不然跑起来还是会如同楼主说的那样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 12:50:47 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-8 12:47
老哥,这个还是没解决问题啊,times -1 那个得放在 if temp.isdigit(): 里面,不然跑起来还是会如同楼 ...

你运行一下不就知道了,我只是没在 猜对了 后面加 break 跳出循环而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 13:04:28 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-2-8 13:06 编辑
°蓝鲤歌蓝 发表于 2021-2-8 12:50
你运行一下不就知道了,我只是没在 猜对了 后面加 break 跳出循环而已




其实也不需要 break 因为 while 那里会不满足 guess != secret 的条件,运行不了


可能我误解了楼主的意思?我以为楼主想实现的是:


输入的不是数字的话,次数不会 - 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-8 13:56:55 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-8 13:04
其实也不需要 break 因为 while 那里会不满足 guess != secret 的条件,运行不了

我只是自己觉得猜了就要 -1,不知道楼主怎么想的。
break 用不用都没关系了,我一般都只回答楼主 说的那个具体问题,其他地方如果也有问题,我一般也不会说。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 03:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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