若干基本问题
本页介绍一些基本类型和其他基本情况。

逻辑类型

逻辑类型的类型名是 bool,这个类型只有两个字面量 True 和 False(注意大小写形式),它们表示两个逻辑常量,True 计算出 True(表示逻辑值“真”),False 计算出 False(表示逻辑值“假”)。

条件判断

条件判断运算符由数值或其他对象计算得到逻辑值 True 或 False,这种运算符共有 8 个,都是二元运算符。比较大小和相等关系的运算符有6个:
	<  <=  >  >=  ==  !=
其中 == 做相等判断,!= 做不等判断。判断元素关系的运算符有两个
	in,   not in
这里的 "not in" 是一个运算符,确定某个对象不在另一个里面;与 in 的意义相反。

逻辑判断

Python 程序的执行中经常需要做逻辑判断。下面的值在逻辑判断中都作为 "假",看着逻辑判断不成立:
  • None 和 False
  • 各种数值类型里的 0 值,包括 int 的 0,float 的 0.0,复数的 0j
  • 空序列,包括""(空字符串), [ ] (空表,list),() (空元组,tuple)
  • 空映射,包括 {} (空集合)
其他所有的值都看作 "真",都看作逻辑判断成立。

逻辑运算符和逻辑表达式

逻辑运算符一共有三个,基于可以写出复杂逻辑表达式:
  1. x or y 在 x 是真的情况下给出 x,否则就给出 y;
  2. x and y 在 x 不是真的情况下给出 x 否则就给出 y;
  3. not x 在 x 是真的情况下给出 False,否则给出 True。
注意:1),not 是一元逻辑运算符,or 和 and 是二元逻辑运算符;2),or 和 and 运算总给出两个运算对象中的一个作为值。3),在 Python 里区分了 "真"/"假" 和 "True"/"False"。True 和 False 是 bool 类型的两个元素,仅有的两个 bool 类型的值;而 "真" 和 "假" 是 Python 程序的逻辑判断。它们并不一样。

类型和类型转换

Python里每个对象有一个类型,可以用内部函数 type(.) 获得。如:
  • 整数的类型是 int
  • 浮点数的类型是 float
  • 复数的类型是 complex
  • 字符串的类型是 str
可以用类型名进行有意义的对象类型变换,称为"类型转换"。例如:int(3.5) 得到浮点数 3.5 的整数值(取整);float(3) 得到浮点数 3.0;int('12345') 从字符串 '12345' 得到整数 12345;float('3.45') 类似。str(12345) 从整数 12345 得到字符串 '12345';如此等等。

还有许多其他类型转换,后面会见到一些。更详细的规定见 Python 语言手册。

长表达式

如果正在写的表达式里的括号没有完全匹配(或其他复杂结构没有结束)就遇到换行字符时,Python 系统自动认为表达式(或其他结构)还没结束,把下一行内容看作正在写的表达式(程序部分)的一部分。如果没有括号匹配问题,换行将被认为是表达式结束。

如果需要,可以在一行最后写一个反斜线符号(\)表示这个表达式延续到下一行。连续采用这种方法可以将表达式延续到更多行。

Python 语言里的任何程序行都可以通过这种方式延续到下一行或几行。

运算符的优先级关系:

运算符的优先级决定其约束能力,高优先级的运算符约束力强。例如我们常说的先乘除后加减,就是说乘法和除法运算符的约束力强,因此要先做。

下面是 Python 的各种运算符,位于下面的运算符约束力强,上面的约束力弱。同一行的运算符约束力相同(逗号分隔不同运算符)。注意前两行,lambda 总与一个冒号结对出现,if(运算符)总与一个 else 成对出现:

lambda - :
if - else
or
and
not (一元运算符)
in, not in, is, is not, <, <=, >, >=, !=, ==
|
^
&
<<, >>
+, -
*, /, //, %
+, -, ~ (一元运算符)
**
下标 [ ], 切片 [:], [::], 函数调用 (), 属性访问
元组、表、集合、字典描述

注:有些运算符将在后面介绍。可以用括号改变表达式里的运算符约束关系。

如果连续出现优先级相同的运算符:

  • 一元运算符和乘方运算符(**)从右向左结合;
  • 比较运算符形成链式比较(x < y <= z 相当于 x < y and y <= z,允许任意长的比较链)。任何比较序列都允许,例如 x > y <= z > w;
  • 其他二元运算符从左向右结合。

注释

注释是写在程序里片段,但它们不是程序的内容,只是为了给读程序的人看的文本,目的是帮助读者理解程序。

注释的形式是以一个 # 符号开始,直到这一行结束。

本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。