浪里花 发表于 2017-5-5 17:00:40

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

我是新手学,断断续续学了没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 =
    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("游戏结束,不玩了")

thexiosi 发表于 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

浪里花 发表于 2017-5-5 17:32:38

thexiosi 发表于 2017-5-5 17:19
你好

请参考如下代码:


非常感谢,我就是不知道这个方法,刚才试了试,的确能实现我的目的,只不过我需要时间来理解和融入我的小游戏,谢谢{:5_91:}

thexiosi 发表于 2017-5-5 17:46:50

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

不客气,握爪,我也是小白,大家一起加油↖(^ω^)↗

浪里花 发表于 2017-5-7 11:25:10

我看到你加我好友了,可惜我权限不够呢,等我有权限的时候加你吧

浪里花 发表于 2017-5-7 11:26:14

thexiosi 发表于 2017-5-5 17:46
不客气,握爪,我也是小白,大家一起加油↖(^ω^)↗

看到你加我了,我权限不够呢,等我权限够了加你吧

thexiosi 发表于 2017-5-8 07:07:42

浪里花 发表于 2017-5-7 11:26
看到你加我了,我权限不够呢,等我权限够了加你吧

OKOK ↖(^ω^)↗

浪里花 发表于 2017-5-8 10:36:45

thexiosi 发表于 2017-5-8 07:07
OKOK ↖(^ω^)↗

经过你的提示,我把我的小程序修改成了这样子,哈哈,感觉好开心啊
#-*-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("不和你玩了,游戏结束") #循环结束打印游戏结束

thexiosi 发表于 2017-5-8 12:33:03

{:5_109:}很棒很棒
页: [1]
查看完整版本: 如何让猜数小游戏判断输入的是什么类型数据然后执行