目录
Check if a number is an int or float in Python
- 在 Python 中检查一个数字是整数还是浮点数
- 检查字符串是 Python 中的 Integer 还是 Float
- 检查字符串是否可以在 Python 中转换为整数
- 检查字符串是否可以在 Python 中转换为浮点数
- 在 Python 中检查浮点数是否为整数
在 Python 中检查一个数字是 int 还是 float
使用该isinstance()
函数检查数字是整数还是浮点数。
如果传入的对象是提供的类(或)的实例,该isinstance
函数将返回。True
int
float
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
和类的元组
。float
isinstance()
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
检查字符串是整数还是浮点数:
- 使用该
str.isdigit()
方法检查字符串中的每个字符是否都是数字。 - 如果该方法返回
True
,则该字符串是一个整数。 - 如果该方法返回
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 个字符,否则返回。True
False
如果字符串有小数点或以负号(负数)开头,则str.isdigit()
该方法将返回。False
-
print('-123'.isdigit()) # 👉️ False print('1.23'.isdigit()) # 👉️ False
如果您不必处理负数,请使用该str.isdigit()
方法就足够了。
如果您必须处理负数,请使用try/except
块。
使用#检查字符串是整数还是浮点数try/except
检查字符串是整数还是浮点数:
- 将对类的调用包装
int()
在一个try
块中。 - 如果对该
int()
类的调用成功,则该字符串是一个整数。 - 如果该
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 ValueError
,except
则运行该块并且字符串是浮点数。
与方法不同str.isdigit()
,此方法还处理负数。
try/except
声明通常被称为“请求宽恕而不是许可”。我们将字符串传递给int()
不知道转换是否成功的类,如果ValueError
出现错误,我们会在
except
块中处理它。
检查 String 是否可以在 Python 中转换为 Integer
检查字符串是否可以转换为整数:
- 将对类的调用包装
int()
在一个try/except
块中。 - 如果转换成功,
try
块将完全运行。 - 如果转换为整数失败,则处理块
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 个字符,否则返回。True
False
该方法检查字符串中的所有字符是否都是数字,因此如果字符串中有减号或小数,它将返回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
检查字符串是否可以转换为浮点数:
- 将对类的调用包装
float()
在一个try/except
块中。 - 如果
try
块成功运行,字符串可以转换为浮点数。 - 如果该
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
块成功运行,字符串可以转换为浮点数。
float()
引发 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
方法将返回,否则返回。True
False
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
。 - 如果除法的余数是
0
,则数字是整数。 - 如果余数不是
0
,则该数字有小数点。
num = 5.00 result = num % 1 == 0 print(result) # 👉️ True
取模
(%)
运算符返回第一个值除以第二个值的余数。
print(10 % 1) # 👉️ 0 print(10.5 % 1) # 👉️ 0.5
如果我们将数字除以得到的余数1
是0
,那么我们就有了一个整数。
反之,如果除以有余数1
,则该数有小数点。
或者,您可以使用该math.floor()
方法。
使用 math.floor() 检查浮点数是否为整数#
检查浮点数是否为整数:
- 将数字传递给
math.floor()
方法。 - 该
math.floor()
方法会将数字向下舍入。 - 将四舍五入后的数字与数字本身进行比较。
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
如果四舍五入的数字等于数字本身,那么我们就有了一个整数。
如果四舍五入后的数字不同,则该数字有小数点。