鱼C论坛

 找回密码
 立即注册
查看: 2442|回复: 7

改进小游戏

[复制链接]
发表于 2017-3-19 10:33:08 | 显示全部楼层 |阅读模式

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

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

x
#!/usr/bin/python
#-*coding:utf-8-*-
import  random
times=3
secret=random.randint(1,10)
print secret
print "猜猜我心里的数字吧"
while (times>0):
    temp=raw_input()
    while not temp.isdigit():
        print " 请输入一个整数"
    times-=1
    if temp==secret:
           print '猜对了'
    else:
        if temp<secret:
            print'大点'
        else:
            if temp>secret:
                print'小点'
        if times > 0:
            print '再猜一次吧'
        else:
            print '机会用完了GAMEOVER'

当输入一个浮点型数的时候会不停输出 请输入一个整数 当输入11的时候会提示小点 出现逻辑错误 如何解决



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-3-19 10:49:17 | 显示全部楼层
while not temp.isdigit()你这个循环里面并没有让重新输入新的输,你的temp值一直不变,导致一直处于这个循环中
当你输入11的时候,在python2中是直接换成int类型的,int是没有isdigit这个方法的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-19 11:00:20 | 显示全部楼层
不知道为什么会出错 求指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-19 11:46:13 | 显示全部楼层
同志
第六行你都把答案打印出来了,你还让别人猜什么
报错的地方
截个图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-19 12:20:23 | 显示全部楼层
告诉你的判断变量类型的方法:
isinstance(temp,int)#判断temp是否为整数
isinstance(temp,float)#判断temp是否为浮点数
等等
同时你需要注意raw_input()这个方法会把输入的值都转换为str类型,所以你需要用input(),输入的是什么类型就是什么类型
还有不能用while循环判断temp是否为整数,因为你没在里面设置跳出循环的语句,一旦条件为真,就死循环了!!!
最后,你的逻辑问题:if temp<secret:这句话明明是判断temp是否小于secret,结果你紧接着在下面写了一句:print'大点',只能说太粗心了
帮你修改后的代码:
  1. #coding=cp936
  2. #用的是cp936编码方式
  3. import  random
  4. times=3
  5. secret=random.randint(1,10)
  6. print secret
  7. print "猜猜我心里的数字吧"
  8. while (times>0):
  9.     temp=input()#修改处1
  10.     if not isinstance(temp,int):#修改处2
  11.         print " 请输入一个整数"
  12.     else:
  13.         if temp==secret:
  14.                print '猜对了'
  15.                break
  16.         else:
  17.             if temp>secret:#修改处3
  18.                 print'大点'
  19.             else:
  20.                 print'小点'
  21.         times-=1        
  22.         if times > 0:
  23.             print '再猜一次吧'
  24.         else:
  25.             print '机会用完了GAMEOVER'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 16:20:53 | 显示全部楼层
新手·ing 发表于 2017-3-19 11:46
同志
第六行你都把答案打印出来了,你还让别人猜什么
报错的地方

那是我想看看随机数是多少
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 16:22:02 | 显示全部楼层
lumber2388779 发表于 2017-3-19 10:49
while not temp.isdigit()你这个循环里面并没有让重新输入新的输,你的temp值一直不变,导致一直处于这个循 ...

请问我怎么才能让他重新输入新的数呢?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-20 19:35:56 | 显示全部楼层
18813034116 发表于 2017-3-19 12:20
告诉你的判断变量类型的方法:
isinstance(temp,int)#判断temp是否为整数
isinstance(temp,float)#判断te ...

谢谢呦 已经解决了 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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