python学习笔记2014/10/23 python核心数据类型---数字

        1.关于除法  python3.0当中和其他语言有一个不同,如果两个整数用/这个运算符,那么得到的结果并不像java当中那样,是一个整数,而是一个浮点数。如果你希望得到一个和java当中一样的整数的话,需要使用//这个运算符。如果一个浮点数一个整数用//运算符的话,结果是一个浮点数。

        另://相当于向下截断,即取结果之下最近的整数。可以用math.floor()函数去完成截取。还有一种截取模式叫做向上截取,截取结果之上最近的整数。

        2.关于运算显示:python的命令行自动回显有时候会显示出很多位数的小数,这样看起来很不方便。出现这种情况的原因是与计算机存储浮点数的方式有关的。如果你不希望看到这样的结果,那么使用print把结果打印出来,这样显得更加友好。交互模式下,显示调用的是repr()方法,Print调用的是str()方法。

        3.若干个表达式用逗号连接起来,结果会显示一个元组变量。

        4.十进制数如何转化成为二进制,八进制和十六进制呢?使用python的内置函数:bin(),otc(),hex()就可以分别把整数转化成为二进制,八进制和十六进制的数。二进制,八进制和十六进制的数字也可以转化成为十进制,用int类型转化。比如int('0x40',16)就可以把0x40这个16进制的数转化成为十进制的64。

        5.随机的问题。需要导入一个模块,random。random模块下面有许多可以用来随机的属性。比如,random(),randomint(X,X)这里里面的两个数是一个范围,choice(列表)这里choice的参数是一个列表,返回列表里面的一个随机的值。

        6.小数类型。如果需要使用小数对象,需要一个导入操作:from decimal import Decimal。使用小数对象可以对结果的显示进行详尽的操作,也可以克服一般浮点数的一些精度的问题。比如如果在交互行里面输入0.1+0.1+0.1-0.3然后去利用回显显示运算结果,得到的结果并不是0.0,而是一个非常接近于0的数字,这是计算机浮点数表示的固有缺陷造成的。如果使用decimal这个对象来完成这样的操作的话就不会出现这样的问题。decimal对象的不好的地方是,会牺牲一部分性能。

        >>> 0.1+0.1+0.1-0.3
        5.551115123125783e-17
        >>> from decimal import Decimal
        >>> Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
        Decimal('0.0')
        >>>

        小数对象可以设置一个全局精度,可以通过设置decimal.getcontext().prec的值去设置。要注意,Decimal()的参数应该是字符串类型,如果不是字符串类型的话需要用转化把数据转化成为字符串类型才可以使用。也可以用小数的上下文管理器去设置一个临时的精度,当退出语句块以后,精度又恢复成原来的精度。

        >>> import decimal
        >>> with decimal.localcontext() as ctx:
                        ctx.prec=2
                        Decimal('1.0')/Decimal('3.0')

 
        Decimal('0.33')
        >>> Decimal('1.0')/Decimal('3.0')
        Decimal('0.3333333333333333333333333333')
        >>>

        7.分数类型。为了避免某些不精确性和局限性,设计了这样一个类型,它可以把分子和分母一起显示出来。要使用这个对象,需要导入fraction模块。使用其中的Fraction工具。分数类型可以用fractions.Fraction(1,2)去定义,也可以使用fractions.Fraction(.25)去定义。用分数形式去显示需要使用print打印。

        8.分数类型,浮点类型和小数类型是可以互相转换的。所有的浮点数都有一个方法,叫做as_integer_ratio()。这个函数返回一个元组,里面是一个分数形式的值,可以以这个返回值为参数初始化一个分数值。

      

 

你可能感兴趣的:(python学习笔记2014/10/23 python核心数据类型---数字)