鱼C论坛

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

[已解决]第五讲课后题小游戏改进有点问题

[复制链接]
发表于 2015-10-6 21:16:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ~风介~ 于 2015-10-7 18:51 编辑
import random

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

print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
    temp = input()
    
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            if times > 0:
                print("再试一次吧:", end='')
            else:
                print("机会用光咯T_T")
    else:
        print("抱歉,您的输入有误,请输入一个整数:", end='')

    times = times - 1 # 用户每输入一次,可用机会就-1

print("游戏结束,不玩啦^_^")


零基础入门python的第五讲的课后题好像是有点问题的吧,例如我执行的结果会是这样的:
------------------我爱鱼C工作室------------------
不妨猜一下小甲鱼现在心里想的是哪个数字: 1
嘿,小了,小了~~~
再试一次吧:2
嘿,小了,小了~~~
再试一次吧:3
嘿,小了,小了~~~
再试一次吧:游戏结束,不玩啦^_^

而且这个条件是没用到的
else:
                print("机会用光咯T_T")

求教这个可以怎么改进呢,试了挺久都没成功
最佳答案
2015-10-7 18:59:01
import random

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


print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
    temp = input()
    
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            
    else:
        print("抱歉,您的输入有误,请输入一个整数:", end='')

    times = times - 1 # 用户每输入一次,可用机会就-1
    if times > 0:
            print("再试一次吧:", end='')
    else:
            print("机会用光咯T_T")

print("游戏结束,不玩啦^_^")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-7 11:19:35 | 显示全部楼层
times = 3
import random

secret = random.randint(1,10)

print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
     temp = input()
     
     if temp.isdigit():
         guess = int(temp)
         if guess == secret:
             print("我草,你是小甲鱼心里的蛔虫吗?!")
             print("哼,猜中了也没有奖励!")
         else:
             if guess > secret:
                 print("哥,大了大了~~~")
             else:
                 print("嘿,小了,小了~~~")
             if times - 1 > 0:
                 print("再试一次吧:", end='')
             else:
                 print("机会用光咯T_T")
     else:
         print("抱歉,您的输入有误,请输入一个整数:", end='')

     times = times - 1 # 用户每输入一次,可用机会就-1
print("游戏结束,不玩啦^_^")
while 的条件要求(times > 0) 才会执行while的语句
所以内部的if times - 1 > 0:永远为真
else永远得不到执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-7 18:59:01 | 显示全部楼层    本楼为最佳答案   
import random

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


print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
    temp = input()
    
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            
    else:
        print("抱歉,您的输入有误,请输入一个整数:", end='')

    times = times - 1 # 用户每输入一次,可用机会就-1
    if times > 0:
            print("再试一次吧:", end='')
    else:
            print("机会用光咯T_T")

print("游戏结束,不玩啦^_^")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-7 19:00:15 | 显示全部楼层
对times的判断要放到操作times之后 —— 因为times小于0后就没办法进入while循环了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 12:51:32 | 显示全部楼层
风介的答案有个小BUG,就是猜对了还是会出现:"机会用光咯"
应该在猜对的时候用break退出循环。
import random
secret=random.randint(1,20)
times=0
print('不妨猜一下我现在心里想的是哪一个数字:', end='')
name=0
while name!=secret and times<4:
    names = input('')
    if names.isdigit():
        name=int(names)
        if name == secret:
            print('你难道是我心里的蛔虫!')
            print('哼,猜中了也没有奖励!')
            break
        else:
            if name > secret:
                print('哥,大了大了')
            else:
                print('嘿,小了小了!')
    else:
        print('抱歉,您输入有误,请输入一个整数:',end='')
    times=times+1
    if times<4:
        print('再试一次吧:',end='')
    else:
        print('机会用光咯!')
print('游戏结束,不玩啦!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 16:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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