| 
 | 
 
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('请重新正确输入:')
 isdigit()  是一个字符串方法,它用于检查字符串是否只包含数字。对于非字符串数据类型,例如整数或浮点数,该方法无法调用。你的变量  i  是整数,然后变成了浮点数,所以你不能在  i  上调用  isdigit() 。 
 
如果你希望检查一个变量是否是整数类型,你可以使用 Python 内置的  isinstance()  函数,像这样: 
 
 
 
不过在你的程序中,由于  i  是由算术操作得到的,有可能会变成浮点数。这样, isinstance(i, int)  可能会返回  False ,即使  i  是一个整数值的浮点数(例如,3.0)。如果你希望检查  i  是否等于其整数形式(即,检查  i  是否有小数部分),你可以使用以下表达式: 
 
 
 
如果  i  是浮点数且等于其整数形式,或者  i  本身就是整数,那么这个表达式将返回  True 。 
 
此外,注意在你的程序中,你用  i/2  计算了新的  i  值,这可能会产生浮点数结果。如果你想保持结果为整数,可以使用  //  运算符进行整数除法,像这样: 
 
 
 
这样,无论  i  是否能被2整除,结果总是一个整数。这意味着你可以始终用  isinstance(i, int)  来检查  i  是否为整数。 
 
 
 |   
 
 
最佳答案
查看完整内容 
isdigit()  是一个字符串方法,它用于检查字符串是否只包含数字。对于非字符串数据类型,例如整数或浮点数,该方法无法调用。你的变量  i  是整数,然后变成了浮点数,所以你不能在  i  上调用  isdigit() 。
如果你希望检查一个变量是否是整数类型,你可以使用 Python 内置的  isinstance()  函数,像这样:
不过在你的程序中,由于  i  是由算术操作得到的,有可能会变成浮点数。这样, isinstance(i, int)  可能会返 ... 
 
 
 
 
 
 
 |