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

2019-10-22 19:18 来源:未知

python2和python3除法的最大分别:

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

python中的数字类型工具

python中为更尖端的干活提供不知凡几高级数字编制程序补助和对象,在那之中数字类型的欧洲经济共同体育工作具包涵:

1.整数与浮点型,

2.复数,

3.定点精度十进制数,

4.有理分数,

5.集合,

6.布尔档期的顺序

7.无穷的大背头精度

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

基本数字类型

python中提供了二种为主项目:整数(正整数金额负整数)和浮点数(注:带有小数部分的数字),当中python中大家得以选择二种进制的整数。并且整数能够用有无穷精度。

子弹头的表现形式以十进制数字字符串写法出现,浮点数带多个小数点或然选取科学计数法e来表示。在python2版本中,整数还分为平时整数(三十三位)和长整数(无穷精度),长整数以l结尾。带了python3中整数就只有黄金时代种情势了,具备界限精度。

当然,在Python中整数还应该有二进制(0bxxxxxxxx),八进制(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中略有分歧,python第22中学不对等用!=或》<>来代表,在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中的'/'则供给调用模块来完结,在python第22中学调用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(成分),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
TAG标签:
版权声明:本文由金沙澳门唯一官网发布于编程教学,转载请注明出处:python2精确除法,浅谈python数字类型