|
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) 可能会返 ...
|