ITPub博客

首页 > 应用开发 > IT综合 > Python学习教程:基本数据类型

Python学习教程:基本数据类型

原创 IT综合 作者:千锋Python唐小强 时间:2020-06-01 17:41:07 0 删除 编辑

基本数字类型

首先我们开始认识一下基本的数字类型吧:

  • 整数类型
  • 浮点数类型
  • 复数类型

整数类型

1 整数类型其实与数学中的整数是一样的定义,整数类型包括正整数,负整数,没有取值范围。pow(x,y),pow()函数,用来计算x的y次方2 整数类型还有四种进制关系:

  • 十进制 100 99 -125
  • 二进制 0101001101 001110101
  • 八进制 以0o或0O开头 0o123, -0O456
  • 十六进制 以0x或者0X开头 0x9a

浮点数类型

  • 带有小数点以及小数的数字
  • 其取值范围基本无限制

这里需要注意一下浮点数之间的运算会存在不定尾数的情况,不是语言的bug,是很多编程都会出现的情况。例如。0.1 + 0.3 = 0.4但是 0.1 + 0.2 = 0.30000000004就是因为二进制与十进制转换的问题:0.1 
0.00011001100110011001100110011001100110011001100110011010 (二进制表示) 53位二进制表示小数部分,约
10-160.1000000000000000055511151231257827021181583404541015625 (十进制表示)0.1 + 0.2 二进制表示小数,可以无限接近,但不完全相同 结果无限接近0.3,但可能存在尾数

复数类型

复数类型与数学中复数的定义相同,大家可先了解一下,日后我们用到再去具体讲解。

数字运算操作符

在编程中对于数字的操作是非常重要的,而数字之间的运算也是最常见的操作,对于掌握数字操作是一个很好地基础。

  • x + y x与y相加
  • x - y x与y相减
  • x * y x与y相乘
  • x / y x与y相除
  • x // y x与y整数除,x与y之整数商 10//3结果是3
  • +X 表示 x的本身
  • -X表示负的X
  • x%y 余数,取模运算 10%3 为 1

数字运算相关函数

  • abs() 绝对值函数 abs(-10) = 10
  • divmod(x,y) 取余 商函数 同时输出两个数余和商divmod(10,3) = (3,1)
  • pow(x, y)幂函数
  • round(x[, d]) 四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12
  • max(x1,x2,xn)最大值函数 输出其中最大的一个
  • min(x1,x2,xn)最小值函数 输出其中最小的一个
  • int(x) 将X变成整型
  • float(x) 将X变为浮点型
  • complex(x)将X变成复数类型

实例分析–天天向上的力量

大家可以看下面这个例子:一年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博客 ” ,链接:http://blog.itpub.net/69923331/viewspace-2695530/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2019-05-14

  • 博文量
    875
  • 访问量
    466934