首页 > IT职业 > IT生活 > 第二周学习--基本数据类型
上一周我们认识了基本的python程序结构,知道了python语法以及练习了一道温度转换问题。相信大家和我一样对python已经有一个初步的认识了,那么这一周,我们继续学习python的内容吧。
首先我们开始认识一下基本的数字类型吧:
1 整数类型其实与数学中的整数是一样的定义,整数类型包括正整数,负整数,没有取值范围。
pow(x,y),pow()函数,用来计算x的y次方
2 整数类型还有四种进制关系:
这里需要注意一下浮点数之间的运算会存在不定尾数的情况,不是语言的bug,是很多编程都会出现的情况。例如。
0.1 + 0.3 = 0.4
但是 0.1 + 0.2 = 0.30000000004
就是因为二进制与十进制转换的问题:
0.1 0.00011001100110011001100110011001100110011001100110011010 (二进制表示) 53位二进制表示小数部分,约10-16
0.1000000000000000055511151231257827021181583404541015625 (十进制表示)
0.1 + 0.2 二进制表示小数,可以无限接近,但不完全相同 结果无限接近0.3,但可能存在尾数
复数类型与数学中复数的定义相同,大家可先了解一下,日后我们用到再去具体讲解。
在编程中对于数字的操作是非常重要的,而数字之间的运算也是最常见的操作,对于掌握数字操作是一个很好地基础。
大家可以看下面这个例子:
一年365天,每天进步1‰,累计进步多少呢? 1.001365
一年365天,每天退步1‰,累计剩下多少呢? 0.999365
那么如何通过程序将问题解决呢?
dayup = pow(1.001,565)#每天进步千分之一
daydown = pow(0.999,365)#每天退步千分之一
print('向上的值为:{:.2f},向下的值为:{:.2f}'.format(dayup,daydown))
我们再来思考一个问题:
一年365天,一周5个工作日,每天进步1%
一年365天,一周2个休息日,每天退步1%
这种工作日的力量,如何计算呢
dayup = 1.0 # 定义一个初始进步值
dayfoctor = 0.01 #定义每天进步百分之一
for i in range(365):#每年365天 建立一个for循环
if i % 7 in [0,6]: #取模运算
dayup = dayup*(1-dayfoctor)
else:
dayup = dayup*(1+dayfoctor)
print('工作日的力量:{:.2f}'.format(dayup))
(运行结果) 工作日的力量:4.63
for i in range(365):
if i % 7 in [0,6]:
分析这段代码,我们可以知道 建立一个for循环,i 是进步的天数,可以自动循环一年。if i % 7 in [0,6],对 i 进行取模运算,如果余数为0则说明为为周末,如果余数为6则说明为周六,就是退步的时间。
那我们接着看这个问题:
工作日模式要努力到什么水平,才能与每天努力1%一样?
A君: 一年365天,每天进步1%,不停歇
B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力才能追上A呢?
def dayup(df):#创建函数
dayup = 1.0#设置初始值
for i in range(365):
if i % 7 in [0,6]:
dayup = dayup*(1 - 0.01)
else:
dayup = dayup*(1 + df)
return dayup
dayfoctor = 0.01
while dayup(dayfoctor) < 37.2:#如果一年的增长值小于A的进步则继续运行
dayfoctor += 0.001
print('工作日需要努力:{:.3f}'.format(dayfoctor))
这个代码借鉴了上一问的代码,但是为了判断是否追上了A,所以加入了while语句,用作与判断,通过while我们可以让程序自己判断是否超过了A,如果没有超过则进步值自增0.001,如果超过A,则跳出程序,结束运行。
好了,通过我们今天的学习,我们知道了基本的数字类型,还有数字操作的一些知识,并且通过了一个实例来研究数字操作。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4550/viewspace-2825567/ ,如需转载,请注明出处,否则将追究法律责任。