一、Python 判空概述
在 Python 中,判空即判断某个变量或值是否为空或者 None。在实际开发中,经常需要对变量或值进行判空操作,以避免因为空值而产生异常。
Python 提供了多种方法来判空,常用的有 if 语句、三目运算符 ? : 和 or 运算符。
二、if 语句判空
if 语句是最简单和常见的判空方法之一,它的语法结构为:
if variable_name:
# do something
当变量 variable_name 不为 None 且不为空时, if 语句的条件表达式为 True,执行后续代码块。否则, if 语句的条件表达式为 False,跳过后续代码块。
例如:
name = 'Alice'
if name:
print('name is not empty')
上面的代码中,变量 name 不为空,if 语句的条件表达式为 True,输出结果为“name is not empty”。
三、三目运算符判空
三目运算符 ? : 是一种比较简单的判空方式,它的语法结构为:
variable_name = value1 if condition else value2
其中 condition 为判断条件, value1 和 value2 分别为条件成立和不成立时的返回值。当变量 variable_name 不为 None 且不为空时,条件成立,返回 value1,否则返回 value2。
例如:
name = ''
print('name is not empty') if name else print('name is empty')
上面的代码中,变量 name 为空,三目运算符的条件不成立,输出结果为“name is empty”。
四、or 运算符判空
or 运算符是另一种较为常见和实用的判空方式,它的语法结构为:
variable_name = value1 or value2
当变量 variable_name 为空或者 None 时,变量值为 value2;当变量 variable_name 不为空时,变量值为 value1。
例如:
name = ''
print(name or 'name is empty')
上面的代码中,变量 name 为空, or 运算符的条件为 False,输出结果为“name is empty”。
五、其他判空方法
除了上述介绍的三种常用判空方式外,Python 还提供了其他一些判空方法,如 type() 函数、hasattr() 函数等。
type() 函数用于判断变量类型,通常用于判断字符串、列表、字典等对象是否为空:
name = ''
if type(name) == str and not name:
print('name is empty')
上面的代码中,变量 name 为空字符串,判断变量类型为 str,name 不为空字符串,if 语句的条件表达式为 False,跳过后续代码块。
hasattr() 函数用于判断对象是否包含某个属性,通常用于判断类的属性是否为空:
class Person:
name = ''
person = Person()
if hasattr(person, 'name') and not getattr(person, 'name'):
print('person name is empty')
上面的代码中,定义了一个名为 Person 的类,其中包含 name 属性;实例化 Person 类为 person 对象,判断 person 对象是否包含 name 属性,并判断其是否为空值,if 语句的条件表达式为 True,输出结果为“person name is empty”。