鱼C论坛

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

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

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

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

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

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

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

    else:
        print("对不起您输入的不是1到10之间的整数")
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
想知道小甲鱼最近在做啥?请访问 -> 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

请参考如下代码:

非常感谢,我就是不知道这个方法,刚才试了试,的确能实现我的目的,只不过我需要时间来理解和融入我的小游戏,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

不客气,握爪,我也是小白,大家一起加油↖(^ω^)↗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-5-7 11:25:10 | 显示全部楼层
我看到你加我好友了,可惜我权限不够呢,等我有权限的时候加你吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

看到你加我了,我权限不够呢,等我权限够了加你吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

OKOK ↖(^ω^)↗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2017-5-8 12:33:03 | 显示全部楼层
  很棒很棒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 22:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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