鱼C论坛

 找回密码
 立即注册
查看: 1133|回复: 4

[已解决]判断是否为int代码镶入

[复制链接]
发表于 2020-5-27 23:56:54 | 显示全部楼层 |阅读模式

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

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

x
import random
daan = random.randint(1,2)
cishu = 3
temp = int(input("请输入一个数字:"))
if temp == daan:
    print("太强了 一次就猜中了")
while (temp != daan) and (cishu > 0):
    temp = int(input(" 重新猜吧"))
    cishu = cishu - 1
    if temp == daan:
        print("猜对了")
        cishu = cishu - 3
    else:#
        if temp > daan:#
           print("大了大了")
        else:
           print("小了小了")
        cishu = cishu - 1#
print("游戏结束不玩了")
我想在这里面镶入一个判断输入的是不是整数类型的代码  不知道加在哪里
最佳答案
2020-5-28 00:03:27
int 一个浮点类型 会去掉浮点后值,这导致会和原来的值不想等。

先获得输入的浮点类型的str值,比对一下和int转换过的str值是否还相等

temp = int(input(" 重新猜吧"))  改成

temp = input(" 重新猜吧")
if str(int(temp)) != temp:  请称呼如整数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-28 00:03:27 | 显示全部楼层    本楼为最佳答案   
int 一个浮点类型 会去掉浮点后值,这导致会和原来的值不想等。

先获得输入的浮点类型的str值,比对一下和int转换过的str值是否还相等

temp = int(input(" 重新猜吧"))  改成

temp = input(" 重新猜吧")
if str(int(temp)) != temp:  请称呼如整数

评分

参与人数 1荣誉 +2 鱼币 +3 收起 理由
Twilight6 + 2 + 3 我怎么没想到你这法子...我愚昧了

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 00:04:27 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-28 00:11 编辑

不用判断,int 直接把你输入的值转为整型了 也就是整数

而且 random.randint  随机到 的也永远是整数

想判断小数的话可以这样写:
  1. while True:
  2.     temp = input("请输入一个数字:")
  3.     if '.' in temp:
  4.         print('你输入的是浮点型的值,请你重新输入!')
  5.         continue
  6.     break
  7. temp = int(temp)
复制代码


完整代码:
  1. import random
  2. daan = random.randint(1,2)
  3. cishu = 3
  4. while True:
  5.     temp = input("请输入一个数字:")
  6.     if '.' in temp:
  7.         print('你输入的是小数,请你重新输入!')
  8.         continue
  9.     break
  10. temp = int(temp)
  11. if temp == daan:
  12.     print("太强了 一次就猜中了")
  13. while (temp != daan) and (cishu > 0):
  14.     while True:
  15.         temp = input("重新猜吧,猜错了:")
  16.         if '.' in temp:
  17.             print('你输入的是小数,请你重新输入!')
  18.             continue
  19.         break
  20.     temp = int(temp)
  21.     cishu = cishu - 1
  22.     if temp == daan:
  23.         print("猜对了")
  24.         cishu = cishu - 3
  25.     else:#
  26.         if temp > daan:#
  27.            print("大了大了")
  28.         else:
  29.            print("小了小了")
  30.         cishu = cishu - 1#
  31. print("游戏结束不玩了")
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
Stubborn + 1 + 1 + 1 Twilight6写的非常棒

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-28 00:22:21 | 显示全部楼层
Twilight6 发表于 2020-5-28 00:04
不用判断,int 直接把你输入的值转为整型了 也就是整数

而且 random.randint  随机到 的也永远是整数

只要能实现结果,不要看过程。反正这个不要求过程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-28 08:18:23 | 显示全部楼层
Stubborn 发表于 2020-5-28 00:03
int 一个浮点类型 会去掉浮点后值,这导致会和原来的值不想等。

先获得输入的浮点类型的str值,比对一下 ...

这个方法好像不行……例如把'3.14'转成整数int()会报错……

可以这么改一下:
  1. temp = input("重新猜吧")
  2. if str(int(float(temp))) != temp:
  3.     ...
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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