在 Python 中将 NoneType 转换为整数
Convert NoneType to an Integer in Python
使用布尔 OR 运算符将 NoneType 转换为 Python 中的整数,例如
result = None or 0
. 布尔 OR 运算符会将值返回到右侧,因为左侧 ( None
) 的值是假的。
主程序
my_var = None result_1 = my_var or 0 print(result_1) # 👉️ 0 result_2 = my_var or 100 print(result_2) # 👉️ 100
如果左边的值是假的,我们使用
布尔值或
运算符返回一个整数。
所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
如果表达式
x or y
为真,则返回左边的值,否则返回右边的值。由于None
是一个伪值,表达式None or y
总是会返回y
。
请注意,如果是任何其他虚假值,例如空字符串,或空列表、字典或元组,表达式
x or y
也会返回。y
x
False
或者,您可以使用if
语句检查变量是否存储
None
并将其重新分配给整数。
主程序
my_var = None if my_var is None: my_var = 0 print(my_var) # 👉️ 0
检查None
更明确,只有当变量存储一个值时,该if
块才会运行。None
如果变量存储任何其他虚假值,则不会满足条件。
您也可以使用单行if/else
语句。
主程序
my_var = None my_var = 0 if my_var is None else my_var print(my_var) # 👉️ 0
如果变量存储None
,它被设置为0
,否则它被设置为其当前值。
主程序
my_var = 123 my_var = 0 if my_var is None else my_var print(my_var) # 👉️ 123