CiaraZHAO用户 - CiaraZHAO - HydroOJ
Chap2 数据类型和操作
常用内置类型
整数Integer(int):离散的数据
浮点数Float:可以简单认为是小数
布尔值Boolean(bool):只有两种--真或假
-eg. print(type(2 < 2.2))
<class ‘bool’>
类型Type(类型也是种类型) Type是一种 类 的对象:判断其他数据的类型
常用内置常数
常数类型的值是不可修改的
Python内置了一些常量:
-True,用于表示布尔真
-False,用于表示布尔假
-None,代表空,用于空值
Math库中的一些数学常量:
-pi
-e
-tau(pi的两倍)
-inf,浮点正无穷大,等价于float(‘inf’),(把字符串inf强制类型转换变成一个浮点型),负无穷大使用-math.inf
常用内置运算符
-算术:@-矩阵乘法
//-整除
**-次方
%-模运算(余多少)
-关系:==-等于(在大多数编程语言里,=表示赋值)
-赋值:+=-例如c+=1即c=c+1
整除:
/指的是浮点数除法,它结果是浮点数,例如2/1的结果是2.0
//则是整除除法,它的结果是整数,舍弃小数位
判断一个数是否能被另一个数整除,即判断它除以该数的余数与零是否相等
模运算或余数预算符(%)
%代表模运算(取余),结果为商的余数
补充资料:注意%与math.fmod()的区别
类型影响语义
运算符的运作方式会受到运算数据的类型的影响
运算符优先级
优先顺序(先乘除后加减…)与结合律(有小括号先算小括号)
结合律
在加减乘除中从左往右算
在次方中从右往左算 eg.4**3**2=262144
浮点数误差
Print(0.1 + 0.1 + 0.1)
0.300000000000000004
十进制和二进制的转换存在误差+进制本身存在误差(二进制无法储存0.3这个值)
短路求值(进行逻辑判断)
关于第三行,首先看yes()为真,继续看crash()崩溃
不会继续调用isPositive的函数
Type() vs isinstance()
整数和浮点数不包括所有数字,还有负数
Instance()比type()更具有稳健性
这种做法更加符合 面向对象编程 中继承的思想
某些情况,instance()的判断比单纯使用type()覆盖的范围更广
Eg. Print(isinstance(“p2s”, str))
True
作业题:提高题不允许用循环的方式一开始没什么思路,可能之前粗略学的循环把自己思维给框住了,这点不太好;直接用数学公式求解时对库及库里的函数不够熟悉
注:课程资料来源:Datawhale课程简介 - 聪明办法学 Python 第二版 (datawhalechina.github.io)