鱼C论坛

 找回密码
 立即注册
查看: 948|回复: 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:  请称呼如整数
想知道小甲鱼最近在做啥?请访问 -> 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 我怎么没想到你这法子...我愚昧了

查看全部评分

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

使用道具 举报

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

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

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

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

完整代码:
import random
daan = random.randint(1,2)
cishu = 3
while True:
    temp = input("请输入一个数字:")
    if '.' in temp:
        print('你输入的是小数,请你重新输入!')
        continue
    break
temp = int(temp)
if temp == daan:
    print("太强了 一次就猜中了")
while (temp != daan) and (cishu > 0):
    while True:
        temp = input("重新猜吧,猜错了:")
        if '.' in temp:
            print('你输入的是小数,请你重新输入!')
            continue
        break
    temp = int(temp)
    cishu = cishu - 1
    if temp == daan:
        print("猜对了")
        cishu = cishu - 3
    else:#
        if temp > daan:#
           print("大了大了")
        else:
           print("小了小了")
        cishu = cishu - 1#
print("游戏结束不玩了")

评分

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

查看全部评分

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

使用道具 举报

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

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

只要能实现结果,不要看过程。反正这个不要求过程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

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

可以这么改一下:
temp = input("重新猜吧")
if str(int(float(temp))) != temp:
    ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 00:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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