前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3学习笔记 | 二、Python的类型与运算

Python3学习笔记 | 二、Python的类型与运算

作者头像
TeamsSix
发布2019-09-24 18:01:43
1K0
发布2019-09-24 18:01:43
举报

一、数字类型

1、整数

  1. 0,-1234,5678,9223372036854775808
  2. 十六进制:0x9a,0XFF
  3. 八进制:0o73,0O35
  4. 二进制:0b100100,0B101100 2、浮点数 1.23,1.,3.45e-10,4E100 3、复数 complex(real,imag), 3+5j,4J 4、其他
  5. 分数:Fraction(4,5), Fraction(7,8)
  6. 无穷大/小:float(‘inf’), float(‘-inf’)
  7. 非数字NaN:float(‘nan’) 二、数字类型的应用 1、整数 在Python 2.x版本中整数分为一般整数和长整数,但是在Python 3.x就没有这种区分,整数只有一个类型,在Python里整数可以输入或输出成二进制,八进制或者十六进制数。

二进制数表示方式为0b或者0B开头。例如:0b10110010,0B11001001 八进制数表述方式为0o或者0O开头。例如:0o632765,0O223174 十六进制数表述方式为0x或者0X开头。例如:0xff,0X3A,0xAC,0Xb7

需要把整数输出成非十进制数的时候,需要使用一下函数:bin(i), oct(i), hex(i) ,在这里i是十进制数字,输出的是文本形式。

代码语言:javascript
复制
>>> bin(153)
'0b10011001'
>>> oct(153)
'0o231'
>>> hex(153)
'0x99'

我们需要把一个非十进制数的文本转化为整数:int(str,base) ,在这里,str是文本形式的数字,base为2,8,16 数字。各自代表二进制,八进制,十六进制。

代码语言:javascript
复制
>>> int('10011001',2)
153
>>> int('231',8)
153
>>> int('99',16)
153
>>> int('49',36)
153

注:Python提供从2进制到36进制数的输入。

2、浮点数

在Python里浮点数是用64bit来存储的,精度大约能达到17位。

代码语言:javascript
复制
>>> print(1.0/7.0)
0.14285714285714285

3、复数

在Python里复数的现实方式跟现实稍微有点区别,在现实中,例如:1+3i,在这里1是实数部分,3i为虚数部分,而在Python中则是 1+3j,也就是将现实里的i换成“j”或者“J”来表示。

在Python里还有一种表示方式是函数格式:complex(1,3)

代码语言:javascript
复制
>>> Dora=1+3j
>>> Emon=1+3J
>>> Daxiong=complex(1,3)
>>> Dora==Emon
True
>>> Dora==Daxiong
True
>>> Emon==Daxiong
True

4、其他

在一些特殊场景,我们会需要特殊的数字类型,比如分数、无穷大无穷小或者非数字。

a、分数

在Python里使用Fraction函数来表示分数。

代码语言:javascript
复制
>>> from fractions import *
>>> print(Fraction(1,3))
1/3

b、无穷大,无穷小

float(‘inf’)是无穷大,float(‘-inf’)是无穷小

代码语言:javascript
复制
>>> 1/float('inf')
0.0
>>> 1/float('-inf')
-0.0

c、非数字

float(‘nan’)用来表示非数字。

代码语言:javascript
复制
>>> float('nan')
nan
>>> 7+float('nan')
nan

三、运算符

1、各类运算符

算数运算符:+,-,,/,%,//,** 比较运算符:==,!=,>,<,>=,<= 赋值运算符:=,+=,-=,=,/=,%=,//=,**= 位运算符:&,|,^,~,<<,>> 逻辑运算符:and,or,not 成员运算符:in, not in 身份运算符:is, is not

2、运算符优先级

~,+,- #这里的加和减是一元运算符 ,/,%,// +,- <<,>> & ^,| <=,>=,<,> ==,!= =,+=,-=,=,/=,%=,//=,= is, is not in, not in not,and,or

四、运算符应用

1、类型升级

代码语言:javascript
复制
>>> Dora=153
>>> Emon=1.53
>>> Da=1+3j
>>> Xiong=Fraction(1,3)
>>> print(type(Dora),type(Emon),type(Da),type(Xiong))
<class 'int'> <class 'float'> <class 'complex'> <class 'fractions.Fraction'>
>>> print(type(Dora+Emon),type(Dora+Da),type(Dora+Xiong),type(Da+Xiong))
<class 'float'> <class 'complex'> <class 'fractions.Fraction'> <class 'complex'>

注:type()函数可以用来查看字符类型。

2、只能用于整数的运算符

位运算符:&、|、^、~、<<、>>

3、结果可能不是预期的运算符

逻辑运算符:and,or

代码语言:javascript
复制
>>> 1 and 3
3
>>> 3 and 1
1
>>> 1 or 3
1
>>> 3 or 1
3

4、比较运算符连续性

xz相当于xz

代码语言:javascript
复制
>>> 1<3>5
False
>>> 1<3 and 3>5
False

五、基本数学函数

1、pow:幂函数 2、abs:绝对值 3、fabs:绝对值(与abs稍微有区别)(math) 4、round:四舍五入 5、ceil,floor:取整(math) 6、int,bin,oct,hex,float等:格式转换 7、random:随机函数(random) 8、log:算出自然对数(math) 9、log10:算出底数为10的对数(math) 10、max,min:选出最大,最小值 11、modf:对浮点数分成小数部分和整数部分(math) 12、sqrt:算出平方根

六、数学函数的应用

1、pow:幂函数,功能与运算符**一样

代码语言:javascript
复制
>>> pow(5,3)
125

2、abs:取绝对值

代码语言:javascript
复制
>>> abs(-153)
153

3、fabs:取绝对值,fabs函数取出来的是浮点数,而abs可以保持原有的数字类型

代码语言:javascript
复制
>>> import math
>>> math.fabs(-153)
153.0

4、round:四舍五入?

代码语言:javascript
复制
>>> round(13.5)
14
>>> round(2.5)
2
>>> round(1/3,5)
0.33333

5、ceil:取最小的大于该值的最大整数 floor:取最大的小于该值的最小整数

代码语言:javascript
复制
>>> math.ceil(13.5)
14
>>> math.floor(13.5)
13

6、格式转换 见本文第二章:整数,在此不多赘述 7、random,是Python 里很好的随机函数使用的模块,其使用方法如下: a、取0-1之间的随机小数:

代码语言:javascript
复制
>>> import random
>>> random.random()
0.41430515476488494

b、取自定义数里的随机数(多个元素):

代码语言:javascript
复制
>>> random.choice((1,2,3,4,5,6,7))
6
>>> random.choice((1,2,3,4,5,6,7))
2
>>> random.sample((1,2,3,4,5,6,7),3)
[4, 5, 3]

c、随机打乱顺序:

代码语言:javascript
复制
>>> a=[1,2,3,4,5,6,7]
>>> random.shuffle(a)
>>> a
[6, 2, 5, 1, 7, 4, 3]

d、获取N位随机数(二进制):

代码语言:javascript
复制
>>> random.getrandbits(200)
771596897424695624466272211269661342068063847000212188678258

注:random.getrandbits(n),返回的是0-2^n之间的数 8、log:指数函数,默认e为底数,结果为浮点数,可以自定义底数。

代码语言:javascript
复制
>>> math.log(8)
2.0794415416798357
>>> math.log(8,2)
3.0

9、log10:以10为底数的指数函数。

代码语言:javascript
复制
>>> math.log10(1000)
3.0

10、max,min:选出最大,最小值

代码语言:javascript
复制
>>> max(1,3,5,2,4)
5
>>> min(1,3,5,2,4)
1

11、modf:将浮点数的整数位和小数位单独取出来

代码语言:javascript
复制
>>> math.modf(13.5)
(0.5, 13.0)

12、sqrt:算出当前数的平方根

代码语言:javascript
复制
>>> math.sqrt(49)
7.0

七、其他数字相关内容

1、round与格式化输出

当输出以一定的格式来输出的时候,比如:a的值是2.5和2.335,2.345的时候,我们只需要小数点之后两位,这个时候不会使用round函数来进行所谓的“四舍五入”,两者也会有点区别。

代码语言:javascript
复制
>>> round(2.5)
2
>>> format(2.5,'0.0f')
'2'
>>> round(2.335,2)
2.33
>>> format(2.335,'0.2f')
'2.33'
>>> round(2.345,2)
2.35
>>> format(2.345,'0.2f')
'2.35'

2、Decimal模块

在使用浮点数的时候,因为计算机里是使用二进制来表示,所以会出现精度问题,当金融行业等不许出现一丝问题的时候,我们会使用Decimal模块来解决精度问题。

代码语言:javascript
复制
>>> a=2.1
>>> b=4.2
>>> a+b
6.300000000000001
>>> from decimal import *
>>> a= Decimal('2.1')
>>> b= Decimal('4.2')
>>> a+b
Decimal('6.3')

3、format格式化输出

使用bin(),oct(),hex()的时候会发现前面会加0b,0o,0x。我们不想要前缀的时候可以使用format函数来解决。

代码语言:javascript
复制
>>> a=153
>>> print(bin(a),oct(a),hex(a))
0b10011001 0o231 0x99
>>> print(format(a,'b'),format(a,'o'),format(a,'x'))
10011001 231 99

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、数字类型
  • 1、整数
  • 2、浮点数
  • 3、复数
  • 4、其他
    • a、分数
      • b、无穷大,无穷小
        • c、非数字
        • 三、运算符
        • 1、各类运算符
        • 2、运算符优先级
        • 四、运算符应用
        • 1、类型升级
        • 2、只能用于整数的运算符
        • 3、结果可能不是预期的运算符
        • 4、比较运算符连续性
        • 五、基本数学函数
        • 六、数学函数的应用
        • 七、其他数字相关内容
        • 1、round与格式化输出
        • 2、Decimal模块
        • 3、format格式化输出
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档