数字类型
一:整数
python有4种进制表示形式
- 十进制:110120119
- 二进制:以0b或0B开头:0b010,0B001
- 八进制:以0o或0O开头,0o110,0O120
- 十六进制:以0x或0X开头:0x1a,0X23
二:浮点数
(Why???)
浮点数间运算存在不确定尾数,不是bug
0.1
python语言使用53位二进制来表示浮点型的小数部分
又因为二进制表示小数,可以无限接近,但不完全相同
而计算机数据由二进制表示
所以出现会出现上述问题
解决办法:使用round函数
round(x,d):对x四舍五入,d是小数截取位数
round(0.1+0.2,1)==0.3
浮点数也可以用科学计数法表示,e或E为幂的符号,10为基数
5.2e2表示520
1.134E3表示1314
三:复数 (与数学中概念一样,a+bj)
z=3+4j
z.real取实部
z.imag取虚部
特殊操作符
- x/y:除,x与y之商 10/3结果为3.333333333
- x//y:整数除,x与y的整数商,10//3结果为3
- x** y:x的y次幂,4**2为16 , 4 **0.5为2
注意****注意:类型间混合运算,生成最宽类型
整数->浮点数->复数
如 110+10.0=120.0
运算函数(提供两个,其余的要用到再查表)
- divmod(x,y):商余,(x//y,x%y) 同时输出商和余数
divmod(13,3)结果为(4,1)
-pow(x,y,z):幂余,(xy)%z, z可省略
pow(2,5,3)结果为2
实例:
每周休息两天每天退步1%,工作日5天每天进步多少,一年之后你的能力能提高10倍?
#DayDayUp.py
def dayUP(df): #def定义一个函数dayUP(参数)
dayup = 1
for i in range(365):
if i % 7 in [6,0]:
dayup = dayup*(1 - 0.01)
else:
dayup = dayup*(1 + df)
return dayup
dayfactor = 0.01
while dayUP(dayfactor) < 10: #判断条件是否成立,条件成立时循环执行
dayfactor += 0.001
print("工作日的努力参数是:{:.3f} ".format(dayfactor))
#{:.3f}.format(a)指输出a的三位小数
结果