zoukankan      html  css  js  c++  java
  • [Python入门及进阶笔记]Python基础数字小结

    博客迁往:新地址 (点击直达)

    新博客使用markdown维护,线下有版本库,自己写的所以会定时更新同步,同时提供更好的导航和阅读体验
    csdn对markdown支持不好,所以旧版不会花时间进行同步修订,抱歉


    ---------------------

    数字

    python中的数字类型完整工具:整数&浮点数,复数,固定精度十进制数,有理分数,集合,布尔类型,无穷的整数精度,各种数字内置函数和模块

    数类型

    Python中有四种类型的数

    整数:一般意义上的数,包含十进制(无前缀),八进制(0开头),十六进制(0x开头),二进制(0b开头)
    eg.  2
    
    长整数:无限大小的数,表示范围和内存有关                
    eg.   2012121200
    
    浮点数:小数或用e/E(10的幂)表示的幂,默认,浮点数学缺乏精确性,可以使用decimal         
    eg.   3.23      50.2E2
    
    复数:复数的虚部以字母J 或 j结尾     
    eg.    2+3i
    

    1.分数

    from fractions import Fraction
    x = Fraction(1,3)
    y = Fraction(4,6)
    

    浮点数和分数转换:

    (2.5).as_integer_ratio()  #返回元组(5,2)
    或者Fraction.from_float(1.75)
    

    2.复数

    a = 实数 + 虚数j
    a.real  #实部
    a.imag  #虚部
    a.conjugate()  #共轭复数
    

    虚数不能单独存在, 总是和一个值为0.0的实数部分一起构成一个复数

    实数部分和虚数部分都是浮点数

    运算符

    +加法
    -减法
    *乘法
    **幂次(也可以使用内建的pow()函数来进行幂运算) 
    /除法(2.x中是整除,3.x是浮点除)
    //取整,商的整数部分强制整除(浮点数也会做整除运算)
    %取余(可以使用内建的divmod()函数获得结果和余数的元组)
    &位与
    |位或
    ^位异或
    ~位翻转 x -> -(x+1)
    <<左移
    >>右移
    值不相等 a != b
    

    运算符优先级,同级从左到右

    BP:良好的做法是随时根据优先级需要加入括号,而不是依赖默认优先级

    内置函数

    最常用round

    1.abs(number)

    返回数字的绝对值,

    如果是复数, 返回math.sqrt(num.real2 + num.imag2)

    2.coerce(number1, number2)

    按照类型转换规则,将num1和num2转为同一类型,以元组形式返回

    3.divmod(number1, number2)

    返回一个包含商和余数的元组

    整数返回地板除和取余操作结果

    浮点数返回的商部分是math.floor(number1/number2)

    复数的商部分是ath.floor((number1/number2).real)

    4.pow(num1,num2,mod=1)

    同**操作符

    第三个为可选参数,即一个余数操作,若存在这个参数,先指数,后与第三个参数取余,性能比pow(x,y)%z更高

    5.round(number[, base])

    对浮点数进行四舍五入运算,base参数是小数位参数,决定了精确到小数点后几位

    6.其他

    其他内建及工厂函数在后面类型转换和进制转换中说明

    类型转换

    转换工厂函数主要在类型转换和进制转换中用到

    int(str, base=10) 转换为整型数,base为相应的进制;base的范围是2~32,base缺省十进制
    
    long(obj,base=10),  转长整型
    
    
    float(obj),转浮点数
    
    
    complex(str),complex(real, imag=0.0), 转复数
    
    bool(obj) 返回obj对象的布尔值,即obj.__nonzero__()方法返回值,没有__nonzero__()方法的对象默认值是True
    
    string(),转字符串  
    
    chr(num) ASCII数字值转为字符
    
    ord(chr) 字符转对应ASCII/Unicode值
    
    unichr(num) 接收Unicode码值
    

    进制转换

    八进制:0o1

    十六进制:0x10

    二进制0b1

    1.十进制到其他

    oct(64)  #->8  
    hex(64)  #->16
    bin(64)  #->2
    

    接收一个整型对象(任意进制),返回对应值的字符串

    2.其他到十进制

    int(‘64’) 
    int(‘100’,8)
    int(‘40’,16)
    int(‘1000000’,2)
    #或者  
    eval(‘64’)
    eval(‘0o100’)
    eval(‘0x40’)
    eval(‘0b1000’)
    

    其他

    1.小整数缓存

    >>> a = -5
    >>> b = -5
    >>> a  is b
    True
    >>> a = -6
    >>> b = -6
    >>> a is b
    False
    >>> a = -6
    >>> b = -6
    >>> a is b
    False
    >>> a = 256
    >>> b = 256
    >>> a is b
    True
    >>> a = 257
    >>> b = 257
    >>> a  is b
    False
    

    看python源代码可知,下限-5,上限256被设定为缓存范围。

    2.除法关于传统除法/真正除法/地板除传统除法

    >>> 1/2
    0
    >>> 1.0/2.0
    0.5
    

    真正除法

    >>> from __future__ import division
    >>> 1/2
    0.5
    >>> 1.0/2.0
    0.5
    

    地板除

    >>> 1//2
    0
    >>> 1.0//2.0
    0.0
    >>> -1//2
    -1
    

    常用模块

    math
    random
    decimal
    operator  
    

    下一篇数学常用模块中说明

    The end!

    To be continue

    wklken

    Email: wklken@yeah.net

    Blog: http://blog.csdn.net/wklken

    2013-03-09

    转载请注明出处,谢谢

    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    jQuery easyUI 的combogrid进行模糊匹配
    SQL 快速生成不重复的卡号
    用SQL语句查找包含有某个关键字的存储过程、触发器、函数等等
    C# DateTime日期格式化
    【SQL触发器】类型 FOR 、AFTER、 Instead of
    【BAT】批量给制定类型的文件名添加前缀
    【VBA】将Excel数据转化为txt文本数据
    【Python】将多个工作簿中的数据按列合并到同一个工作表
    【Python】从DB2数据库中取出字段信息并根据字段类型生成SQL
    【Oracle】多行数据合并为一行,使用逗号分隔
  • 原文地址:https://www.cnblogs.com/iplus/p/4464615.html
Copyright © 2011-2022 走看看