1.3.1保留字和标识符
1.3.1.1保留字
保留字是Python语言中一些已经被赋予特定意义的单词。在使用中不可以把这些保留字作为变量、函数、类、模块和其他对象使用。
Python中保留字可以通过执行代码进行查看:
import keyword
print(keyword.kwlist)
结果如下:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
1.3.1.2标识符
标识符可以简单的理解为一个名字,主要是用来给 变量、函数、类、模块和其他的对象进行标识
Python标识符命名规则如下:
1.由数字、字母、下划线组成、第一个字符不能是数字
2.不能是保留字
3.区分大小写(a和A不同)
在python中使用_开头的标识符有特殊的含义
1.以单下划线开头的标识符表示不能直接访问的类属性,另外,也不能通过‘from XXX import *’导入
2.以双下划线开头的表示类的私有成员
3.以双下划线开头和结尾的是Python里专用的标识,如__init__()表示构造函数
在Python中,是可以使用汉字作为标识符(不推荐使用)
1.3.1.3注释
1.单行注释
使用#作为单行注释的符号。从符号# 开始直到换行为止,#后面所有内容都作为注释的内容
a=1 #设置变量为整数类型,并赋值为1
2.多行注释
使用’’’… ‘’’ 或者”””…”””
"""
a=1
b=2
c=3
"""
1.3.1.4 代码缩进
Python采用代码缩进和冒号‘:’,区分代码之间的层次,在PyCharm中,使用tab键整体右移,shift+tab整体左移
1.3.2变量
Python中变量不需要先声明变量名字及其类型,直接类型即可创建各种类型的变量。变量名字应该遵循以下原则:
变量名必须是一个有效的标识符
变量名不能使用Python中的保留字
应选择有意义的变量名作为变量名
为变量赋值可以通过等号(=)来实现,语法格式:
变量名称=value
例:
number=2048#定义一个整型变量
number1=10.48#定义一个浮点类型
string='谷雨飞鱼'#定义一个字符串类型
Python是一种动态型语言,也就是说,变量的类型可以随时变化。这句话的意思就是说,如果某一个变量先赋值为整型,可以再赋值为一个字符串类型。使用type()可查看变量的类型
number=1#这里是整型
print(type(number))
number=1.1#这里是浮点型
print(type(number))
运行结果:
<class 'int'>
<class 'float'>
在Python中,允许多个变量指向同一个值,使用id可查看变量指向的内存地址。
a=1024
b=1024
print('a的地址是'+str(id(a)))
print('b的地址是'+str(id(b)))
运行结果:
a的地址是1587529549936
b的地址是1587529549936
1.3.3基本数据类型
1.3.3.1数字类型
1.整数
整数用来表示整数数值,即没有小数部分的数值
2.浮点数
浮点数由整数部分和小数部分组成,主要用于处理包括小数的数
3.复数
Python中的复数与数学中的复数形式一致,都是由实部和虚部结合的
1.3.3.2 字符串类型
字符串就是连续的字符序列。可以是计算机所能表示的一切字符的集合。在Python中,字符串属于不可变序列,通常使用单引号,双引号,三引号括起来
Python中还支持转义字符,所谓转义字符就是指使用反斜杠‘\’对一些特殊字符进行转义。
常用的转义字符:
转义字符 | 说明 |
---|---|
\(在行尾时) | 换行符 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\” | 双引号 |
\000 | 空 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数yy代表的字符,例如:\o12代表换行 |
\xyy | 十进制数yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
1.3.3.3布尔类型
布尔类型主要用来表示真值或假值。在python中,标识符True和False被解释为布尔值。Python中的布尔值可以转化为数值,True表示1,False表示0
在Python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种方式情况得到的值为假,其他对象在if或者while语句中都表现为真
1.False或者None
2.数值中的零
3.空序列包括字符串、空元组、空列表、空字典
4.自定义对象的实例,该对象的__bool__方法返回False或者__len__方法返回0
1.3.3.4数据类型转化
Python是动态类编程语言(也成弱类型语言),不需要在使用变量前声明变量的类型,但在使用过程中也需要对数据类型进行转化。
在Python中,提供了一下常见的数据类型的转化:
函数 | 作用 |
---|---|
int(x) | 将 x 转换为整数类型 |
float(x) | 将 x 转换为浮点数类型 |
complex(real[,imag]) | 创建一个复数 |
str(x) | 将 x 转换为字符串 |
repr(x) | 将 x 转化为表达式字符串 |
chr(x) | 将整数 x 转换为一个字符 |
eval(str) | 计算在字符串中的有效Python表达式,并返回一个对象 |
ord(x) | 将一个字符 x 转化为它所对应的整数值 |
hex(x) | 将一个字符 x 转化为一个十六进制的字符串 |
oct(s) | 将一个字符 x 转化为一个八进制的字符串 |
1.3.4运算符
1.3.4.1算术运算符
算数运算符就是处理四则运算的符号,在数字的处理中应用的最多。
运算符 | 说明 | 实例 | 结果 |
---|---|---|---|
+ | 加 | 14+12 | 28 |
- | 减 | 9-3 | 6 |
* | 乘 | 3*3 | 9 |
/ | 除 | 9/3 | 3 |
% | 取余 | 7/2 | 1 |
// | 取商 | 7/2 | 3 |
** | 幂 | 2**3 | 8 |
注:在算术运算符中,使用%符号,如果除数是负数,那么结果也是负数
使用//或/时除数不能为0
1.3.4.2赋值运算符
赋值运算符主要是为变量赋值,把右边的值赋值给左边,常用的赋值运算符如下表所示:
运算符 | 说明 | 举例 |
---|---|---|
= | 简单的赋值运算符 | x=y 将y的值赋值给x |
+= | 加赋值 | x+=y 将x+y的值赋值给x |
-= | 减赋值 | x-=y 将x-y的值赋值给x |
*= | 乘赋值 | x*=y 将x*y的值赋值给x |
/= | 除赋值 | x/=y 将x/y的值赋值给x |
%= | 取余数赋值 | x%=y 将x%y的值赋值给x |
**= | 幂赋值 | x**=y 将x**y的值赋值给x |
//= | 取整数赋值 | x//=y 将x//y的值赋值给x |
1.3.4.3比较运算符
比较运算符,也称为关系运算符。用于对变量或表达式的结果进行大小、真假的比较,比较结果为真则返回Ture,比较结果为假则返回false。比较运算符通常是在if语句中作为判断条件的,常见的比较运算符见下表:
运算符 | 作用 |
---|---|
> | 大于 |
< | 小于 |
<= | 小于等于 |
>= | 大于等于 |
== | 等于 |
!= | 不等于 |
在Python中,如果想要判断某个数是否在两数之间可以使用”数值1<变量<数值2”的形式
1.3.4.4逻辑运算符
逻辑运算符主要是对两个布尔值进行运算,运算的结果仍是一个布尔值。常见的逻辑运算符主要有
运算符 | 说明 |
---|---|
and(与) | 一假则假 表达式有一个是假的就为假 |
or(或) | 一真则真 表达式有一个是真的就为真 |
not(非) | 结果相反,真的假,假的真 |
我们先看一个符合条件的:
a = 5 #定义一个整数为5
if a>3and a<6: #条件含义为a>3的同时a<6时,输出ture
print("True")
if a<3 or a==5 : #条件含义为a<3或者a==5时,输出ture
print("True")
if not(a>5): #条件含义为先判断a是否大于5,这里结果为false,因为取反,所以这里为true,输出true
print("True")
运行结果:
True
True
True
不符合条件:
a = 6 #定义一个整数为6
if a>3and a<6: #条件含义为a>3的同时a<6时,只满足了a>3,输出false
print("True")
else:
print("False")
if a<3 or a==5 : #条件含义为a<3或者a==5时,两个条件都不满足,输出false
print("True")
else:
print("False")
if not(a>5): #条件含义为先判断a是否大于5,这里结果为true,因为取反,所以这里为false,输出false
print("True")
else:
print("False")
运行结果:
False
False
False
1.3.4.5位运算符
位运算是将数字转化成二进制数来运算的。常见的位运算符(个人感觉用到的不是很多,简单说明下):
运算符 | 说明 |
---|---|
位与(&) | 两个操作数据的转换为二进制,对位数都是1时,才是1。否则为0 |
位或() | 两个操作数据的转换为二进制,对位数都是0时,才是0。否则为1 |
位异或(^) | 两个操作数据的转换为二进制,对位数同时为0或同时为1,结果是0。否则为1 |
位取反(~) | 操作数据的转换为二进制,0为1,1为0 |
左移位运算符<< | 整体左移,左边溢出的位被丢弃,右边的用0补。相当于乘以2的n次幂 |
右移位运算符>> | 整体右移,右边溢出的位被丢弃,左边的用0补。相当于除以2的n次幂 |
1.3.4.6运算符优先级
Python运算符的运算规则是,优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序执行。运算符优先级说明如下:
运算符说明 | Python运算符 | 优先级 |
---|---|---|
小括号 | () | 19 |
索引运算符 | x[i] 或 x[i1: i2 [:i3]] | 18 |
属性访问 | x.attribute | 17 |
乘方 | ** | 16 |
按位取反 | ~ | 15 |
符号运算符 | +(正号) -(负号) | 14 |
乘除 | * / % // | 13 |
加减 | +、- | 12 |
位移 | << >> | 11 |
按位与 | & | 10 |
按位异或 | ^ | 9 |
按位或 | I | 8 |
比较运算符 | ==、!=、>、>=、<、<= | 7 |
is 运算符 | is、is not | 6 |
in 运算符 | in、not in | 5 |
逻辑非 | not | 4 |
逻辑与 | and | 3 |
逻辑或 | or | 2 |
逗号运算符 | exp1,exp2 | 1 |
在编程时尽量使用()来限定运算次序,避免运算次序发生错误