您的位置:澳门新葡8455最新网站 > 编程教学 > python2精确除法,浅谈python数字类型

python2精确除法,浅谈python数字类型

发布时间:2019-11-04 10:57编辑:编程教学浏览(82)

    python2和python3除法的最大分化:

    浅谈python中的数字类型与管理工科具,浅谈python数字类型

    python中的数字类型工具

    python中为更高档的劳作提供数不胜数尖端数字编制程序帮忙和指标,当中数字类型的总体育工作具满含:

    1.平头与浮点型,

    2.复数,

    3.恒久精度十进制数,

    4.有理分数,

    5.集合,

    6.布尔项目

    7.无穷的整数精度

    8.各类数字内置函数及模块。

    骨干数字类型

    python中提供了两种基本项目:整数(正整数金额负整数卡塔尔和浮点数(注:带有小数部分的数字卡塔 尔(英语:State of Qatar),在那之中python中大家得以应用七种进制的子弹头。并且整数能够用有无穷精度。

    大背头的表现方式以十进制数字字符串写法现身,浮点数带三个小数点也许利用科学计数法e来代表。在python2版本中,整数还分为日常整数(叁九个人卡塔 尔(阿拉伯语:قطر‎和长整数(无穷精度卡塔 尔(英语:State of Qatar),长整数以l结尾。带了python3中整数就唯有风姿浪漫种样式了,具备界限精度。

    自然,在Python中整数还应该有二进制(0bxxxxxxxx卡塔 尔(英语:State of Qatar),八进制(0oxxxxxxxx卡塔尔,和十七进制(0x xxxxxxxx卡塔尔国的花样现身。

    十进制数与别的进制的转变:

    s=16
    print(bin(s))
    print(oct(s))
    print(hex(s))
    
    运行结果:
    0b10000
    0o20
    0x10
    
    print('{0:o},{1:x},{2:b}'.format(16,16,16))
    print('%o,%x,%X'%(16,16,16))
    运行结果:
    20,10,10000
    20,10,10
    

    其他进制转变为十进制:

    a=int('0b10000',2)
    b=int('0o20',8)
    c=int('0x10',16)
    print(a)
    print(b)
    print(c)
    运行结果:
    16
    16
    16
    
    print(eval('16'))
    print(eval('0b10000'))
    print(eval('0o20'))
    print(eval('0x10'))
    运行结果:
    16
    16
    16
    16
    

    python表明式操作符

    表达式是数学符号和操作符号写出来的,下表为python表达式操作符与程序:

    操作符 描叙
    yield 生成 器函数发送协议
    lambda args:expression 生成匿名函数
    x if y else z 三元表达式
    x or y 逻辑或(存在短路算法)
    x and y 逻辑与(存在短路算法)
    not x 逻辑非
    x in y , x not in y 成员关系
    x is y ,x is not y 对象实体測试
    x<y,x<=y,x>y,x>=y,x==y,x!=y 比較大小
    x|y 位或,集合并集
    x^y 位异或,集合对称差
    x&y 位与,集合交集
    x<<y,x>>y 左移或者右移y位
    x+y,x-y 加减法、合并删除
    x*y,x%y,x/y,x//y 乘,取余数,除,地板除
    -x,+x 一元减法
    ~x 按位求补(取反)
    x**y 幂运算
    x[i] 索引,函数调用
    x[i:j:k] 分片
    x(...) 调用函数
    x.attr 调用属性
    (...) 元组,表达式,生成器
    [...] 列表,列表解析
    {...} 字典,集合,集合和字典解析

    :操作符在python2和python3中略有区别,python2中不对等用!=或》<>来表示,在python3中<>方法被收回,不对等就用!=来表示。

    x<y<z等同于x<y and y<z,

    在python2中能够利用混合类型,在python3中比较混合类型大小是会报错的,

    python2
    a = 1 > 'a'
    print a
    运行结果:
    False
    
    python3<br>a=1 > 'a'
    print(a)
    运行结果:
    Traceback (most recent call last):
     File "C:/Users/jeff/PycharmProjects/python_file/practice/prac2.py", line 92, in <module>
     a=1 > 'a'
    TypeError: unorderable types: int() > str()
    

    上边的表格也是程序运转的初期级表格,自上而下,优先级越来越高,当然假设想要改动优先级,尽管用括号来做。括号在python数字操作中不经常会接纳到,他不但强制造进度序依据你想要的逐个运转,同期也扩充了前后相继的可读性。

    掺杂类型

    此地指的是勾兑数字类型,比方整数和浮点数相加的结果是什么呢?

    其实在python中首先将备操作对象转换到个中最复杂的操作对象的品类,然后再展开相符类别的对象开展数学生运动算。

    print(1+0.2)
    
    运行结果:
    1.2
    

    注:除却,在python中还设有着运算符重载效用例如‘+',除了做数字加法运算,在字符串拼接时也适用‘+'。

    数显格式

    出于有个别硬件限定,数显有时看起来会很意外,比如:

    在命令行中操作
    >>>num = 1 / 3.0
    >>>num
    0.333333333333333333331
    在pycharm中print操作
    num = 1/3.0
    print(num)
    运行结果:
    0.3333333333333333
    num = 1/3.0
    print('{0:4.2f}'.format(num))#4是前面空格格数,2是保留小数位
    运行结果:
    0.33
    

    在指令行中突显的情势叫做暗中认可的人机联作式回显,而print打字与印刷的称呼友好式回显,与reper和str的显得是千篇黄金年代律的:

    >>>num = 1/3.0
    >>>repr(num)
    0.333333333333333333331
    >>>str(num)
    0.3333333333333333
    

    除法:古板除法,floor除法,真除法和截断除法

    除法是python2与python3里头充足主要的一个浮动。

    风姿罗曼蒂克、除法操作符

    python有三种除法操作符‘x/y'与‘x//y',当中‘/'在python第22中学是金钱观除法,即省略浮点数小数部分,但是呈现整数,在python3中,除法就是真除法,即无论是怎么样项目都会保留小数部分;‘//'也叫作floor除法,在python3中总结小数部分,剩下最小的能整除的整数部分,操作数假若是浮点数则结果突显浮点数,python第22中学整数截取整数,浮点数施行保留浮点数。

    例:在python2中:

    图片 1

    在python3中:

    图片 2

    在python2中若是想要使用python3中的'/'则须要调用模块来产生,在python2中调用division模块:

    图片 3

    截断除法与floor除法同样都以取最临近整数向下取整,这使得在负数时也立见成效,即-2.5则为-3,并非-2,想要得到真正的截取要求调用math模块:

    图片 4

    python还协助复数的猜想:

    图片 5还帮忙compliex(real,imag卡塔尔国来成立复数。

    更加多复数计算参谋模块cmath的仿效手册。

    位操作

    x=1
    print(x<<2)
    print(x|2)
    print(x&2)
    print(x^2)
    运行结果:
    3
    3
    

    python3中使用bit_length查看二进制位数:

    x=99
    print(bin(x))
    print(x.bit_length())
    print(len(bin(x))-2)
    运行结果:
    0b1100011
    7
    7
    

    内置数学工具

    math模块

    import math
    print(math.pi)
    print(math.e)
    print(math.sin(110))
    print(math.sqrt(144))
    print(pow(2,3))
    print(abs(-50))
    print(sum((1,2,3)))
    print(max(1,2,3))
    print(min(1,2,3))
    运行结果:
    3.141592653589793
    2.718281828459045
    -0.044242678085070965
    12.0
    8
    50
    6
    3
    1
    

    对此截取浮点数的操作有两种办法:

    print(math.floor(2.577))
    print(math.trunc(2.577))
    print(round(2.577))
    print(int(2.577))
    运行结果:
    2
    2
    3
    2
    

    random模块

    赢得随机数

    import random
    print(random.random())
    print(random.randint(1,100))
    运行结果:
    0.9534845221467178
    79
    

    任何数字类型介绍

    除了屡见不鲜的整型与浮点数,还会有黄金时代对别的较为广阔的数字类型。

    生机勃勃、小数数字

    就算学习python有风华正茂段时间了,可是真正并未太明白浮点数与小数的差距,其实验小学数在某种程度上就是浮点数,只可是他有稳固的位数和小数点,在python中有极其的模块导入小数,from decimal import Decimal。

    注:浮点数缺乏精确性。

    print(0.1+0.1+0.1-0.3)
    输出结果:
    5.551115123125783e-17
    

    作者想见到这里的小朋友大概曾经慌了,然后采纳python解释器试了弹指间,果然结果正是5.551115123125783e-17就算很相近0,不过或不是0。所以说浮点型本质是缺乏准确性。要正确就须求调用from decimal import Decimal。

    from decimal import Decimal
    print(Decimal('0.1')+Decimal('0.10')+Decimal('0.10')-Decimal('0.30'))
    运行结果:
    0.00
    

    能够看出来小数相加也是活动升级为位数最多的。

    注:浮点数创立小数对象,由于浮点数本人只怕就不可信所以调换会发生超级多的位数。

    from decimal import Decimal
    print(Decimal.from_float(1.88))
    print(Decimal.from_float(1.25))
    输出结果:
    1.87999999999999989341858963598497211933135986328125
    1.25
    

    这里只是简介一下小数,越来越多关于小数在那后看过Python标准库手册后再来总计。

    二、分数

    分数类型与小数极为相仿,他们都以经过稳固小数位数和点名舍入或截取计策调整精度。分数使用Fraction模块导入。

    from fractions import Fraction
    x=Fraction(1,3)
    y=Fraction(2,3)
    print(x+y)
    输出结果:
    1
    

    注:对于内部存款和储蓄器给定有限位数无法准确表示的值,浮点数的受制尤为举世瞩目。分数和小数都比浮点数更为可信赖。

    三、集合

    会晤是冬日成分构成,打字与印刷时顺序也是冬季的,不过集合中从未再次的要素,所以大家常利用集合去重,尤其是在关乎数字和数据库的行事中。

    大家有四个会集a与b:

    a与b的插花为a.intersection(b卡塔尔或然a & b。

    a与b的差集为a.difference(b卡塔尔国也许a-b。

    a与b的并集为a.union(b卡塔 尔(阿拉伯语:قطر‎或然a|b。

    反向差集与对称差集(并集减去交集卡塔尔国为a.symmetric_difference(b)或者a^b。

    合并为a.update(b),a.difference_update(b)求差集并赋值给a集合

    除去成分可用discard(成分卡塔 尔(阿拉伯语:قطر‎可能remove(元素卡塔 尔(英语:State of Qatar),pop(卡塔 尔(阿拉伯语:قطر‎是大肆删除八个因素,add插入八个类型。

    注:set是可变数据类型,不过set里面包车型的士要素一定是不可变数据类型。

    x={'a','c','b'}
    y={'a','g','b'}
    z={'a'}
    print('a' in x)
    print(x-y)
    print(x|y)
    print(x&y)
    print(x^y)
    print(z<y)
    
    x={'a','c','b'}
    y={'a','g','b'}
    z={'a'}
    print(x.intersection(y))
    print(x.union(y))
    x.add('s')
    print(x)
    print(x.pop())
    x.update({'w','e','o'})
    print(x)
    print(x)
    运行结果:
    {'a', 'b'}
    {'c', 'a', 'b', 'g'}
    {'a', 'b', 'c', 's'}
    a
    {'o', 'c', 's', 'w', 'b', 'e'}
    {'o', 'c', 's', 'w', 'b', 'e'}
    

    注:在python中{}是空字典,要是想要定义空集合要用set()。

    集结如果增加列表等可变类型则会报错。

    x={'a','c','b'}
    l=[1,2,3]
    x.add(l)
    print(x)
    运行结果:
    Traceback (most recent call last):
     File "C:/Users/jeff/PycharmProjects/python_file/practice/prac2.py", line 111, in <module>
     print(x.add(l))
    TypeError: unhashable type: 'list'
    

    科学的拉长连串情势为添日币组。

    x={'a','c','b'}
    l=(1,2,3)
    x.add(l)
    print(x)
    运行结果:
    {'c', 'b', 'a', (1, 2, 3)}
    

    概念不可操作的会集使用frozenset定义集合。

    字典深入剖判:

    与列表剖判邻相似,集结也是可迭代对象,所以能够应用for循环遍历。

    x={1,2,3}
    print({i ** 2 for i in x})
    运行结果:
    {1, 9, 4}
    

    四、布尔值

    python的一个数据类型,有多少个值Ture 与 False。

    print(type(True))
    print(True == 1)
    print(True is 1)
    print(True + 1)
    运行结果:
    <class 'bool'>
    True
    False
    2
    

    聚拢和bool值,依旧相比较广泛的类型,在底蕴学习里也是有涉及,在那就十分少写了。

    python中的数字在前后相继编写制依期周围使用,现在还或者会越来越深档案的次序的学习python的扩张库。

    如上那篇浅谈python中的数字类型与管理工科具便是我分享给大家的全部内容了,希望能给我们二个参阅,也冀望大家多多指教帮客之家。

    python中的数字类型工具 python中为越来越高档的专业提供大多高级数字编程帮忙和目的,...

    python2:

    print 500/1000
    

    python2结果:取整数部分,小数并不曾保存

    0
    
    Process finished with exit code 0
    

     

    python3:

    print 500/1000
    

    python3结果:获得实际结果,小数保留

    0.5
    
    Process finished with exit code 0
    

     

    那便是说,假诺python2想保留小数部分,要如何是好吗?

    只供给充实叁个导入包.就足以了.并无需其余操作

    from __future__ import division #用于/相除的时候,保留真实结果.小数
    

     

    追加导入包后的,python2操作:

    #coding:utf-8
    from __future__ import division
    
    print 500/1000
    

    结果:

    0.5
    
    Process finished with exit code 0
    

     

    再有另风流洒脱种情势.将除数或被除数多少个别的最少三个调换到float型:

    print float(500)/1000
    

    结果:

    0.5
    
    Process finished with exit code 0
    

     

     

     

     

    G

    M

    T

     

    Detect language Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hausa Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Lao Latin Latvian Lithuanian Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Persian Polish Portuguese Punjabi Romanian Russian Serbian Sesotho Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Yiddish Yoruba Zulu   Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Galician Georgian German Greek Gujarati Haitian Creole Hausa Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Lao Latin Latvian Lithuanian Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Persian Polish Portuguese Punjabi Romanian Russian Serbian Sesotho Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Yiddish Yoruba Zulu          

     

     

     

    Text-to-speech function is limited to 200 characters

     

      Options : History : Feedback : Donate Close

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:python2精确除法,浅谈python数字类型

    关键词: