在 Python 中检查一个数字是 Integer 还是 Float

目录

Check if a number is an int or float in Python

  1. 在 Python 中检查一个数字是整数还是浮点数
  2. 检查字符串是 Python 中的 Integer 还是 Float
  3. 检查字符串是否可以在 Python 中转换为整数
  4. 检查字符串是否可以在 Python 中转换为浮点数
  5. 在 Python 中检查浮点数是否为整数

在 Python 中检查一个数字是 int 还是 float

使用该isinstance()函数检查数字是整数还是浮点数。

如果传入的对象是提供的类(或)的实例,isinstance函数将返回Trueintfloat

主程序
my_num = 1357 if isinstance(my_num, int): print('number is int') if isinstance(my_num, float): print('number is float') # ----------------------------------- # ✅ checks if a number is either int or float if isinstance(my_num, (int, float)): print('Number is either int or float')

我们使用该isinstance()函数来检查数字是 anint还是 a
float

如果传入的对象是传入类的实例或子类,则isinstance函数
返回。
True

主程序
print(isinstance(357, int)) # 👉️ True print(isinstance(357, float)) # 👉️ False print(isinstance(3.14, float)) # 👉️ True print(isinstance(3.14, int)) # 👉️ False

isinstance()函数正确返回传入的对象是所提供类的实例还是子类。

然而,有一个极端情况——布尔值也是整数的一个实例。

主程序
print(isinstance(True, int)) # 👉️ True print(isinstance(False, int)) # 👉️ True

这是因为该类bool是 的子类int

如果您需要检查一个数字是 int 还是 float,请在函数调用中传递一个包含int和类的元组
floatisinstance()

主程序
my_num = 1357 if isinstance(my_num, (int, float)): # 👇️ this runs print('Number is either int or float')
函数采用的第二个参数isinstance可以是类或包含多个类的元组。

对上述函数的调用检查传入的对象是 anint
还是 a
float

tuple在对函数的调用中使用 a等同于对OR运算符使用两次调用。

主程序
my_num = 1357 if isinstance(my_num, int) or isinstance(my_num, float): print('Number is either int or float')

如果您只想打印数字的类型,请使用该类type()

主程序
my_num = 1357 print(type(my_num)) # 👉️ <class 'int'> my_num_2 = 3.14 print(type(my_num_2)) # 👉️ <class 'float'>

类型返回对象的类型。

__class__
最常见的返回值与访问对象的属性
相同。

在 Python 中检查字符串是 Integer 还是 Float

检查字符串是整数还是浮点数:

  1. 使用该str.isdigit()方法检查字符串中的每个字符是否都是数字。
  2. 如果该方法返回True,则该字符串是一个整数。
  3. 如果该方法返回False,则该字符串是一个浮点数。
主程序
my_str = '2468' if my_str.isdigit(): my_num = int(my_str) print('String is an integer') else: my_num = float(my_str) print('String is a float') print(my_num) # 👉️ 2468
如果您必须处理负数,请向下滚动到解决方案。 try/except

我们使用该str.isdigit()方法来检查字符串中的所有字符是否都是数字。

str.isdigit
方法返回
如果字符串中的所有字符都是数字并且至少有 1 个字符,否则
返回TrueFalse

如果字符串有小数点或以负号(负数)开头,则str.isdigit()该方法将返回。False-

主程序
print('-123'.isdigit()) # 👉️ False print('1.23'.isdigit()) # 👉️ False

如果您不必处理负数,请使用该str.isdigit()方法就足够了。

如果您必须处理负数,请使用try/except块。

使用#检查字符串是整数还是浮点数try/except

检查字符串是整数还是浮点数:

  1. 将对类的调用包装int()在一个try块中。
  2. 如果对该int()类的调用成功,则该字符串是一个整数。
  3. 如果该except块运行,则该字符串是一个浮点数。
主程序
my_str = '-2468' try: my_num = int(my_str) # 👇️ this runs print('String is an integer') except ValueError: my_num = float(my_str) print('String is a float') print(my_num) # 👉️ -2468

我们使用try/except语句来检查字符串是整数还是浮点数。

如果该try块成功运行,则该字符串是一个整数。

如果使用int()字符串调用类引发 a ValueErrorexcept
则运行该块并且字符串是浮点数。

与方法不同str.isdigit(),此方法还处理负数。

以这种方式使用try/except声明通常被称为“请求宽恕而不是许可”。

我们将字符串传递给int()不知道转换是否成功的类,如果ValueError出现错误,我们会在
except块中处理它。

检查 String 是否可以在 Python 中转换为 Integer

检查字符串是否可以转换为整数:

  1. 将对类的调用包装int()在一个try/except块中。
  2. 如果转换成功,try块将完全运行。
  3. 如果转换为整数失败,则处理块ValueError中的except
主程序
def can_convert_to_int(string): try: int(string) return True except ValueError: return False print(can_convert_to_int('1357')) # 👉️ True print(can_convert_to_int('-1357')) # 👉️ True print(can_convert_to_int('1.357')) # 👉️ False print(can_convert_to_int('ABC123')) # 👉️ False

我们使用了一个try/except块来检查字符串是否可以转换为整数。

如果try块成功,函数返回True 并且字符串可以转换为整数。

如果使用int()字符串调用类失败,则ValueError引发 a 并且函数返回False

以这种方式使用try/except声明通常被称为“请求宽恕而不是许可”。

我们将字符串传递给int()不知道转换是否成功的类,如果ValueError出现错误,我们会在
except块中处理它。

或者,您可以使用该str.isdigit()方法。

检查是否可以使用 isdigit() 将 String 转换为 Integer

使用该str.isdigit()方法检查字符串是否可以转换为整数,例如if my_str.isdigit():.

如果该str.isdigit方法返回True,则字符串中的所有字符都是数字,可以将其转换为整数。

主程序
my_str = '1357' if my_str.isdigit(): my_int = int(my_str) print(my_int) # 👉️ 1357 print('✅ string can be converted to integer') else: print('⛔️ string CANNOT be converted to integer')

我们使用该str.isdigit()方法来检查字符串是否可以安全地转换为整数。

str.isdigit
方法返回
如果字符串中的所有字符都是数字并且至少有 1 个字符,否则
返回TrueFalse

该方法检查字符串中的所有字符是否都是数字,因此如果字符串中有减号或小数,它将返回False.

主程序
my_str = '-1357' if my_str.isdigit(): my_int = int(my_str) print(my_int) print('✅ string can be converted to integer') else: # 👇️ this runs print('⛔️ string CANNOT be converted to integer')
如果您的字符串可能是负整数,请改用try/except 示例,因为它也涵盖负整数。

如果您只想尝试将字符串转换为整数并在ValueError转换失败时沉默/忽略,请使用pass语句。

主程序
my_str = '2468' try: my_int = int(my_str) print(my_int) # 👉️ 2468 except ValueError: pass

pass
语句
什么都不做,当语法上需要语句但程序不需要任何操作时使用。

主程序
class Employee: pass

检查 String 是否可以在 Python 中转换为 Float

检查字符串是否可以转换为浮点数:

  1. 将对类的调用包装float()在一个try/except块中。
  2. 如果try块成功运行,字符串可以转换为浮点数。
  3. 如果该except块运行,则字符串无法转换为浮点数。
主程序
my_str = '3.456' try: result = float(my_str) print(result) # 👉️ 3.456 except ValueError: print('Value cannot be converted to a float')

我们使用try/except语句来检查字符串是否可以转换为浮点数。

如果try块成功运行,字符串可以转换为浮点数。

如果尝试将字符串转换为 afloat()引发 a ,则该字符串无法转换为浮点数。 ValueError
主程序
my_str = 'abc1.23' try: result = float(my_str) print(result) except ValueError: # 👇️ this runs print('Value cannot be converted to a float')

您还可以将逻辑提取到可重用函数中。

主程序
def can_convert_to_float(string): try: result = float(string) print(result) return True except ValueError: return False print(can_convert_to_float('123')) # 👉️ True print(can_convert_to_float('1.23')) # 👉️ True print(can_convert_to_float('a.bc')) # 👉️ False print(can_convert_to_float('.5')) # 👉️ True if can_convert_to_float('3.14'): # 👇️ this runs print('String can be converted to a float ✅') else: print('String cannot be converted to a float ⛔️')

如果try块成功,函数返回True

如果使用float()字符串调用类失败,则ValueError引发 a 并且函数返回False

以这种方式使用try/except声明通常被称为“请求宽恕而不是许可”。

我们将字符串传递给float()不知道转换是否成功的类,如果ValueError出现错误,我们会在
except块中处理它。

如果您想在错误出现时静音/忽略错误,请使用该pass
语句。

主程序
my_str = 'ab.cd' try: result = float(my_str) print(result) except ValueError: pass

pass
语句
什么都不做,当语法上需要语句但程序不需要任何操作时使用。

在 Python 中检查浮点数是否为整数#

使用float.is_integer()方法检查浮点数是否为整数。

如果浮点数是有限整数,float.is_integer方法将返回,否则返回TrueFalse

主程序
import math # ✅ check if a float is a whole number using float.is_integer() result = (3.00).is_integer() print(result) # 👉️ True

第一个示例使用float.is_integer()方法检查浮点数是否为整数。

float.is_integer
方法返回
一个
布尔结果:

  • True如果浮点数是有限整数
  • False如果不是
主程序
print((3.00).is_integer()) # 👉️ True print((3.14).is_integer()) # 👉️ False

或者,您可以使用模运算符。

使用模数检查浮点数是否为整数#

检查浮点数是否为整数:

  1. 使用取模运算符将浮点数除以1
  2. 如果除法的余数是0,则数字是整数。
  3. 如果余数不是0,则该数字有小数点。
主程序
num = 5.00 result = num % 1 == 0 print(result) # 👉️ True

取模
(%)
运算符返回第一个值除以第二个值的余数。

主程序
print(10 % 1) # 👉️ 0 print(10.5 % 1) # 👉️ 0.5

如果我们将数字除以得到的余数10,那么我们就有了一个整数。

反之,如果除以有余数1,则该数有小数点。

或者,您可以使用该math.floor()方法。

使用 math.floor() 检查浮点数是否为整数#

检查浮点数是否为整数:

  1. 将数字传递给math.floor()方法。
  2. math.floor()方法会将数字向下舍入。
  3. 将四舍五入后的数字与数字本身进行比较。
主程序
import math num = 7.00 result = math.floor(num) == num print(result) # 👉️ True

math.floor方法返回小于或等于提供的数字的最大整数

主程序
print(math.floor(3.99)) # 👉️ 3 print(math.floor(3.00)) # 👉️ 3

如果四舍五入的数字等于数字本身,那么我们就有了一个整数。

如果四舍五入后的数字不同,则该数字有小数点。