==============python==============
大家好,好久不见,
今天我们接着之前的内容, 谈谈python的简单基础内容, 欢迎大家在给我留言一起探讨分享python的学习经历。一、整数 和我们平时使用的数字一样,整数就是不带小数部分的数字。如1、45、-100、954565这些都是整数,但是python和其他程序设计语言不同,python语言的整数不区分数字的长度,他甚至可以直接表示几百位的大数据。 下面我们来看一个例子: 计算9的100次方
>>>9**100 #表示整数9 的100次方265613988875874769338781322035779626829233452653394495974574961739092490901302182994384699044001 #9 的100次方的计算结果
从上上面的例子可以看下出,在python中可以将一个很大的数字直接显示出来,而不因为数字太大位数太多而造成内存泄露不能正常输出。对于整数的表示方法,在python中提供了四种数制:十进制,二进制,八进制,十六进制。其中十进制是python的默认的书写方式,而另外三种进制(二进制,八进制、十六进制)在输入或者输出时候需要加入特定的前缀:二进制(0b)、八进制(0o)、十六进制(0x),这些前缀中的字母(b、o、x)也可以是大写,也可也是小写。在六进制数中,使用A~F表示十进制时表示的10~15,同样A~F也可以换成a~f。同样我们有用几个小例子来看看各种进制表示整数:
>>>x=0b1010 #将二进制数的值赋给变量x(即,让变量x 等于二进制数1010)>>>x #调取变量x的值(默认十进制的方式打开)10 #按默认的十进制方式显示x的值(即,二进制数1010同十进制数10表示的数据是同一个数,大小相同)>>>y=0o15 #将八进制数的值赋给变量y(即,让变量y 等于八进制数15)>>>y #调取变量y的值(默认十进制的方式打开)13 #按默认的十进制方式显示y的值(即,八进制数15同十进制数13表示的数据是同一个数,大小相同)>>>z=0x2f #将十六进制数的值赋给变量y(即,让变量y 等于八进制数15)>>>z #调取变量z的值(默认十进制的方式打开)47 #按默认的十进制方式显示y的值(即,十六进制数2f同十进制数47表示的数据是同一个数,大小相同)
在上面的代码中"#"号后面的是改行语句的注释,由于解释每行代码的含义,在程序审计中合理的代码注释有利于增加程序的可读性,在程序的二次开发,维护中可以起到极其重要的作用。
二、浮点数浮点数也就带小数点的数字即小数。所谓“浮点”是相对于“定点”而言的,即小数点的位置不在固定,而是可以浮动。在数据存储长度有限的情况下采取浮点表示,有利于在数值变动范围为很大或者数值很接近0时,仍能保证一定长度的有效数字。与整数相比,浮点数存在上限和下限。计算结果如果超出上限和下限就会导致溢出错误;并且浮点数只能以十进制的形式书写。
>>>100.0**100 #100.0的100次方1e+200 #科学计数法表示上述式子的计算结果,读作1的200次方>>>100.0**1000 #100.0的1000次方Traceback (most recent call last): File "", line 1, in <module> 100.0**1000OverflowError: (34, 'Result too large') #4到7 行表示100.0的1000次方产出浮点数字的上限表示范围产生溢出错误
值得一提的是,计算机不一定能完全精准的表示程序中书写或计算出的实数(
即计算机计算处理得出的数据与根据学数学思维推演得出的理论数值存在一定的差异),究其原因主要有两:(一)计算机的存储能力有限,不能精确的存储,显示无限小数会产生误差;(二)计算机内内部硬件上采用二进制表示数据,但不是所有十进制数都可以用二进制精确表述出来
>>> 2/30.6666666666666666 #理论上2/3的结果是一个无限循环小数,但是由于长度限制仅能显示有限位小数>>> 1-2/30.33333333333333337 #理论值与实际显示值不同,同样也是因为溢出造成的误差
三、布尔值 布尔值就是逻辑值,只有两种状态:True和False,分别表示"逻辑真"和"逻辑假",在计算机机器数表示中其实质就是“1”和“0”。在python3中“ True ”和“ False ”作为是关键字,可以在编程中直接使用。 下面通过两个集体的小案例我们来看看布尔值的应用: 比较左右左右两边值是否相等
>>>1==1.0 #比较1和1.0这两个数字是否相等True #1 和1.0都是数字类型,而而且在数值上大小相等所以返回值位“逻辑真”>>>123=='123' #比较数字123和字符串'123'是否相等False #由于左边是数字型的123,与右边的字符串型的值'123'是不同类型的值所以左右两边不相等,所以返回值位“”逻辑假
(字符串是python的另一种基本数据类型,我们在下次与大家一起探讨)
四、复数
>>> (3+4j)*(4+7j) #复数(3+4j)和复数(4+7j)相乘(-16+37j) #相乘的计算结果为(-16+37j)>>> (3+4j).real #调real属性3.0 #显示复数(3+4j)的实部>>> (3+4j).imag #调imag4.0 #显示复数(3+4j)的虚部
今天关于数字类型我们就分享到这里,下次我们分享另外一种基本数据类型——字符串