保留字和标识符
保留字
- 保留字是Python已经被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用(import是小写的不是大写的,写错了)
- 查看保留字
import keyword
print(keyword.kwlist)
- 保留字区分大小写
- 错误使用会报错:
SyntaxError 语法错误
标识符
- 标识符可以简单地理解为一个名字,它主要用来标识变量、函数、类、模块、和其他对象的名称
- Python标识符的命名规则
- 可以是字母、下划线 “_” 和数字,并且第一个字符不能是数字
- 不能使用Python中的保留字
- 标识符严格区分大小写
- 以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符
- 允许使用中文作为标识符,但不建议使用
标识符的命名规范
- 模块名尽量短小,并且全部用小写字母,可以使用下划线分隔多个字母。例如:grame_main
- 包名尽量短小,并且全部使用小写字母,不推荐使用方下划线。例如:com.bjmsb,不推荐使用com_bjmsb
- 类名采用单词首字母大写形式(Pascal风格)。例如:MyClass
- 模块内部的类采用 “_”+Pascal 风格的类名组成,例如:在MyClass中的内部类 _InnerMyClass
- 函数、类的属性和方法的命名,全部使用小写字母,多个字母之间使用下划线分隔
- 常量命名时采用全部大写字母,可以使用下划线
- 使用单下划线 “_” 开头的模块变量或函数式受保护的,在使用 “from xxx import *” 语句从模块中导入时,这些模块变量或函数不能被导入
- 使用双下划线 “_” 开头的实例变量或方法是类私有的
- 以双下划线开头和结尾的是Python的专用标识,例如:init() 表示初始化函数
变量、定义及使用
什么是变量
- 变量是保存和表示数据值的一种语法元素,可以简单的理解为 “名字”
- 变量的值是可以改变的,可以通过赋值的方式被修改
变量的定义
- 语法结构
- 变量名 = value
- Python是一种动态类型的语言,变量的类型可以随时变化
- 使用内置函数 type() 可以查看变量的数据类型
- 允许多个变量指向同一个值
- 使用内置函数 id() 可以返回变量所指的内存地址
变量命名应遵循以下几条规则
- 变量名必须是一个有效的标识符
- 变量名不能使用Python中的保留字
- 慎用小写字母 l 和大写字母 O
- 应选择有意义的单词作为变量名
常量
- 常量就是在程序运行过程中,值不能改变的量
- Python中没有定义常量的保留字
- 常量规定使用大写字母和下划线组成
- 常量首次赋值后,还是可以被其他代码修改的
基本数据类型
数值类型
整数类型
- 表示整数数值,即没有小数部分的数值
- 正整数、负数和0
- 理论上的取值范围内 [负无穷, 正无穷]
浮点数类型
- 表示带有小数点的数值
- 浮点数由整数部分和小数部分组成
- Python浮点数类型必须带有小数部分,小数部分可以是0
- 浮点数可以使用科学计数法表示
- 两个浮点数运算,有一定概率运算结果后增加一些 “不确定的” 尾数
- 使用内置函数 round() 限定运算结果需要保留的小数位数
-
print(round(3.14+1, 2))
-
- 不可变数据类型
复数类型
- Python中的复数与数学中的复数形式完全一致
- 复数由实部和虚部组成
- j 是复数的一个基本单位,被定义为 j = 根号-1,又称“虚数单位”
- .real 获取实数部分,.imag 获取虚数部分
- 不可变数据类型
字符串类型
- 字符串就是连续的字符序列,可以表示计算机所能识别的一切字符
- 不可变数据类型,即不可变字符序列
- 单行字符串使用 '……' 或 "……"
-
- 多行字符串使用 '''……''' 或 """……"""
转义字符
- 反斜杠字符()是一个特殊字符,在Python字符串中表示“转义”,该字符与后面相邻的一个字符共同组成一个新的含义
- 在字符串界定符前加上 r 或 R,转义字符失效,将原样输出
字符串的索引
- 对字符串中某个字符的检索成为索引
- 语法结构
- 字符串或字符串变量[序号]
字符串的切片
- 对字符串中某个子串或区间的检索称为切片
- 语法结构
字符串类型的操作
布尔类型
- 用来表示真值或假值
- 在Python中使用标识符 True 和 False 表示布尔类型的值
- 布尔类型可以转换化为数值,True表示1 False表示0
- 所有对象都有一个布尔值,使用内置函数bool() 进行测试
- 布尔值为假的情况
- False 或者 None
- 数值中的0,包含0, 0.0, 虚数0
- 空序列, 包含空字符串、空列表、空字典
- 自定义对象的实例,该对象的 _bool_() 方法返回 False 或 _len_() 方法返回0
数据类型之间的转换
隐式类型转换
通过数学运算可以隐式将 int类型 转换成 float类型
x = 10
y = 3
z = x/y
print(z, type(z)) # 3.3333333333 <class 'float'>
显式类型转换
eval() 函数
- eval(s)函数 将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符串
- 语法格式
- 变量 = eval(字符串)
- eval()函数 经常和 input()函数 一起使用,用来获取用户输入的数值型
age = eval(input("Enter your age: "))
print(age, type(age))
height = eval(input("Enter your height: "))
print(height, type(height))
hello = "你好"
print(eval("hello"))
不同的进制数
进制的进位
- 二进制:0或1组成,满二进一,以0b开头或0B开头
- 八进制:0~7组成,满八进一,以0o或0O开头
- 十进制:0~9,满十进一
- 十六进制:0~9 和 a~f 或 A~F 组成,满十六进一,以0x或0X开头
进制之间的转换
运算符
算数运算符
处理四则运算的符号,在数字的处理中应用得最多
运算符的优先级
- 先乘除后加减
- 同级运算符从左到右进行计算
- 可以使用 () 调整计算的优先级
算数运算符优先级由高到低
- 第一级:**
- 第二级:*,/,%,//
- 第三级:+,-
注意事项:除数不能为0
赋值运算符
- 主要用于为变量进行赋值
- 直接把赋值运算符 “=” 右边的值赋给左边的变量
Python 支持系列解包赋值
a,b = 10,20
print(a,b)
b,a =a,b
print(a,b)
比较运算符
- 也称关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则值为 True,比较结果为假,值为 False
逻辑运算符
- 逻辑运算符是对真和假两种布尔值进行运算,运算的结果仍是一个布尔值
- 使用逻辑运算符进行逻辑运算的结果
and: 当第一个表达式为 False 时,不计算第二个表达式
or: 当第一个表达式为 True 时,不计算第二个表达式
位运算符
- 位运算符是把数字看作二进制数来进行计算的,所以需要先将要执行运算的数据转换为二进制,然后才能进行执行运算
“位与” 运算(&)
* 两个操作数据的二进制表示,只有对应数位都是1时,结果数位才是1,否则为0
“位或” 运算(|)
- 两个操作数据的二进制表示,只有对应数位都是0时,结果数位才是0,否则为1
“位异或” 运算(^)
- 两个操作数据的二进制相同(同时为0或同时为1),结果为0,否则为1
“位取反” 运算(~)
- 操作数中对应的二进制数1修改为0,0修改为1
“左位移” 运算(<<)
- 将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充
- 左移位运算相当于乘以2的N次幂
“右位移” 运算(>>)
- 将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃,左边(高位端)的空位端,如果最高位是0(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1
- 右移位运算相当于除以2的N次幂