-
基本类型
整数 integer
(7000能买到什么? 分类问题,离散;
手机要多少钱? 回归问题 , 连续)
浮点数 float(默认双精度)
布尔值 bool
类型type。类型也是种类型
其它类型:
字符串String(str)
列表 list
元祖tuple
集合set
字典 Dictionary (或叫映射 map)
复数complex number
函数 function
模块 model
用数组array方式讲授
python内置常数
True,False,None
Math 库中的数学常量
Pi/e/tau/inf
-
常用内置运算符
算数: +,-,*@,/,//(整除,去小数),**,%,-,+
关系:<,<=,>=,>,==,!=
赋值:+=,-=,*=,/=,//=,**=,%=
逻辑:and,or,not
取余的两种运算
%. .math.fmod
math.fmod函数与“%”求模运算符(如:x % y)的区别如下:
- 前者始终返回浮点数;后者在x、y均为整型时,返回整型,其他情况下,即x、y任有一浮点型时,结果均返回浮点型。
- 前者返回结果的符号(正负)始终与x相同;后者所得结果的符号(正负)始终与y相同。
- 前者返回结果的绝对值始终等于“|x| % |y|”;对于后者,若x与y符号(正负)相同,结果的绝对值为“|x| % |y|”,若x与y的符号(正负)不同,结果的绝对值为“|y| - (|x| % |y|)”
资料来源:https://zhuanlan.zhihu.com/p/94227548
整数不能和字符串相加
海象表达式
使用的时候给变量赋值
用于循环 if -else,while, 列表推导式,
相当于不是恒等于,是用一个表达式给变量赋多次值
便于读取多个文件。
运算符优先级precedence
Python 运算符优先级从高到低如下:
**:幂运算
~, +, -:按位取反,正号,负号
*, /, %, //:乘,除,取模,整除
+, -:加,减
<<, >>:左移,右移
&:按位与
^:按位异或
|:按位或
==, !=, >, >=, <, <=, is, is not, in, not in:比较运算符,包括身份运算符和成员运算符
not:布尔“非”
and:布尔“与”
or:布尔“或”
结合律:j从左右算,(幂从右往左算)
浮点数
浮点误差
尽量遵循下面几个原则,尽可能的减少由于浮点数造成的错误,或者减少误差:
1.避免相近的两数相减
例如a1 = 0.12345,a2 = 0.12346,各有5位有效数字,而 a2 - a1 = 0.00001,只剩下1位有效数字,容易造成相对误差增大,严重影响最终计算精度。
2.避免小分母
例如单精度浮点数,阶码表示的范围是-126~127,分母过小,分母和分子的阶码叠加,可能造成浮点数的溢出
3.避免大数吃小数
4.简化计算步骤
减少运算次数(运算量),避免误差积累。
来源:浮点数误差 - 知乎
逻辑运算 短路求值
与and 或 or 非not
什么是短路求值?
作为and和or操作符的操作数表达式,当表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值(short-circuit evaluation)
(百度安全验证)
(RealPython 基础教程:Python 运算符和表达式:
4.复合表达式与短路求值)
Type VS Isinstanse
type不能判断复数
做法:
总结:
pyhton系统类型丰富,使用type查看对应的类型
常数的类型不可修改
/是浮点数除法,//整数除法
运算符的优先级
逻辑判断,短路求值