跳转至

杂项

赋值

在赋值时,从右往左先查询值,再赋值。在查询值时,如果查询到的值是函数,会自动执行。

打印

解释器不会将 None 作为表达式的值显示出来。当函数不返回任何东西时,默认返回 None。对于print()函数,输出需要打印在屏幕上的字符后,返回 None。例如:

>>> print(print(1),print(2))
1
2
None None

print 用逗号分隔的参数之间默认用 sep=' ' 连接,也就是一个空格。print 默认 end='\n',也就是输出完会换行。即print(*args, sep=' ', end='\n')

print(f()) 用的是更偏“用户友好”的 str() 展示,因此不加引号。在交互式环境(REPL / Jupyter)里,表达式结果会用 repr() 风格展示,于是常常看起来像“带引号”,方便分辨这是字符串、里面有没有空格/转义字符等。例如:

def f():
    return "hello"
f()          # 在交互式环境里通常显示: 'hello'
print(f())   # hello

布尔运算

真假值

假值:False,0,'',None

真值:其他所有值

短路特性

and和or运算符具有短路特性,即它们会根据第一个操作数的值决定是否计算第二个操作数。

使用and时,如果左边的值是“假”,则返回左边的值,右边不会被计算。如果左边的值是“真”,它会跳过左边,直接返回右边的值。

使用or时,如果左边的值是“真”,则返回左边的值,右边不会被计算。如果左边的值是“假”,它会跳过左边,直接返回右边的值。

not 会强制将其后面的值转换为布尔类型,然后翻转它。首先,判断之后的值是“真值”还是“假值”。然后翻转结果(真变假,假变真)。