当前位置:编程学习 > 网站相关 >>

Dave Python练习—数字

#encoding=utf-8  
 
#****************** 数字  *********************  
 
#****************Part 1: 数字类型 **********  
 
#数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的  
#对象。当然,这个过程无论对程序员还是对用户都是透明的,并不会影响软件的开发方式。  
#Python 支持多种数字类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数。  
 
#按照Python 的法则, 你无法真正删除一个数值对象, 你仅仅是不再使用它而已。如果你  
#实际上想删除一个数值对象的引用, 使用 del 语句。 删除对象的引用之后,   
#你就不能再使用这个引用(变量名), 除非你给它赋一个新值。如果试图使用一个已经被  
#删除的对象引用, 会引发NameError 异常。  
 
#a=3  
#print(a,'id is:',id(a))  
#-->3 id is: 506090080  
 
#a+=1  
#print(a,'id is:',id(a))  
#--4 id is: 506090112  
#这个例子验证了上面的说法,当修改一个对象时,是生成了一个新的对象,而不是对原有对象进行修改。  
 
#del a  
#print(a,'id is:',id(a))  
#-->NameError: name 'a' is not defined  
 
 
#****************Part 2: 整型 **********  
#Python 有几种整数类型。布尔类型是只有两个值的整型。常规整型是绝大多数现代系统都  
#能识别的整型。Python 也有长整数类型。然而,它表示的数值大小远超过C 语言的长整数 。  
 
#布尔型  
#Python 从版本 2.3 开始支持布尔类型。该类型的取值范围只有两个值,也就是布尔值True和布尔值False  
 
 
#标准整数类型  
#Python 的标准整数类型是最通用的数字类型。在大多数32 位机器上,标准整数类型的取  
#值范围是-2^31 到2^31-1,也就是-2,147,483,648 到 2,147,483,647。如果在 64 位机器上使  
#用 64 位编译器编译Python,那么在这个系统上的整数将是64 位。  
#Python 标准整数类型等价于C 的(有符号)长整型。整数一般以十进制表示,但是Python也支持八进制或十六进制来表示整数。  
#如果八进制整数以数字“0”开始, 十六进制整数则以“0x” 或“0X” 开始。  
 
#长整型  
#不要将Python 的长整型和C 或其它编译型语言的长整数类型混淆。那些语言的长整数典型的取值范围是32 位或64 位。  
#Python 的长整数类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关, 换句话说, Python 能轻松表达很大很大很大的整数。  
#长整数类型是标准整数类型的超集, 当你的程序需要使用比标准整数类型更大的整数时,长整数类型就有用武之地了。  
#在一个整数值后面加个L(大写或小写都可以),表示这个整数是长整数。这个整数可以是十进制,八进制, 或十六进制。  
 
#核心风格:用大写字母 “L”表示长整数  
#尽管 Python 也支持用小写字母 L 标记的长整型,但是我们郑重推荐您仅使用大写的 “L”,  
#这样能有效避免数字1 和小写L 的混淆。Python 在显示长整数类型数值的时候总是用大写“L ”,目前整型和长整型正在逐渐缓慢的统一。  
 
 
#**************** Part 3: 双精度浮点数  **********  
#Python 中的浮点数类似C 语言中的double 类型, 是双精度浮点数,可以用直接的十进制或科学计数法表示。  
#每个浮点数占8 个字节(64 比特),完全遵守IEEE754 号规范(52M/11E/1S),  
#其中52 个比特用于表示底,11 个比特用于表示指数(可表示的范围大约是正负10 的308.25次方),   
#剩下的一个比特表示符号。这看上去相当完美,然而,实际精度依赖于机器架构和创建Python 解释器的编译器。  
#浮点数值通常都有一个小数点和一个可选的后缀e(大写或小写,表示科学计数法)。在e和指数之间可以用正(+)或负(-)表示指数的正负(正数的话可以省略符号)。  
#下面是一些典型的浮点数值的例子:  
#0.0 -777. 1.6 -5.555567119 96e3 * 1.0  
#4.3e25 9.384e-23 -2.172818 float(12) 1.000000001  
#3.1416 4.2E-10 -90. 6.022e23 -1.609E-19  
 
#**************** Part 4:复数  **********  
#一个实数和一个虚数的组合构成一个复数。一个复数是一对有序浮点数(x, y)。表示为 x + yj, 其中x 是实数部分,y 是虚数部分。  
 
#下面是Python 语言中有关复数的几个概念:  
#    虚数不能单独存在,它们总是和一个值为 0.0 的实数部分一起来构成一个复数。  
#    复数由实数部分和虚数部分构成  
#    表示虚数的语法: real+imagj  
#    实数部分和虚数部分都是浮点数  
#    虚数部分必须有后缀j 或J。  
#      
#下面是一些复数的例子:  
#64.375+1j 4.23-8.5j 0.23-8.55j 1.23e-045+6.7e+089j  
#6.23+1.5j -1.23-875J 0+1j 9.80665-8.31441J -.0224+0j  
 
#num1=5+1j  
#print(num1)  
#print(num1.real,num1.imag)  
#-->  
#(5+1j)  
#5.0 1.0  
 
#**************** Part 5:运算符  **********  
#混合模式运算符  
#Python 支持不同的数字类型相加。当一个整数和一个浮点数相加时, 系统会决定使用整数加法还是浮点数加法。  
#Python 使用数字类型强制转换的方法来解决数字类型不一致的问题, 也就是说它  
#会强制将一个操作数转换为同另一个操作数相同的数据类型。这种操作不是随意进行的, 它遵循以下基本规则。  
 
#首先,如果两个操作数都是同一种数据类型,没有必要进行类型转换。仅当两个操作数类  
#型不一致时, Python 才会去检查一个操作数是否可以转换为另一类型的操作数。如果可以,  
#转换它并返回转换结果。由于某些转换是不可能的,比如果将一个复数转换为非复数类型, 将  
#一个浮点数转换为整数等等,因此转换过程必须遵守几个规则。  
#  
#要将一个整数转换为浮点数,只要在整数后面加个 .0 就可以了。 要将一个非复数转换为  
#复数,则只需要要加上一个 “0j” 的虚数部分。这些类型转换的基本原则是: 整数转换为浮  
#点数, 非复数转换为复数。 在Python 语言参考中这样描述 coerce() 方法:  
#    如果有一个操作数是复数, 另一个操作数被转换为复数。  
#    否则,如果有一个操作数是浮点数, 另一个操作数被转换为浮点数。  
#    否则, 如果有一个操作数是长整数,则另一个操作数被转换为长整数;  
#    否则,两者必然都是普通整数,无须类型转换  
 
 
 
#标准类型运算符  
#相同类型之间的运算,即标准运算  
#print(2>1)  
#-->True  
 
 
#算术运算符  
#Python 支持单目运算符正号(+)和负号(-), 双目运算符, +,-,*,/,%,还有 ** ,  
#分别表示加法,减法, 乘法, 除法, 取余, 和幂运算。从Python2.2 起,还增加了一种新的整除运算符 //  
 
#地板除: // 除法不管操作数何种数值类型,总是舍去小数部分,返回数字序列中比真正的商小的最接近的数字。  
 
 
#幂运算  
#幂运算操作符和一元操作符之间的优先级关系比较特别: 幂运算操作符比其左侧操作数  
#的一元操作符优先级低,比起右侧操作数的一元操作符的优先级高,由于这个特性你会在算术运算符表中找到两个** .  
#  
 
#  
#*位运算符(只适用于整数)  
#Pyth

补充:Web开发 , Python ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,