Python的表达式写法与C/C++类似。只是在某些写法有所差别。
主要的算术运算符与C/C++类似。+,-,*,/,//,**,~,%分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。
Python使用and,or,not表示逻辑运算。
is,is not用于比较两个变量是否是同一个对象。in,not in用于判断一个对象是否属于另外一个对象。
Python支持“列表推导式”(list comprehension),比如计算0-9的平方和:
1
2
|
>>> sum (x * x for x in range ( 10 )) 285 |
Python使用lambda表示匿名函数。匿名函数体只能是表达式。比如:
1
2
3
|
>>> add = lambda x, y : x + y >>> add( 3 , 2 ) 5 |
Python使用y if cond else x表示条件表达式。意思是当cond为真时,表达式的值为y,否则表达式的值为x。相当于C++和Java里的cond?y:x。
Python区分列表(list)和元组(tuple)两种类型。list的写法是[1,2,3],而tuple的写法是(1,2,3)。可以改变list中的元素,而不能改变tuple。在某些情况下,tuple的括号可以省略。tuple对于赋值语句有特殊的处理。因此,可以同时赋值给多个变量,比如:
1
|
>>> x, y = 1 , 2 # 同时给x,y赋值,最终结果:x=1, y=2 |
特别地,可以使用以下这种形式来交换两个变量的值:
1
|
>>> x, y = y, x #最终结果:y=1, x=2 |
Python使用’(单引号)和”(双引号)来表示单行字符串,用”’(三个连续单引号)和”””(三个连续双引号)与Perl、Unix Shell语言或者Ruby、Groovy等语言不一样,两种符号作用相同。一般地,如果字符串中出现了双引号,就使用单引号来表示字符串;反之则使用双引号。如果都没有出现,就依个人喜好选择。出现在字符串中的\(反斜杠)被解释为特殊字符,比如\n表示换行符。表达式前加r指示Python不解释字符串中出现的\。这种写法通常用于编写正则表达式或者Windows文件路径。
Python支持列表切割(list slices),可以取得完整列表的一部分。支持切割操作的类型有str,bytes,list,tuple等。它的语法是…[left:right]或者…[left:right:stride]。假定nums变量的值是[1,3,5,7,8,13,20],那么下面几个语句为真:
nums[2:5]==[5,7,8]从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素。
nums[1:]==[3,5,7,8,13,20]切割到最后一个元素。
nums[:-3]==[1,3,5,7] 从最开始的元素一直切割到倒数第3个元素。
nums[:]==[1,3,5,7,8,13,20]返回所有元素。改变新的列表不会影响到nums。
nums[1:5:2]==[3,7]从下标为1的元素切割到下标为5的元素,且步长为2。