1,034
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
python基本数字类型及操作:
1 整数(int)
和数学中的整数概念一致,可正可负,没有取值范围限制。9999**99(就是999999),也可计算出来。pow(9999,99)等价于9999**99。
整数有4种进制表示形式:
Y小小知识点:内置函数,就是不需要加载任何库,可以直接使用的函数。
>>> int(0x22b)
555
2 浮点数(float)
与数学中实数的概念一致。浮点型由整数部分与小数部分组成(1.48),所有浮点数必须带有小数部分,小数部分可以是0。小数部分可以没有值,但点必须有(21.,.21)。
浮点数有2种表示方法:十进制和科学计数法(2.53e3是指2.53*103,即2530,4.32e-3是指4.32*10-3,即0.00432)
对于实数运算可能会有一定的误差,尽量避免在实数之间直接进行相等性测试。由于python语言能够支持无限制且准确的整数计算,因此,如果希望获得精度更高的计算结果,往往采用整数而不直接采用浮点数。python通过标准库decimal提供了一个更精确的数字类型Decimal。
举例: >>>0.4-0.3==0.1 #0.4-0.3等于0.1对吗?
False #不是
>>>0.4-0.1 #0.4-0.1等于多少?
0.30000000000000004
为什么会这样呢????
怎么解决呢?
>>>round(0.1+0.2,9)==0.3 #round函数对0.1+0.2 的结果保留1位小数,即0.3。0.3显然是等于0.3的
True
格式:round(x[,小数位数]) 功能:对x进行四舍五入,若不指定小数位数,则返回整数。
>>>round(0.1+0.2,20)==0.3
False
math库函数isclose 格式: math.isclose(a,b,rel_tol=1e-09)
功能:判断两个浮点数的值是否接近或相等,这是由于浮点数的计算总是存在一定的误差。
参数说明: a,b:两个需要比较的浮点数;
rel_tol: 相对于输入值的大小,被认为是“接近”的最大差异;rel_tol默认值为1e-09
举例:
>>>math.isclose(0.4-0.1,0.3) #检测0.4-0.1和0.3是否足够接近,偏差在1e-9范围内,认为相等
True
Y浮点数的数值范围和小数精度受不同计算机系统的限制,sys.float_info详细列出了python解释器所允许系统的浮点数各项参数。
3 复数(complex)
在众多程序设计语言中,只有python提供复数类型。与数学中的复数概念是一致的。由实部和虚部构成a+bj。可以用real 和imag 分别获取复数的实部和虚部
举例: >>>x=3+4j
>>>y=5+6j
>>>x+y
(8+10j)
>>>x*y
(-9+38j)
>>>x.imag
4.0
>>>x.real
3.0
>>>abs(x)
5.0
以3为实部4为虚部,Python复数的表达形式为___________________。
4 数值运算操作符
各种算法如何表达?
比如计算圆的面积公式?比如计算一个数的平方的公式?比如已知两边及夹角求第三边的公式?
算数运算符 |
含义 |
举例 |
结果 |
+ |
加法或正号 |
1+2 |
3 |
- |
减法或负号 |
1-2 |
-1 |
* |
乘法 |
2*3 |
6 |
/ |
除法 |
10/2 |
5 |
// |
整除 |
5//2 |
2 |
** |
幂 |
2**3 |
8 |
% |
余数,取模运算 |
7%3 |
1 |
需要注意:
>>>10/3 #整数10除以整数3的结果是浮点数3.33333(区别于其他程序设计语言)
3.3333333333333335
>>>9**0.5 #相当于9开方(91/2),结果为3
3.0
>>>-15//4 #地板除,向下取整
-4
>>>123.45%3.2 #可以对实数进行余数运算
1.849999999999996
>>>(-9)**0.5 #可以计算负数的平方根,得到一个复数
(1.8369701987210297e-16+3j)
求余运算举例1:今天星期三,10天后星期几?
(3+10) % 7
求余运算举例2:判断一个数x是偶数还是奇数?
x % 2 是否等于0
1、表达式 3 * 2的值为___________。
2、Python运算符中用来计算整商的是_________。
3、表达式 3 // 5 的值为_______________。
4、表达式15 // 4的值为__________________。
5、表达式 3 ** 2 的值为_________。
6、表达式16**0.5的值为____________________。
7、 表达式 1234%1000//100 的值为___________。
二元操作符有对应的增强赋值操作符:
8、已知 x = 3,那么执行语句 x += 6 之后,x的值为_______________。
9、已知 x = 3,那么执行语句 x *= 6 之后,x的值为________________。
各类型(整型,浮点型,复数型)数字运算时的规则:
变成浮点数之后,再次运算,要注意可能会产生不确定的尾数喔! ^_^
5 数值运算函数
举例:
>>>abs(-4.0) #对负数取绝对值
4.0
>>>abs(3.0+4j) #对复数取模,即点坐标到原点的距离
5.0
>>>divmod(10,3) #输出元组(10//3,10%3)
(3,1)
>>>pow(2,3) #计算23
8
>>>pow(2,3,3) #计算23%3
2
举例:
>>>round(42.345) #对42.345四舍五入取整
42
>>>round(23.3433,2) #对23.3433四舍五入保留2位小数
23.34
>>>max(1,4,5,5,17,45,3,6,8) #得到一组数中的最大值
45
>>>min(34,67,-65,32,17,0) #得到一组数种的最小值
-65
举例:
举例:
>>> list(range(10)) #从0开始到10,不包括10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1,7)) #从1开始到7,但不包括7
[1, 2, 3, 4, 5, 6]
>>> list(range(0,10,3)) #步长为3
[0, 3, 6, 9]
>>> list(range(0,-7,-2)) #负数
[0, -2, -4, -6]
Range的本质:是Python中的一个不可变序列。
习题:
1、Python内置函数____________用来返回序列中的最小元素。
2、表达式 abs(-3) 的值为___________。
3、Python内置函数____________用来返回序列中的最大元素。
4、Python内置函数________________用来返回数值型序列中所有元素之和。
5、表达式 sum(range(10)) 的值为________________。
6、 表达式 sum(range(1, 10)) 的值为_____________。
7、表达式 sum(range(1, 10, 2)) 的值为____________。
6、math库介绍。
math库的数学常数:共4个;math库的数值表示函数:共16个;math库的幂对数函数:共8个;math库的三角运算函数:共16个;math库的高等特殊函数:共4个,共计4+16+8+16+8=48个函数。
8、Python标准库math中用来计算平方根的函数是__________。
更多的数学函数:cmath模块
math模块中的数学函数只能用于计算整数和浮点数,对于复数就无能为力了。cmath模块专门面向复数计算,还能实现平面直角坐标和极坐标之间的转换。
实验:
1、判断一个年份是否为闰年?
判断规则:如果年份y能被4 整除但是不能被100整除,或者能被400整除,则是闰年
算法实现: (y%4==0 and y%100!=0) or (y%400==0)
2、根据身份证号判断性别:依据身份证号的倒数第2位来判断男女,奇数为男,偶数为女。
3、求一元二次方程的解: 5x2+8x+3=0
4、给一个三位数,分别取出其个位、十位、百位上的数字
5、天天向上