Python学习笔记——2.字面量与运算符
字面量
字面值是内置数据类型常量值的表示法,也就是硬编码在 Python 脚本中的数据,包括数字和字符串等的表示形式。
数值字面量
主要包括如下的数值字面量
- 整数,例如
100
- 浮点数,例如
3.12
,10.
,.001
和3.14e-10
- 复数,例如
1+2j
(注意不是 i 而是 j,并且 j 前面不能有空格)
注意:
- 对于整数,默认十进制,可以使用
0b
开头表示二进制,使用0x
开头表示十六进制等。 - 对于长整数,可以加下划线增加可读性,没有实际效果。例如
123_456_789
。 - 根据参考文档,严格来说数值字面量不含正负号
-
和+
,并且有纯虚数而没有复数,复数是实数和纯虚数的组合。
布尔字面量
布尔字面量包括两个:True
和 False
。
在某些情况下,相当于数字中的 1 和 0: 1
21 == True # True
0 == False # True
字符串字面量
Python 不区分字符和字符串,字符视作长度为 1 的字符串。
字符串需要用单引号或者双引号包裹,\
被用作转义特殊字符,例如 \"
表示双引号。 1
2print('hello,\"li,hua\"')
# hello,"li,hua"
如果不希望字符串使用转义,可以在前面加 r,代表 raw 原始字符串。
1
2print(r'hello,"li,hua"')
# hello,"li,hua"
在 Python2 的时代,为了避免中文编码等问题,还会在字符串前面加
u,确保使用 unicode 编码 1
s = u"你好"
如果使用多行的字符串,可以使用 '''
或者 """
包裹(和多行注释一样),此时还会包括换行,可以在行尾加上 \
来避免第一个换行。 1
2
3
4
5
6
7
8
9
10
11
12
13print("""\
hi,
1,
2,
3,
""")
'''
hi,
1,
2,
3,
'''
空字面量
空字面量为 None
,None
不等于空字符串
""
、空列表 []
、0,也不等同于
False
,它具有唯一的明确的特殊含义!
例如一个无返回的函数,它实质上相当于有一句
return None
,如果特意使用变量去接收函数的返回值,变量得到的就是
None
。
字面量集
包括如下几种:
- 列表字面量
- 元组字面量
- 字典字面量
- 集合字面量
直接使用例子即可 1
2
3
4
5
6
7
8fruits = ["apple", "mango", "orange"] # 列表
numbers = (1, 2, 3) # 元组
alphabets = {'a':'apple', 'b':'ball', 'c':'cat'} #字典
vowels = {'a', 'e', 'i' , 'o', 'u'} #集合
[] # 空列表
() # 空元组
{} # 空字典
注意:
- 为了与其它使用括号的情景区分,表示只含有一个元素的元组时,需要使用
(1,)
,使用(1)
则括号被忽略,视作1
- 字典和集合都使用大括号,但是字典用途更广,更重要,因此
{}
留给了空字典,如果需要空集合,只能使用set()
运算符
各种语言的运算符都差不多,只是有些小区别,并且不同的运算符之间存在优先级差别,不做讨论。
算术运算符
- 最基本的
+ - * /
四则运算 - 使用
**
表示乘方,乘方运算具有最高优先级 - 使用
/
表示普通除法,使用//
表示取整除法,使用%
表示取余数 - 使用
!=
表示不等关系,其它的也都和 C 语言一样:== > >= < <=
- 支持
+= *=
等赋值运算,但不支持++
之类的自增自减运算
逻辑运算符
注意不支持 C/C++/Java 风格的
&&
,||
和!
,只能使用英语单词
and
逻辑与or
逻辑或not
逻辑非
位运算符
常见的位运算都有
&
按位与|
按位或~
按位非^
按位异或<<
按位左移>>
按位右移
特殊运算符
- 第一类,
is / is not
:表示两个变量(或字面量)是否指向同一个内存中的对象; - 第二类,
in / not in
:表示是否属于列表/字典/集合等的成员,对于字典这里测试的是键的存在性。
例如 1
2
3
4
5
6
7
8
9
10
11
12a = 1;b = 1
a is b # True
a = [1,2]
b = [1,2]
a is b # False
'a' in ['a','b','c'] # True
'f' not in ['a','b','c'] # True
'b' in {'a':1,'b':2} # True
's' in {'a':1,'b':2} # False