鱼C论坛

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

[已解决]如何让猜数小游戏判断输入的是什么类型数据然后执行

[复制链接]
发表于 2017-5-5 17:00:40 | 显示全部楼层 |阅读模式

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

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

x
我是新手学,断断续续学了没4天,我在不断的完善我的小程序。我的目的是让用户输入的时候程序判断输入是否符合小程序,经过我的努力,我让小程序在整数范围内可以判断是否符合小程序的输入条件,但是还是不够完美,因为当输入字符串时候程序执行到shuru=int(input("请输入1到10之间的一个整数:"))就会报错,因为这句将用户输入的数据类型做了整形转换。我想让小程序输入字符串时候执行print("对不起您输入的不是1到10之间的整数"),同样输入小数的时候也打印print("对不起您输入的不是1到10之间的整数")


  1. #-*-coding:utf-8-*-
  2. print("数字小游戏")
  3. from random import randint
  4. a=1
  5. while a<=3:
  6.     a+=1
  7.     xinxiang=randint(1,10)
  8.     list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,]
  9.     shuru=int(input("请输入1到10之间的一个整数:"))
  10.     if shuru in list:
  11.         print("您输入的是1到10之间的数字")
  12.         if shuru==xinxiang:
  13.             print("恭喜您猜对啦,哈哈,但是也没什么奖励给你幺")
  14.             break
  15.         elif shuru>xinxiang:
  16.             print("不好意思,你猜的数字有点大哦,往小猜吧,机会只有3次哦")
  17.         elif shuru<xinxiang:
  18.              print("嘿嘿,不好意思,你这次猜的有点小了,往大猜吧")

  19.     else:
  20.         print("对不起您输入的不是1到10之间的整数")
  21. print("游戏结束,不玩了")
复制代码
最佳答案
2017-5-5 17:19:18
本帖最后由 thexiosi 于 2017-5-5 17:23 编辑

你好

请参考如下代码:

代码
temp = input("请输入一个整数:")

while not temp.isdigit():        # 只有当用户输入整数时,才能退出while循环
    temp = input("输入错误,请输入整数:")


代码的运行情况
>>>
请输入一个整数:2.3
输入错误,请输入整数:abc
输入错误,请输入整数:3
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-5 17:19:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 thexiosi 于 2017-5-5 17:23 编辑

你好

请参考如下代码:

代码
temp = input("请输入一个整数:")

while not temp.isdigit():        # 只有当用户输入整数时,才能退出while循环
    temp = input("输入错误,请输入整数:")


代码的运行情况
>>>
请输入一个整数:2.3
输入错误,请输入整数:abc
输入错误,请输入整数:3
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-5 17:32:38 | 显示全部楼层
thexiosi 发表于 2017-5-5 17:19
你好

请参考如下代码:

非常感谢,我就是不知道这个方法,刚才试了试,的确能实现我的目的,只不过我需要时间来理解和融入我的小游戏,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-5 17:46:50 | 显示全部楼层
浪里花 发表于 2017-5-5 17:32
非常感谢,我就是不知道这个方法,刚才试了试,的确能实现我的目的,只不过我需要时间来理解和融入我的小 ...

不客气,握爪,我也是小白,大家一起加油↖(^ω^)↗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-7 11:25:10 | 显示全部楼层
我看到你加我好友了,可惜我权限不够呢,等我有权限的时候加你吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-7 11:26:14 | 显示全部楼层
thexiosi 发表于 2017-5-5 17:46
不客气,握爪,我也是小白,大家一起加油↖(^ω^)↗

看到你加我了,我权限不够呢,等我权限够了加你吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 07:07:42 | 显示全部楼层
浪里花 发表于 2017-5-7 11:26
看到你加我了,我权限不够呢,等我权限够了加你吧

OKOK ↖(^ω^)↗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-8 10:36:45 | 显示全部楼层

经过你的提示,我把我的小程序修改成了这样子,哈哈,感觉好开心啊
  1. #-*-coding:utf-8-*-
  2. print("-------------------------猜数字小游戏---------------------------")
  3. from random import randint  #导入随机函数
  4. xinxiang=randint(1,10)   #定义随机数的取值范围
  5. a=0 #定义进入循环条件
  6. while a<3:  #符合条件的进入循环体
  7.     shuru = input("请输入一个正整数:")  #让用户输入一个正整数,但是这里的变量shuru是一个字符串类型
  8.     a+=1    #循环体控制循环次数的累加器
  9.     if shuru.isdigit(): #这里的if语句是判断用户输入的是不是数字变量,是就执行下去,不是就执行此if对应的else
  10.         shuru=int(shuru)    #当输入的变量符合上层条件,这里讲字符串转为int整型变量,否则无法和随机数做比较
  11.         if shuru==xinxiang: #用户输入等于随机数,输出猜对了
  12.             print("恭喜您猜对了,不过没什么奖励给你哦")
  13.             break   #程序没必要继续执行下边的,直接跳出循环来终结循环次数
  14.         elif shuru<xinxiang:    #用户输入小于随机数打印小了
  15.             print("不好意思,猜小了,猜小了")
  16.         elif shuru>xinxiang:    #用户输入大于随机数打印大了
  17.             print("不好意思,猜大了,猜大了")
  18.     else:   #这里的else语句下面的是当用户不按程序规则输入时候执行的语句
  19.         list=["由于您输入的不是整数您浪费了",a,"次机会了"]    #这里提示用户不按要求输入浪费了几次机会
  20.         print(list)
  21. print("不和你玩了,游戏结束") #循环结束打印游戏结束
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-8 12:33:03 | 显示全部楼层
  很棒很棒
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 22:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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