鱼C论坛

 找回密码
 立即注册
查看: 3087|回复: 11

新人学python,关与猜数字游戏的一些疑问,求助各位前辈

[复制链接]
发表于 2016-12-27 18:26:58 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 康小泡 于 2016-12-28 11:08 编辑

在小鱼儿的第四讲,关于猜数字游戏的改进方案需要实现以下几个功能:
1.猜数字次数的限制(已经写好,还有哪些实现的方式)
2.大小提示
3.不论输入是否为数字都不会导致程序崩溃(未解决)
4.个人问题,以下代码有哪些格式问题,需要注意哪些?
以下是我的代码:
  1. print('-----------------猜数字游戏-----------------')
  2. print('提示:你只有三次机会哦!')
  3. num = int(input('你觉的我给的数字是什么:'))
  4. a=0
  5. b=2
  6. if num == 8:
  7.    print('恭喜你,猜对了!')
  8. elif num < 8:
  9.         print('小了哦!')
  10. elif num > 8:
  11.     print("大了哦!")
  12. while num != 8 and a<2:
  13.     a=a+1
  14.     c=str(b)
  15.     print('你还有'+c+'次机会')
  16.     number = input('请重新输入:')
  17.     b=b-1
  18.     num = int(number)
  19.     if num == 8:
  20.         print('恭喜你,猜对了!')
  21.     elif num < 8:
  22.         print('小了哦!')
  23.     elif num >8:
  24.         print("大了哦!")
  25. print('三次机会已经用完啦!\n游戏结束!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-12-27 18:31:49 | 显示全部楼层
看到论坛格式规范,代码要用代码格式,帖子没用深表歉意思,以下是代码:
  1. print('-----------------猜数字游戏-----------------')
  2. print('提示:你只有三次机会哦!')
  3. num = int(input('你觉的我给的数字是什么:'))
  4. a=0
  5. b=2
  6. if num == 8:
  7.    print('恭喜你,猜对了!')
  8. elif num < 8:
  9.         print('小了哦!')
  10. elif num > 8:
  11.     print("大了哦!")
  12. while num != 8 and a<2:
  13.     a=a+1
  14.     c=str(b)
  15.     print('你还有'+c+'次机会')
  16.     number = input('请重新输入:')
  17.     b=b-1
  18.     num = int(number)
  19.     if num == 8:
  20.         print('恭喜你,猜对了!')
  21.     elif num < 8:
  22.         print('小了哦!')
  23.     elif num >8:
  24.         print("大了哦!")
  25. print('三次机会已经用完啦!\n游戏结束!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-27 20:08:19 | 显示全部楼层
北极树猫 发表于 2016-12-27 18:31
看到论坛格式规范,代码要用代码格式,帖子没用深表歉意思,以下是代码:

我也是新手哈,也是刚学完最开始的几课来练练手

我发现的几点问题哈:
1.没有实现如果用户输入的不是数字的提示
2.代码出现两次 if num ==8, elif ...., elif ... 这样会显得很冗长,建议合在一起
3. 出现了一个计数的a,     b 的出现就没有什么意义了,因为一个a 完全可以实现 a b 两者的功能,但是需要改一下a 的设定
4.最后的print .  如果是现在的代码,无论是尝试了几次,猜对了还是猜错了都会显示“三次机会已经用完啦!” 这显然是不合理的

以上是我提出的一点小意见
轻拍!

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
小甲鱼 + 3 + 3 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-27 20:43:46 | 显示全部楼层
本帖最后由 jackie-L 于 2016-12-27 20:56 编辑
  1. print('-----------------猜数字游戏-----------------')
  2. print('提示:你只有三次机会哦!')
  3. num = int(input('你觉的我给的数字是什么:'))
  4. a = 0
  5. b = 2
  6. if num == 8:
  7.    print('恭喜你,猜对了!')
  8. elif num < 8:
  9.         print('小了哦!')
  10. else:
  11.     print("大了哦!")
  12.    
  13. while a < 2:
  14.     a = a+1
  15.     print('你还有 %d 次机会' % b)
  16.     num = int(input('请重新输入:'))
  17.     b -= 1

  18.     if num == 8:
  19.         print('恭喜你,猜对了!')
  20.         break
  21.     elif num < 8:
  22.         print('小了哦!')
  23.     else:
  24.         print("大了哦!")
  25.     if a == 2:
  26.         print('三次机会已经用完啦!\n游戏结束!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 11:10:50 | 显示全部楼层

你这个应该只循环了2次才对,a<=2才会循环到2这一次吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 11:13:09 | 显示全部楼层
康小泡 发表于 2016-12-28 11:10
你这个应该只循环了2次才对,a

我只是表达他的意思,循环外有1次,循环2次,总共3次

评分

参与人数 1鱼币 +5 收起 理由
康小泡 + 5 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 13:56:26 | 显示全部楼层
jackie-L 发表于 2016-12-28 11:13
我只是表达他的意思,循环外有1次,循环2次,总共3次

对哟。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-28 15:09:09 | 显示全部楼层
可以简单创建一个列表写入可用答案范围:
  1. kyda=['0','1','2','3','4','5','6','7','8','9']
  2. x=input('请输入一个数字:')     
  3. if x in kyda:         
  4.     num=int(x)
复制代码




如果可用答案范围很大,手写太麻烦怎么办呢:
  1. for i in range(100):
  2.     kyda.append(str(i))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-12-28 15:34:22 | 显示全部楼层
Little.L 发表于 2016-12-27 20:08
我也是新手哈,也是刚学完最开始的几课来练练手

我发现的几点问题哈:

关于你说的
第一个问题,现在我也没解决,头疼~
第二个问题,恩确实觉得有点耿长,但不知道怎么合,能请教下吗?
第三个问题 ,这个比较好实现, 谢谢!
第四个问题,恩,我已经发现问题和改正了。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 15:37:54 | 显示全部楼层

谢谢,因为还没有学习后面的课程,所以不知道还有,这样简便的表达方式,又学到了一招呢~
  1. print('你还有 %d 次机会' %b )
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-28 15:53:32 | 显示全部楼层
余欲渔 发表于 2016-12-28 15:09
可以简单创建一个列表写入可用答案范围:

学到了,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-29 20:39:36 | 显示全部楼层
本帖最后由 Little.L 于 2016-12-29 20:40 编辑
北极树猫 发表于 2016-12-28 15:34
关于你说的
第一个问题,现在我也没解决,头疼~
第二个问题,恩确实觉得有点耿长,但不知道怎么合,能 ...


print('-----------------猜数字游戏-----------------')
print('提示:你只有三次机会哦!')
guess = input('你觉的我给的数字是什么:')
a = 3
while a > 1 and guess.isdigit():
    num = int(guess)
    if num == 8:
        print('恭喜你,猜对了!')
        break
    elif num > 8:
        print("大了哦!你还有",a-1,'次机会!')
        num = input('请重新输入:')        
    else:
        print('小了哦!你还有',a-1,'次机会!')
        num = input('请重新输入:')
    a -=1
print('游戏结束!')

这是我缩的哈,仅供参考
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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