python笔记之数字

1、类型

python中的数字主要包括整型,长整型,浮点型和复数等。

1) 整型-int

python整型的最大长度是由机器cpu位数n决定,范围从-2**(n-1)-12**(n-1)-1,可以通过sys.maxint(需要导入sys模块)来查看当前支持整型的最大值.相当于c语言中的有符号长整型.

2) 长整型-long

在数值的后面加上L或者l就表示长整型了,一般都是用L,小写l容易与数字1混淆.Python的长整型的最大值和最小值貌似是由可用内存决定的,所以基本上可以支持任意长度的整型数据.当整数超过了int的范围时会自动转换为长整型.

Python3.0中整型和长整型已经合二为一了,只有整型这一种了.

整型数据可以编写为十进制、十六进制、八进制和二进制形式。十六进制数以0x0X开头,八进制以0o0O开头(数字0和大小写o)2.6及更早的版本都是直接在数字前面加一个0来表示八进制,但是这种比较容易与十进制数混淆,所以3.0中用0o代替了。二进制数都是以0b0B开头,后面跟着二进制数字。

3) 浮点数-float

浮点数带一个小数点,也可以使用科学计数法eEpython的浮点型行当于c语言中的双精度浮点型。如果要进行高精度的浮点数计算需要导入decimal模块。

>>> a=3.14
>>> b=2.647e5
>>> a,b
(3.14, 264700.0)
4) 复数-complex

python中的复数采用实部+虚部的写法,虚部要以J或者j结尾,格式为x+yjx+yJ,也可以通过内置函数complex(real,imag)来创建复数。对于复数f,可以通过f.real获取其实部,f.imag可以得到其虚部,f.conjugate()返回其共轭复数。

>>> f = complex(2,3.4)
>>> f.real
2.0
>>> f.imag
3.4
>>> f.conjugate()
(2-3.4j)

2、运算符

加法:+

减法:-

乘法:*

除法:///,3.0/为真除法,会保留小数部分,//floor除法,即得到不大于结果的最大整数值,26///作用相同,都为floor除法,除非导入from __future__ import division/则为真除法,当然和c语言类似,若除数和被除数有一个为浮点型的话,/就是真除法。

取余:%,也叫取模,2%3相当于2mod3

幂运算:**2**5表示2的五次方。

>>> 1+1
2
>>> 2-1
1
>>> 2*5
10
>>> 5/2
2
>>> 5//2
2
>>> from __future__ import division
>>> 5/2
2.5
>>> 5//2
2
>>> 4%7
4
>>> 13%7
6
>>> 2**5
32

或运算:|, x|y, xy进行按位或。

与运算:&, x&y, xy进行按位与。

异或运算:^, x^y, xy进行异或运算。

取反:~,~x,按位取反,~x=-(x+1),这里是根据计算机补码的原理,负数的补码是按位取反再加1的。

左移:<<, x<<y, x左移y位。

右移:>>, x>>y, x右移y位。

>>> 2|3
3
>>> 2&3
2
>>> 2^3
1
>>> ~2
-3
>>> 2<<1
4
>>> 2>>1
1

python中的数字比较与c语言中的相同,不过可以使用m<= x <= n或者m >= x>=n来进行比较.

>>> 1<=2<=3
True

3、转换

chr(i), 0 <=i<=256,ascII码转换为对应的ascII字符()

ord(char) ,chr()相反的功能,得到字符char对应的ascII码。

float(), 将整型或者字符串转换为浮点数。

hex(),将整型转化为十六进制字符串。

oct(), 将整型转化为八进制字符串。

bin(), 将整型转化为二进制字符串。

int(s[,base]),将字符串或者数字s转为十进制的整数,这里的base表示的是s的进制,base的范围为236,默认为10,若转换失败会产生ValueError异常。

str():函数str可以将数字转换为字符串,其实str()还可以将很多类型的数据转换为字符串,后续再做介绍。

>>> chr(48)
'0'
>>> ord('A')
65
>>> float(5)
5.0
>>> hex(11)
'0xb'
>>> oct(8)
'010'
>>> bin(4)
'0b100'
>>> int("010",8)
8
>>> int("0b100",2)
4
>>> str(3.1415926)
'3.1415926'

4、其他数学工具

abs() 绝对值

pow() 幂计算pow(2,3) 23次方

sum() 求和,参数必须为迭代器,元组,列表,字典。

min() 求最小值

max() 求最大值,min()max()的参数可以是迭代器,也可以是需要比较的几个数字。

round() 将浮点数的小数部分四舍五入,如果参数为整型则转换为浮点型

>>> abs(-5)
5
>>> pow(2,3)
8
>>> sum((1,2,3,4,5))
15
>>> sum(1,2,3,4,5)
Traceback (most recent call last):
File "<pyshell#59>",line 1, in <module>
sum(1,2,3,4,5)
TypeError: sum expected at most 2arguments, got 5
>>> min(1,2,3,4,5)
1
>>> min((1,2,3,4,5))
1
>>> max([1,2,3,4,5])
5
>>> round(2.5)
3.0
>>> round(1)
1.0

match模块:

import math

math.pi 圆周率

math.e 自然对数

math.sin() 求正弦,参数为弧度。

math.cos() 求余弦

...

math.sqrt() 开方

math.floor()  floor截取,返回不大于参数的最大整数

math.trunc() 截断,去除小数部分,返回整型

>>> import math
>>> math.pi
3.141592653589793
>>> math.e
2.718281828459045
>>> math.sin(0)
0.0
>>> math.cos(0)
1.0
>>> math.sqrt(3)
1.7320508075688772
>>> math.floor(2.5)
2
>>> math.floor(-2.5)
-3
>>> math.trunc(2.5)
2
>>> math.trunc(-2.5)
-2

random模块:获取随机值

random.random() 随机生成一个0-1之间的浮点数。

random.randint(m,n)随机生成一个m-n之间的整数。

random.choice([13,423,3423])在序列中随机挑选一项。

>>> import random
>>> random.random()
0.28249705202460174
>>> random.randint(0,9)
5
>>>random.choice([10,12,15,128])
12

decimal模块:高精度浮点型运算

>>> from decimal import *
>>> 0.1+0.1+0.1-0.3
5.551115123125783e-17
>>> Decimal('0.1') +Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')
decimal.getcontext().prec= n 设置小数的保留位数,小数点后保留 n 位。

>>> getcontext().prec=2
>>> Decimal(1)/Decimal(3)
Decimal('0.33')

fractions模块:分数

>>> from fractions import Fraction
>>> x=Fraction(1,3)
>>> x
Fraction(1, 3)

分数和小数的转换:

浮点型数据的as_integer_ratio()方法可将浮点数转换为对应的分数,float()函数可将分数转换为小数。

>>> (2.5).as_integer_ratio()
(5, 2)
>>> x=Fraction(1,3)
>>> float(x)
0.3333333333333333

5、布尔型

bool类型不用多解释了,就TrueFalse,对应10,只是值相同,并不是相同的类型。

>>> True == 1
True
>>> True is 1
False

PS: 关于函数和模块的属性方法的详细介绍可使用 help() 查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值