在 Python 中将 NoneType 转换为字符串

在 Python 中使用布尔 OR 运算符将 NoneType 转换为字符串,例如 result = None or ""。 布尔 OR 运算符会将值返回到右侧,因为左侧的值 (None) 是虚假的。

my_var = None

result_1 = my_var or ''
print(result_1)  # ?️ ""

result_2 = my_var or 'hello'
print(result_2)  # ?️ "hello"

如果左边的值是假的,我们使用布尔值或运算符返回一个字符串。

所有不为真的值都被认为是假的。 Python 中的虚假值是:

  • 定义为虚假的常量:None 和 False
  • 任何数字类型的 0(零)
  • 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。

表达式 x or y 如果为真则返回左边的值,否则返回右边的值。

由于 None 是一个假值,表达式 None 或 y 总是会返回 y。

注意 ,如果 x 是任何其他虚假值,则表达式 x or y 也将返回 y,例如 0,False,或空列表、字典或元组。

或者,我们可以使用 if 语句检查变量是否存储 None 并将其重新分配给字符串。

country = None

if country is None:
    country = ""

print(country)  # ?️ ""

检查 None 更加明确,并且 if 块仅在变量存储 None 值时才会运行。

如果变量存储任何其他虚假值,则不会满足条件。

我们还可以使用单行 if/else 语句。

country = None

country = "" if country is None else country

print(country)  # ?️ ""

如果变量存储 None,则将其设置为空字符串,否则将其设置为当前值。

country = 'Germany'

country = "" if country is None else country

print(country)  # ?️ "Germany"