目录
2.通常使用单引号' '或双引号" "或""" """三引号将字符串括起来表示字符串。
4.转义字符:指反斜杠\+特殊字符,通常转义字符具有特殊功能。
一.保留字
保留字是指Python语言中被赋予特定意义的一些单词
保留字 | 含义 |
---|---|
if | 条件判断语句关键字 |
elif | 条件判断语句关键字 |
else | 条件判断语句关键字 |
for | 循环语句关键字 |
in | 用于遍历序列或成员测试 |
while | 循环语句关键字 |
break | 用于跳出循环 |
continue | 用于跳过当前循环迭代,进入下一次迭代 |
def | 用于定义函数 |
class | 用于定义类 |
import | 用于导入模块 |
from | 通常与import 一起使用,从模块中导入特定的对象 |
return | 用于从函数中返回值 |
None | 表示空值或不存在的值 |
True | 布尔值 “真” |
False | 布尔值 “假” |
and | 布尔逻辑运算符 “与” |
or | 布尔逻辑运算符 “或” |
not | 布尔逻辑运算符 “非” |
is | 用于对象同一性测试 |
try | 异常处理语句关键字 |
except | 异常处理语句关键字 |
finally | 异常处理语句关键字 |
raise | 用于引发异常 |
这些保留字不能拿去当做变量等作用使用,每个保留字有其特定的使用意义。
二.标识符
标识符指的是用来标识变量、函数、类和模块以及其他对象的,也就是给这些东西取名字,这个名字就是标识符。
注:在Python中,标识符是严格区分大小写的
eg.
NUM和NUm是两个不同的变量
标识符的命名规则:
1.标识符由字母、数字以及下划线组成,并且第一个字符不能是数字。
2.不能使用Python中的保留字。
3.不能使用特殊字符。
以下划线开头的特殊情况:
1.以单划线开头的标识符(如_width)表示不能直接访问类的属性。
注:以单个下划线开头的变量名(如_width
)在 Python 中有一定的约定含义。按照惯例,以单个下划线开头的名称被视为 “内部使用” 或 “私有” 的提示,但这只是一种约定,并不是严格的访问控制。
2.以双划线开头和结尾的是Python的专用表示,如__init__()表示构造函数。
注:中文字符可作为变量的标识符使用,并给中文变量赋值。
测试 = 10
print(测试)
结果:
10
三.变量
变量可以通过=来赋值。
四.基本数据类型
(1)数字类型:
不同进制数:
十进制数:直接写数字,像10
、25
等都是合法的十进制数表示。
二进制数:有前缀0b
或0B
,例如0b1010
表示二进制数。
八进制数:有前缀0o
或0O
,例如0o12
表示八进制数。
十六进制数:有前缀0x
或0X
,例如0x0A
表示十六进制数。
浮点数:
如1.235这样的数
科学计数法表示浮点数:eg.1.2e-2
注:在使用浮点数运算时,可能会出现小数位数不确定的情况,如0.1+0.2会计算出0.30000004这样的情况。
复数:
用j或J表示虚部,形如1+2j
还可以单独得到实部和虚部:
s = 1+2j
print(s.real)
print(s.imag)
得到结果:
1.0
2.0
还可以用函数complex(re,im)表示,re表示实部,im表示虚部。
(2)字符串类型
1.字符串在python中属于不可变序列。
这意味着一旦创建了一个字符串对象,就不能对其进行修改。
eg.
当创建一个字符串时,例如s = "hello"
,这个字符串对象在内存中被分配了特定的存储位置,并且其字符内容是固定的。如果尝试对字符串进行修改操作,比如s[0]='H'
,Python 会报错。这是因为这种修改违背了字符串不可变的特性。
针对想要修改字符串的情况,想要解决就需要创建新的字符串对象进行拼接、修改等操作或者使用可变序列(列表)。
2.通常使用单引号' '或双引号" "或""" """三引号将字符串括起来表示字符串。
这三个引号的使用有略微区别:单引号和双引号的字符序列必须在同一行,而三引号的字符序列可以分布在连续的多行。
注:print在输出三引号的不同行字符序列时,会自动换行
print("""你好
蟒蛇""")
结果:
你好
蟒蛇
如果想要不自动换行可以用replace将换行符替换成空字符串:
print("""你好
蟒蛇""".replace('\n',''))
结果:
你好蟒蛇
3.注意字符串开始和结束的引号形式要相同
4.转义字符:
指反斜杠\+特殊字符,通常转义字符具有特殊功能。
- \n
- 表示换行符。例如:
print("第一行\n第二行")
,输出结果为两行,中间有换行。
- 表示换行符。例如:
- \t
- 表示水平制表符,通常用于在文本中创建固定宽度的间隔。例如:
print("姓名\t年龄")
,会在 “姓名” 和 “年龄” 之间产生一定的间隔。
- 表示水平制表符,通常用于在文本中创建固定宽度的间隔。例如:
- \
- 表示反斜杠本身,或者作为续行符。如果要在字符串中表示一个反斜杠,就需要使用转义字符,如
print("C:\\Users\\")
,这里的两个反斜杠实际上表示一个反斜杠,或者需要多行表示一个字符串可以+\。
- 表示反斜杠本身,或者作为续行符。如果要在字符串中表示一个反斜杠,就需要使用转义字符,如
- \r
- 表示回车符,它会将光标移动到行首。例如:
print("abc\rdef")
,输出结果为 “defc”,因为 “def” 覆盖了 “abc” 的前三个字符。
- 表示回车符,它会将光标移动到行首。例如:
- \b
- 表示退格符,它会删除前一个字符。例如:
print("abc\b")
,输出结果为 “ab”。
- 表示退格符,它会删除前一个字符。例如:
- \f
- 表示换页符,在现代文本处理中较少用到。
- \’
- 用于在单引号括起来的字符串中表示单引号字符本身。例如:
print('I \'m a student')
。
- 用于在单引号括起来的字符串中表示单引号字符本身。例如:
- \”
- 用于在双引号括起来的字符串中表示双引号字符本身。例如:
print("He said, \"Hello!\"")
。
- 用于在双引号括起来的字符串中表示双引号字符本身。例如:
- \0dd
- \0dd 是一种八进制转义序列,其中 \0 是起始标记,dd 是两位八进制数字(0 - 7)
\0dd使用方法举例:在字符串中,'\012' 表示换行符(八进制的 12 等于十进制的 10,而十进制的 10 对应的 ASCII 码就是换行符 '\n')。
s = "Hello\012World"
print(s)
结果:
Hello
World
- \xhh
- \xhh是一种十六进制转义序列,其中 \x 是起始标记,hh 是两位十六进制数字(00-ff)
使用方法与\0dd类似。这两种都是将ASCII值转换为对应的字符,如上面的\012转为十进制为10其ASCII值对应字符\n,也就是说如果你算出来等于65还可以表示为字符A。
注:
如果想要转义字符不在字符串中发挥作用,可以在字符串前面加上r:
print("你好,\x0aPython")
结果:
你好,
Python
print(r"你好,\x0aPython")
结果:
你好,\x0aPython
(3)布尔类型
布尔类型:用来表示真和假的值,True和False被称为布尔值,它们也可以转换为数值,分别表示为1和0。
在Python中一下情况进行真值判断为假。
1.False和None
2.数值中的零,如0/0.0,虚数的0等。
3.空序列,包括字符串、空元组、空列表和空字典。
4.自定义对象的实例,对象的__bool__方法返回False或者__len__方法返回0,也就是相当于调用自定义函数得到指定的返回值。
五.数据类型转换
(1)int函数:
将一个数值或字符串转换为整数类型。
(2)float函数:
将一个数值或字符串转换为浮点数类型。
(3)str函数:
将对象转换为字符串类型。这是一个非常常用的函数,几乎可以将任何 Python 对象转换为其字符串表示形式。
(4)complex(real,imag):
创建一个复数
(5)repr(x)
函数用于返回一个对象的可打印表示形式,通常是一个字符串。这个函数与str函数有些区别:
1.区别于str()
函数
- 首先,
repr()
和str()
虽然都能将对象转换为字符串,但它们的侧重点有所不同。 str()
主要是为了让用户能方便地阅读对象的字符串表示形式,它更注重可读性。例如对于字符串对象,str()
返回的就是字符串本身,不需要额外的引号包裹(如果是可打印字符)。比如x = "hello"
,str(x)
就是"hello"
。- 而
repr()
更侧重于返回对象的 “官方” 表示形式,这个形式是可以被 Python 解释器识别的,通常更适合用于调试和开发。例如x = "hello"
,repr(x)
是"'hello'"
,多了一层引号,这是因为在 Python 代码中如果要表示一个字符串常量,需要用引号包裹起来。
2.对于特殊字符和不可打印字符的处理
- 如果对象包含特殊字符或者不可打印字符,
repr()
会以一种转义的方式来表示。 - 例如:
- 如果
x = "a\tb"
(其中\t
是制表符),s
eg. print(chr(65)) 结果为:A
tr(x)
可能会显示为"a b"
(根据显示环境可能会有一定的格式调整),而repr(x)
会显示为"'a\\tb'"
,这里\\
是对\
的转义,使得这个字符串表示能够准确地反映对象的内容,并且可以在代码中被正确解析。
- 如果
(6)eval(str)
将字符串作为 Python 表达式进行求值,并返回求值的结果,这个返回的值依据内部的表达式而定。
eg.
s = "1 + 2"
,使用eval(s)
会计算这个字符串表达式,返回结果3
s="1.1+1.3",
使用eval(s)
会计算这个字符串表达式,返回结果2.4,输出的类型是浮点型。
(7)chr()
它接受一个整数(表示ASCII)作为参数,并返回对应ASCII值的字符。
eg.
print(chr(65))
结果:
A
因为65对应的ASCII值为A
(8)ord()
它与chr()
函数的功能相反。ord()
函数接受一个字符(长度为 1 的字符串)作为输入,并返回该字符对应的 ASCII值
print(ord('A'))
结果:
65
(9)hex()
将一个整数转换为十六进制字符串
(10)oct()
将一个整数转换为十六进制字符串
六.运算符
(1)算术运算符
- 加法运算符(+)
- 功能:用于求两个数的和。在 Python 中,它不仅可以用于数字类型(如整数、浮点数)的相加,还可以用于字符串、列表、元组等类型的连接操作。
- 示例:
- 数字相加:
3 + 5
的结果是 8;3.5+2.5
的结果是 6.0。 - 字符串连接:
"hello" + "world"
的结果是"helloworld"
。 - 列表连接:
[1, 2] + [3, 4]
的结果是[1, 2, 3, 4]
。
- 数字相加:
- 减法运算符(-)
- 功能:用于求两个数的差。
- 示例:
8 - 3
的结果是 5;5.5-2.5
的结果是 3.0。
- 乘法运算符(*)
- 功能:用于求两个数的乘积。对于数字类型,执行乘法运算;对于字符串和列表类型,它表示重复操作。
- 示例:
- 数字相乘:
4 * 3
的结果是 12;2.5 * 4
的结果是 10.0。 - 字符串重复:
"a" * 3
的结果是"aaa"
。 - 列表重复:
[1] * 5
的结果是[1, 1, 1, 1, 1]
。
- 数字相乘:
- 除法运算符(/)
- 功能:用于求两个数的商,在 Python 3 中,该运算符执行的是真除法,结果总是返回一个浮点数。
- 示例:
8 / 2
的结果是 4.0;5 / 2
的结果是 2.5。
- 整除运算符(//)
- 功能:用于求两个数相除的整数部分(向下取整)。
- 示例:
7 // 2
的结果是 3;-7 // 2
的结果是 - 4(向负无穷方向取整)。
- 取余运算符(%)
- 功能:用于求两个数相除的余数。
- 示例:
7 % 2
的结果是 1;10 % 3
的结果是 1。
- 幂运算符(**)
- 功能:用于求一个数的幂次方。
- 示例:
2 ** 3
的结果是 8,表示 2 的 3 次方;3.0 ** 2
的结果是 9.0,表示 3.0 的 2 次方
(2)赋值运算符
- 基本赋值运算符(=)
- 功能:将等号右边的值赋给等号左边的变量。这是最基本的赋值操作。
- 示例:
x = 5
,将整数 5 赋给变量 x。s = "hello"
,将字符串 "hello" 赋给变量 s。
- 复合赋值运算符
- 加法赋值运算符(+=)
- 功能:等效于
变量 = 变量 + 表达式
。先将变量与表达式的值相加,再将结果赋给变量。 - 示例:
x = 3
,执行x += 2
后,x 的值变为 5,相当于执行了x = x+2
。- 对于字符串也适用,如
s = "he"
,执行s += "llo"
后,s 的值变为 "hello",相当于s = s + "llo"
。
- 功能:等效于
- 减法赋值运算符(-=)
- 功能:等效于
变量 = 变量 - 表达式
。 - 示例:
x = 5
,执行x -= 3
后,x 的值变为 2,相当于x = x - 3
。
- 功能:等效于
- 乘法赋值运算符(*=)
- 功能:等效于
变量 = 变量 * 表达式
。 - 示例:
x = 2
,执行x *= 3
后,x 的值变为 6,相当于x = x * 3
。- 对于字符串,如
s = "a"
,执行s *= 3
后,s 的值变为 "aaa",相当于s = s * 3
。
- 功能:等效于
- 除法赋值运算符(/=)
- 功能:等效于
变量 = 变量 / 表达式
。 - 示例:
x = 6
,执行x /= 2
后,x 的值变为 3.0,相当于x = x/2
。
- 功能:等效于
- 整除赋值运算符(//=)
- 功能:等效于
变量 = 变量 // 表达式
。 - 示例:
x = 7
,执行x //= 2
后,x 的值变为 3,相当于x = x//2
。
- 功能:等效于
- 取余赋值运算符(%=)
- 功能:等效于
变量 = 变量 % 表达式
。 - 示例:
x = 7
,执行x %= 2
后,x 的值变为 1,相当于x = x%2
。
- 功能:等效于
- 幂赋值运算符(**=)
- 功能:等效于
变量 = 变量 ** 表达式
。 - 示例:
x = 2
,执行x **= 3
后,x 的值变为 8,相当于x = x**3
。
- 功能:等效于
- 加法赋值运算符(+=)
(3)比较运算符
- 等于(==)
- 功能:比较两个值是否相等,如果相等则返回
True
,否则返回False
。 - 示例:
- 数值比较:
3 == 3
返回True
,3 == 5
返回False
。 - 字符串比较:
"hello" == "hello"
返回True
,"hello" == "world"
返回False
。 - 不同类型之间比较:在 Python 中,不同类型的值进行
==
比较时,通常会根据一定的规则进行转换后再比较(例如,数字和字符串数字可能会进行转换后比较),不过这种比较方式在编写代码时应谨慎使用。例如,3 == "3"
在 Python 中会返回False
(Python 3 中严格区分类型,不会自动进行类型转换后比较相等性)。
- 数值比较:
- 功能:比较两个值是否相等,如果相等则返回
- 不等于(!=)
- 功能:比较两个值是否不相等,如果不相等则返回
True
,否则返回False
。 - 示例:
3!= 5
返回True
,3!= 3
返回False
。"hello"!= "world"
返回True
,"hello"!= "hello"
返回False
。
- 功能:比较两个值是否不相等,如果不相等则返回
- 大于(>)
- 功能:判断左边的值是否大于右边的值,如果是则返回
True
,否则返回False
。 - 示例:
5 > 3
返回True
,3 > 5
返回False
。
- 功能:判断左边的值是否大于右边的值,如果是则返回
- 小于(<)
- 功能:判断左边的值是否小于右边的值,如果是则返回
True
,否则返回False
。 - 示例:
3 < 5
返回True
,5 < 3
返回False
。
- 功能:判断左边的值是否小于右边的值,如果是则返回
- 大于等于(>=)
- 功能:判断左边的值是否大于或等于右边的值,如果是则返回
True
,否则返回False
。 - 示例:
5 >= 3
返回True
,3 >= 3
返回True
,3 >= 5
返回False
。
- 功能:判断左边的值是否大于或等于右边的值,如果是则返回
- 小于等于(<=)
- 功能:判断左边的值是否小于或等于右边的值,如果是则返回
True
,否则返回False
。 - 示例:
3 <= 5
返回True
,3 <= 3
返回True
,5 <= 3
返回False
。
- 功能:判断左边的值是否小于或等于右边的值,如果是则返回
(4)逻辑运算符
- 逻辑与(and)
- 功能:当使用
and
连接两个表达式时,只有当两个表达式都为True
时,整个逻辑表达式的结果才为True
;如果其中一个表达式为False
,则整个表达式为False
。逻辑与运算会按照从左到右的顺序进行计算,一旦发现某个表达式为False
,就不会再计算后面的表达式(这种特性称为短路求值)。 - 示例:
True and True
结果为True
。True and False
结果为False
。- 在实际代码中,例如
x = 5; y = 10; (x > 3 and y < 15)
结果为True
,因为x > 3
为True
,y < 15
为True
。
- 功能:当使用
- 逻辑或(or)
- 功能:当使用
or
连接两个表达式时,只要其中一个表达式为True
,整个逻辑表达式的结果就为True
;只有当两个表达式都为False
时,整个表达式才为False
。同样,逻辑或运算也具有短路求值的特性,即一旦发现某个表达式为True
,就不会再计算后面的表达式。 - 示例:
True or True
结果为True
。False or True
结果为True
。False or False
结果为False
。- 在代码中,如
x = 2; y = 3; (x > 5 or y < 5)
结果为True
,因为y < 5
为True
。
- 功能:当使用
- 逻辑非(not)
- 功能:对一个表达式取反。如果表达式原本为
True
,使用not
操作后变为False
;如果表达式原本为False
,使用not
操作后变为True
。 - 示例:
not True
结果为False
。not False
结果为True
。- 在实际应用中,例如
x = 5; not (x > 10)
结果为True
,因为x > 10
为False
,取反后为True
。
- 功能:对一个表达式取反。如果表达式原本为
(5)位运算符
- 按位与(&)
- 功能:对两个操作数的二进制位进行与运算。只有当两个对应的二进制位都为1时,结果位才为1,否则为0。
- 示例:
- 计算3 & 5:
- 3的二进制表示为0011(假设为8位二进制数,这里只显示低4位)。
- 5的二进制表示为0101。
- 按位与运算:
- 0011
& 0101
0001
- 0011
- 所以3 & 5的结果为1。
- 计算3 & 5:
- 按位或(|)
- 功能:对两个操作数的二进制位进行或运算。只要两个对应的二进制位中有一个为1,结果位就为1;只有当两个位都为0时,结果位才为0。
- 示例:
- 计算3 | 5:
- 3的二进制表示为0011。
- 5的二进制表示为0101。
- 按位或运算:
- 0011
| 0101
0111
- 0011
- 所以3 | 5的结果为7。
- 计算3 | 5:
- 按位异或(^)
- 功能:对两个操作数的二进制位进行异或运算。当两个对应的二进制位不同时(一个为0,一个为1),结果位为1;当两个位相同时(都为0或都为1),结果位为0。
- 示例:
- 计算3 ^ 5:
- 3的二进制表示为0011。
- 5的二进制表示为0101。
- 按位异或运算:
- 0011
^ 0101
0110
- 0011
- 所以3 ^ 5的结果为6。
- 计算3 ^ 5:
- 按位取反(~)
- 功能:对操作数的二进制位进行取反操作,0变为1,1变为0。需要注意的是,在Python中,由于整数是有符号数,按位取反后的结果是对该数补码的操作。
- 示例:
- 计算~3:
- 3的二进制表示为0011(假设为8位二进制数)。
- 按位取反得到1100,这是补码形式。在有符号数中,1100表示 - 4。
- 所以~3的结果为 - 4。
- 计算~3:
- 左移(<<)
- 功能:将操作数的二进制位向左移动指定的位数,右边空出的位用0填充。左移一位相当于乘以2。
- 示例:
- 计算3 << 1:
- 3的二进制表示为0011。
- 左移1位后得到0110,结果为6,相当于3×2。
- 计算3 << 1:
- 右移(>>)
- 功能:将操作数的二进制位向右移动指定的位数,左边空出的位如果是有符号数则用符号位填充(正数用0填充,负数用1填充),如果是无符号数则用0填充。右移一位相当于除以2(取整)。
- 示例:
- 计算6 >> 1:
- 6的二进制表示为0110。
- 右移1位后得到0011,结果为3,相当于6÷2。
- 计算6 >> 1:
(6)运算符的优先级
优先级高的先执行,优先级低的后执行,优先级相同的按照从左向右的顺序运行。括号的优先级最高,所以一般使用括号来限定运算次序,避免运算次序发生错误。
运算优先级从高到低顺序的列表如下:
优先级顺序 | 运算符 |
---|---|
1 | 括号 () |
2 | 幂运算符 ** |
3 | 一元运算符(+ 、- 、~ ) |
4 | 乘(* )、除(/ )、整除(// )、取余(% ) |
5 | 加(+ )、减(- ) |
6 | 按位左移(<< )、按位右移(>> ) |
7 | 按位与(& ) |
8 | 按位异或(^ ) |
9 | 按位或(& ) |
10 | 比较运算符(== 、!= 、> 、< 、>= 、<= ) |
11 | 逻辑非(not )、逻辑与(and )、逻辑或(or ) |