Python基础入门:从变量到异常处理
目录
一、变量、运算符与数据类型
1、注释
单行注释:#
多行注释:’’’ 注释内容’’’ 或者 “””注释内容”””
2、运算符
(1)算术运算符
+:加 例:2+1=3
-:减 例:2-1=1
*:乘 例:3*4=12
/:除 例:3/4=0.75
//:整除 例:3//4=0
%:取余 例:3%4=3
**:幂 例:2**3=8
(2)比较运算符
>:大于
>=:大于等于
<:小于
<=:小于等于
==:等于
!=:不等于
注:运算结果为True或False
(3)逻辑运算符
and:与
or:或
not:非
(4)位运算符
~:按位取反
&:按位与
`:按位或
^:按位异或
<<:左移
>>:右移
(5)三元运算符
条件成立时执行的表达式 if 条件 else 条件不成立时执行的表达式
举例:
x, y = 4, 5
small = x if x < y else y
print(small) # 4
(6)其他运算符
in:存在
not in:不存在
is :是
is not:不是
(7)运算符的优先级
** :指数(最高优先级)
~+ - :按位翻转、一元加号和减号
*、/、%、// :乘、除、取余、取模
+、- :加、减
<<、>> :左移、右移
& :位与
^| :位或
>= 、>、<、<=:比较运算符
==、!= :等于运算符
= :赋值运算符
is 、is not :身份运算符
in、not in :成员运算符
not、and、or :逻辑运算符
(8)注意:
is、is not对比的是两个变量的内存地址
==、!=对比的是两个变量的值
若对比的两个变量指向的都是地址不可变的类型(str等),那么is、is not与==、!=是完全等价的。
若对比的两个变量指向的都是地址可变的类型(list、dict、tuple等),那么二者是有区别的。
3、变量和赋值
在使用变量之前,需要先对其进行赋值
变量名可以包含字母、数字、下划线,但不能以数字开头
区分大小写
4、数据类型与转换
(1)整型(int, long, short等)、浮点型(float, double等)、布尔型
(2)获取数据类型
① type(变量名):不考虑继承关系
② isinstance(变量名):考虑继承关系
(3)数据类型转换
① 转换为整型int(变量名)
② 转换为字符串str(变量名)
③ 转换为浮点型float(变量名)
5、print()函数
二、位运算
1、原码、反码、补码
原码:就是其二进制表示(注意,有一位符号位)
00 00 00 11 -> 3
10 00 00 11 -> -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余为取反
00 00 00 00 -> 3
11 11 11 00 -> -3
补码:正数的补码就是原码,负数的补码是反码+1
00 00 00 11 -> 3
11 11 11 01 -> -3
符号位:最高位为符号位,0表示正数,1表示负数,位运算中符号位也参与运算
2、按位运算
(1)按位非运算:~
(2)按位与运算:&
(3)按位或运算:|
(4)按位异或运算:^ 两个对应位相同时为0,不同为1
(5)按位左移运算:<<
(6)按位右移运算:>>
3、利用位运算实现快速计算
4、利用位运算实现整数集合
三、条件语句
1、if语句
if 条件:
条件满足时执行代码块
2、if-else语句
if 条件:
满足条件时执行的代码块
else:
不满足条件时执行的代码块
3、if-elif-else语句
if 条件:
代码块
elif 条件:
代码块
……
else:
代码块
4、assert关键字
assert 条件
assert称为“断言”,当这个关键字后面的条件为False时,程序自动崩溃并抛出AssertionError的异常。
四、循环语句
1、while循环
while 布尔表达式:
代码块
2、while-else循环
while 布尔表达式:
代码块
else:
代码块
3、for循环
for 迭代变量 in 可迭代对象:
代码块
4、for-else循环
for 迭代变量 in 可迭代对象:
代码块
else:
代码块
5、range()函数
range(start, stop, step=1)
生成一个从start开始到stop结束,步长为step的数字序列,包含start的值,不包含stop的值。
6、enumerate()函数
enumerate(可迭代对象,[start=0])
start:下标起始位置
enumerate与for循环结合使用
for i, a in enumerate(A):
代码块
a为A中的元素,i为元素对应的下标
7、break语句
跳出当前循环
8、continue语句
终止本轮循环,继续下一轮循环
9、pass语句
空语句
10、推导式
(1)列表推导式
[expr for value in collection [if condition]]
(2)元组推导式
(expr for value in collection [if condition])
(3)字典推导式
{key_expr:value_expr for value in collection [if condition]]
(4)集合推导式
{expr for value in collection [if condition]}
(5)next(可迭代对象)
首次调用返回可迭代对象中的第一个元素,后续依次后移
五、异常处理
1、python标准异常总结
-
BaseException:所有异常的 基类
-
Exception:常规异常的 基类
-
StandardError:所有的内建标准异常的基类
-
ArithmeticError:所有数值计算异常的基类
-
FloatingPointError:浮点计算异常
-
OverflowError:数值运算超出最大限制
-
ZeroDivisionError:除数为零
-
AssertionError:断言语句(assert)失败
-
AttributeError:尝试访问未知的对象属性
-
EOFError:没有内建输入,到达EOF标记
-
EnvironmentError:操作系统异常的基类
-
IOError:输入/输出操作失败
-
OSError:操作系统产生的异常(例如打开一个不存在的文件)
-
WindowsError:系统调用失败
-
ImportError:导入模块失败的时候
-
KeyboardInterrupt:用户中断执行
-
LookupError:无效数据查询的基类
-
IndexError:索引超出序列的范围
-
KeyError:字典中查找一个不存在的关键字
-
MemoryError:内存溢出(可通过删除对象释放内存)
-
NameError:尝试访问一个不存在的变量
-
UnboundLocalError:访问未初始化的本地变量
-
ReferenceError:弱引用试图访问已经垃圾回收了的对象
-
RuntimeError:一般的运行时异常
-
NotImplementedError:尚未实现的方法
-
SyntaxError:语法错误导致的异常
-
IndentationError:缩进错误导致的异常
-
TabError:Tab和空格混用
-
SystemError:一般的解释器系统异常
-
TypeError:不同类型间的无效操作
-
ValueError:传入无效的参数
-
UnicodeError:Unicode相关的异常
-
UnicodeDecodeError:Unicode解码时的异常
-
UnicodeEncodeError:Unicode编码错误导致的异常
-
UnicodeTranslateError:Unicode转换错误导致的异常
2、python标准警告总结
-
Warning:警告的基类
-
DeprecationWarning:关于被弃用的特征的警告
-
FutureWarning:关于构造将来语义会有改变的警告
-
UserWarning:用户代码生成的警告
-
PendingDeprecationWarning:关于特性将会被废弃的警告
-
RuntimeWarning:可疑的运行时行为(runtime behavior)的警告
-
SyntaxWarning:可疑语法的警告
-
ImportWarning:用于在导入模块过程中触发的警告
-
UnicodeWarning:与Unicode相关的警告
-
BytesWarning:与字节或字节码相关的警告
-
ResourceWarning:与资源使用相关的警告
3、try-except语句
try:
检测代码
except Exception[as reason]:
出现异常后的处理代码
4、try-except-finally语句
try:
检测代码
except Exception[as reason]:
出现异常后的处理代码
finally:
无论如何都会执行的代码
5、try-except-else语句
try:
检测代码
except Exception[as reason]:
出现异常后的处理代码
else:
没有出现异常执行的代码
6、raise语句
python中使用raise语句抛出一个指定的异常