鱼C论坛

 找回密码
 立即注册
查看: 1026|回复: 12

[已解决]改编的猜数字游戏,运行时出现问题

[复制链接]
发表于 2018-8-19 20:34:38 | 显示全部楼层 |阅读模式

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

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

x
本是小甲鱼的猜数字游戏,被我增加了一个格式识别部分,结果IDLE在输入字符串时报错,并没有执行我所需的情况(详见图片)。
但是如果使用命令提示符运行程序的话,又正常。
附上源代码:
  1. import random
  2. secret = random.randint(1,10)
  3. print('------------------程序加载成功!------------------')
  4. print("猜一下我现在心里想的是哪个数字:")
  5. temp = input()
  6. while not (temp.isdigit() and len(temp) == 1):
  7.     if not temp.isdigit():
  8.         print("输入数据错误,请重新输入:")
  9.         temp = input()
  10.     elif len(temp) != 1:
  11.         print("输入数据错误,请重新输入:")
  12.         temp = input()
  13. guess = int(temp)
  14. while guess != secret:
  15.     print("哎呀,猜错了,请重新输入吧:")
  16.     temp = input()
  17.     guess = int(temp)
  18.     if guess == secret:
  19.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  20.         print("哼,猜中了也没有奖励!")
  21.     else:
  22.         if guess > secret:
  23.             print("哥,大了大了~~~")
  24.         else:
  25.             print("嘿,小了,小了~~~")
  26. print("游戏结束,不玩啦^_^")
复制代码


最佳答案
2018-8-20 09:07:43
有时候这个猜密码的看多了,会怀疑肚子里生了蛔虫,,

  1. import random
  2. secret = random.randint(0,9)#随机给出正确答案
  3. print('------------------程序加载成功!------------------')
  4. temp = input("猜一下我现在心里想的是哪个数字(是一个数字哦!):")
  5. while True:
  6.     while not (temp.isdigit() and len(temp) == 1):#判断输入内容类型及长度是否符合条件,不符合则循环
  7.         if not temp.isdigit():#判断数据类型是否出错
  8.             temp = input("输入数据类型错误,请重新输入:")
  9.         elif len(temp) != 1:#判断数据长度是否出错
  10.             temp = input("输入数据长度错误,请重新输入:")
  11.     guess = int(temp)
  12.     if guess == secret:
  13.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.         print("哼,猜中了也没有奖励!")
  15.         break
  16.     else:
  17.         if guess > secret:
  18.             print("哥,大了大了~~~")
  19.         else:
  20.             print("嘿,小了,小了~~~")        
  21.         temp = input("哎呀,猜错了,请重新输入吧:")
  22. print("游戏结束,不玩啦^_^")
复制代码
BaiduShurufa_2018-8-19_20-25-33.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-20 09:07:43 | 显示全部楼层    本楼为最佳答案   
有时候这个猜密码的看多了,会怀疑肚子里生了蛔虫,,

  1. import random
  2. secret = random.randint(0,9)#随机给出正确答案
  3. print('------------------程序加载成功!------------------')
  4. temp = input("猜一下我现在心里想的是哪个数字(是一个数字哦!):")
  5. while True:
  6.     while not (temp.isdigit() and len(temp) == 1):#判断输入内容类型及长度是否符合条件,不符合则循环
  7.         if not temp.isdigit():#判断数据类型是否出错
  8.             temp = input("输入数据类型错误,请重新输入:")
  9.         elif len(temp) != 1:#判断数据长度是否出错
  10.             temp = input("输入数据长度错误,请重新输入:")
  11.     guess = int(temp)
  12.     if guess == secret:
  13.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  14.         print("哼,猜中了也没有奖励!")
  15.         break
  16.     else:
  17.         if guess > secret:
  18.             print("哥,大了大了~~~")
  19.         else:
  20.             print("嘿,小了,小了~~~")        
  21.         temp = input("哎呀,猜错了,请重新输入吧:")
  22. print("游戏结束,不玩啦^_^")
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
科技爱好者 + 5 + 5 + 3 谢谢!

查看全部评分

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

使用道具 举报

发表于 2018-8-19 20:40:35 | 显示全部楼层
你字符串输入就不用带引号啦。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 20:54:35 | 显示全部楼层
塔利班 发表于 2018-8-19 20:40
你字符串输入就不用带引号啦。。

我就是要测试输入字符串会怎样啊,防止那些人啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-19 20:57:44 | 显示全部楼层
科技爱好者 发表于 2018-8-19 20:54
我就是要测试输入字符串会怎样啊,防止那些人啊。

你输入的肯定是字符串,不过带引号的可不能用int
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 21:10:06 | 显示全部楼层
塔利班 发表于 2018-8-19 20:57
你输入的肯定是字符串,不过带引号的可不能用int

先不说那些,先说方框里的和程序。
还有,“1”是可以int的啊。
我数字符串就是为了测试有没有识别字符串的功能啊,要是测试失败了,肯定就不行啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-19 21:12:51 | 显示全部楼层
科技爱好者 发表于 2018-8-19 21:10
先不说那些,先说方框里的和程序。
还有,“1”是可以int的啊。
我数字符串就是为了测试有没有识别字符 ...

你输入"1"的时候temp是'"1"'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 21:17:25 | 显示全部楼层
塔利班 发表于 2018-8-19 21:12
你输入"1"的时候temp是'"1"'

?不理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-19 21:19:29 | 显示全部楼层
你在命令行a=input()
输入"1"
再输入a看看是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 21:26:50 | 显示全部楼层
塔利班 发表于 2018-8-19 21:19
你在命令行a=input()
输入"1"
再输入a看看是什么

哦!懂了!谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-19 21:49:37 | 显示全部楼层
塔利班 发表于 2018-8-19 21:19
你在命令行a=input()
输入"1"
再输入a看看是什么

你有没有办法解决在第一次输对类型长度,但是猜错的情况下,再次输入错误的类型(长度错误随时监视,但是类型不行),报错的情况?
附上代码:
  1. import random
  2. secret = random.randint(0,9)#随机给出正确答案
  3. print('------------------程序加载成功!------------------')
  4. print("猜一下我现在心里想的是哪个数字(是一个数字哦!):")
  5. temp = input()
  6. while not (temp.isdigit() and len(temp) == 1):#判断输入内容类型及长度是否符合条件,不符合则循环
  7.     if not temp.isdigit():#判断数据类型是否出错
  8.         print("输入数据类型错误,请重新输入:")
  9.         temp = input()
  10.     elif len(temp) != 1:#判断数据长度是否出错
  11.         print("输入数据长度错误,请重新输入:")
  12.         temp = input()
  13. guess = int(temp)
  14. while guess != secret:#判断对错
  15.     while not (temp.isdigit() and len(temp) == 1):#代码中“暗哨”
  16.         if not temp.isdigit():
  17.             print("输入数据类型错误,请重新输入:")
  18.             temp = input()
  19.         elif len(temp) != 1:
  20.             print("输入数据长度错误,请重新输入:")
  21.             temp = input()
  22.     guess = int(temp)
  23.     print("哎呀,猜错了,请重新输入吧:")
  24.     while not (temp.isdigit() and len(temp) == 1):#代码中“暗哨”
  25.         if not temp.isdigit():
  26.             print("输入数据类型错误,请重新输入:")
  27.             temp = input()
  28.         elif len(temp) != 1:
  29.             print("输入数据长度错误,请重新输入:")
  30.     temp = input()
  31.     guess = int(temp)
  32.     if guess == secret:
  33.         print("我草,你是小甲鱼心里的蛔虫吗?!")
  34.         print("哼,猜中了也没有奖励!")
  35.     else:
  36.         if guess > secret:
  37.             print("哥,大了大了~~~")
  38.         else:
  39.             print("嘿,小了,小了~~~")
  40. if guess == secret:
  41.     print("我草,你是小甲鱼心里的蛔虫吗?!")
  42.     print("哼,猜中了也没有奖励!")
  43. print("游戏结束,不玩啦^_^")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-19 21:57:10 | 显示全部楼层
科技爱好者 发表于 2018-8-19 21:49
你有没有办法解决在第一次输对类型长度,但是猜错的情况下,再次输入错误的类型(长度错误随时监视,但是 ...

我看着有点懵,得睡觉了,明天早上接人,你着急就等其他大神回复,不着急就明天上午,
我建议你学习下甲鱼老师代码,不要写的太复杂。。逻辑还没保障
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-1-4 18:38:57 | 显示全部楼层
塔利班 发表于 2018-8-19 21:57
我看着有点懵,得睡觉了,明天早上接人,你着急就等其他大神回复,不着急就明天上午,
我建议你学习下甲 ...

好的,谢谢提醒。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 04:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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