鱼C论坛

 找回密码
 立即注册
查看: 2007|回复: 1

[已解决]isdigit怎么调用

[复制链接]
发表于 2023-6-29 09:00:16 | 显示全部楼层 |阅读模式
6鱼币
while 1:
    digit1 = input('请输入一个自然数:')
    if digit1.isdigit():
        digit1 = int(digit1)
        if digit1 % 2 == True:
            i = digit1 * 3 + 1
            print('%d*3+1 = %d' % (digit1, i))
            while 1:
                if i.isdigit():#这一行我想判断变量i是否是整数类型,不是的话退出结果调用不到是为啥
                    break
                print('%d/2 = %d' % (i, i/2))
                i = i / 2
                if i <= 1:
                    break
        elif digit1 % 2 == False:
            i = digit1
            while 1:
                print('%d/2 = %d' % (i, i/2))
                i = i / 2
                if i <= 1:
                    break
    else:
        print('请重新正确输入:')
最佳答案
2023-6-29 09:00:17
isdigit()  是一个字符串方法,它用于检查字符串是否只包含数字。对于非字符串数据类型,例如整数或浮点数,该方法无法调用。你的变量  i  是整数,然后变成了浮点数,所以你不能在  i  上调用  isdigit() 。

如果你希望检查一个变量是否是整数类型,你可以使用 Python 内置的  isinstance()  函数,像这样:
isinstance(i, int)

不过在你的程序中,由于  i  是由算术操作得到的,有可能会变成浮点数。这样, isinstance(i, int)  可能会返回  False ,即使  i  是一个整数值的浮点数(例如,3.0)。如果你希望检查  i  是否等于其整数形式(即,检查  i  是否有小数部分),你可以使用以下表达式:
i == int(i)

如果  i  是浮点数且等于其整数形式,或者  i  本身就是整数,那么这个表达式将返回  True 。

此外,注意在你的程序中,你用  i/2  计算了新的  i  值,这可能会产生浮点数结果。如果你想保持结果为整数,可以使用  //  运算符进行整数除法,像这样:
i = i // 2

这样,无论  i  是否能被2整除,结果总是一个整数。这意味着你可以始终用  isinstance(i, int)  来检查  i  是否为整数。

最佳答案

查看完整内容

isdigit() 是一个字符串方法,它用于检查字符串是否只包含数字。对于非字符串数据类型,例如整数或浮点数,该方法无法调用。你的变量 i 是整数,然后变成了浮点数,所以你不能在 i 上调用 isdigit() 。 如果你希望检查一个变量是否是整数类型,你可以使用 Python 内置的 isinstance() 函数,像这样: 不过在你的程序中,由于 i 是由算术操作得到的,有可能会变成浮点数。这样, isinstance(i, int) 可能会返 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-29 09:00:17 | 显示全部楼层    本楼为最佳答案   
isdigit()  是一个字符串方法,它用于检查字符串是否只包含数字。对于非字符串数据类型,例如整数或浮点数,该方法无法调用。你的变量  i  是整数,然后变成了浮点数,所以你不能在  i  上调用  isdigit() 。

如果你希望检查一个变量是否是整数类型,你可以使用 Python 内置的  isinstance()  函数,像这样:
isinstance(i, int)

不过在你的程序中,由于  i  是由算术操作得到的,有可能会变成浮点数。这样, isinstance(i, int)  可能会返回  False ,即使  i  是一个整数值的浮点数(例如,3.0)。如果你希望检查  i  是否等于其整数形式(即,检查  i  是否有小数部分),你可以使用以下表达式:
i == int(i)

如果  i  是浮点数且等于其整数形式,或者  i  本身就是整数,那么这个表达式将返回  True 。

此外,注意在你的程序中,你用  i/2  计算了新的  i  值,这可能会产生浮点数结果。如果你想保持结果为整数,可以使用  //  运算符进行整数除法,像这样:
i = i // 2

这样,无论  i  是否能被2整除,结果总是一个整数。这意味着你可以始终用  isinstance(i, int)  来检查  i  是否为整数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 01:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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