首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[PYTHON] 核心编程笔记之五-Py

[PYTHON] 核心编程笔记之五-Py

作者头像
py3study
发布2020-01-09 15:53:00
5850
发布2020-01-09 15:53:00
举报
文章被收录于专栏:python3python3python3

5.1 数字类型

创建数值对象和给变量赋值

anInt = 1

aLong = -9999999999L

aFloat = 3.1415926

aComplex = 1.23+4.56j

如何更新数字对象

变量像一个指针指向装变量值的盒子,对不可变类型来说,你无法改变盒子内容,但可以将指针指向一个新盒子,每次将另外的数字赋给变量时,实际上是创建了一个新的对象并把它赋给变量

anInt += 1

aFloat = 2.718281828

如何删除数字对象

del anInt

del aLong,aFloat,aComplex

5.2 整型

5.2.1 布尔型

5.2.2 标准整数类型

0101 84 -237 0x80 017 -680 -0x92

5.2.3 长整型

16384L -0x4E8L -2323124 045332423

29432432 0xDDWAFEGEGREHREHRERTJW -5432432L

注:用大写字母"L"表示长整型

>>> aLong = 99999999999l

>>> aLong

99999999999L

>>> print aLong

99999999999

5.3 双精度浮点数

0.0 -777. 1,6 -5.532423423 9.6e3 * 1.0

4.3e25 float(12) 4.2E-10 -90. -1.609E-19

5.4 复数

64.375+1j 4.23-8.5j 0.23-8.55j 1.23e-045+6.7e+089j

9.82432-8.342432J -.0224+0j

5.4.1复数的内建属性

属性描述

num.real该复数的实部

num num.imag该复数的虚数

num.conjugate()返回该复数的共轭复数

>>> aComplex = -8.333-1.47j

>>> aComplex

(-8.333-1.47j)

>>> aComplex.real

-8.333

>>> aComplex.imag

-1.47

>>> aComplex.conjugate()

(-8.333+1.47j)

5.5 运算符

5.5.1 混合模式运算符

>>> 1 + 4.5

5.5

5.5.2 标准类型运算符

>>> 5.2 ==5.2

True

>>> -719 >= 833    

False

>>> 2 < 5 <9

True

>>> 77 > 66 == 66

True

>>> 0. < -90.4 < 55.3e2 != 3 <181

False

>>> (-1 < 1) or (1 < -1)

True

5.5.3 算数运算符

传统除法

>>> 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# 返回比 -0.5小的整数,也就是 -1

-1

取余

>>> 4%3

1

>>> 4%2

0

幂运算

>>> 3**2

9

>>> -3 ** 2

-9

>>> (-3) ** 2

9

>>> 4.0 ** -1.0

0.25

Python数值运算的例子:

>>> -442-77

-519

>>> 4 ** 3

64

>>> 4.2 ** 3.2

98.71831395268974

>>> 8/3

2.6666666666666665

>>> 8.0/3.0

2.6666666666666665

>>> 8%3

2

>>> (60. - 32.) * (5. /9.)

15.555555555555557

>>> 14 * 0x04

56

>>> 0170 / 4

30.0

>>> 0x80 + 0777

639

>>> 45L * 22L

990L

>>> 16399L + 0xA94E8L

709879L

>>> -2147483648L - 52147483648L

-54294967296L

>>> 64.375+1j + 4.23-8.5j

(68.605-7.5j)

>>> 0+1j ** 2

(-1+0j)

>>> 1+1j ** 2

0j

>>> (1+1j) ** 2

2j

5.5.4 *位运算符(只适用于整数)

位运算符功能

-num单目运算,对数的每一位去反,结果为

num1 << num2Num1 左移 num2位

num1 << num2Num1 右移 num2位

num1 & num2Num1 与 num2按位 与

num1 ^ num2Num1 异或 num2位

num1 | num2Num1 与 num2位按位 或

例:

>>> 30 & 45

12

>>> 30 | 45

63

>>> 45 & 60

44

>>> ~30

-31

>>> ~45

-46

>>> 45 << 1

90

>>> 60 >> 2

15

>>> 30 ^ 45

51

5.6 内建函数与工厂函数

5.6.1 标准类型函数

>>> cmp(-6,2)

-1

>>> cmp(-4.33333,-2.7118281828)

-1

>>> cmp(0xFF,255)

0

>>> str(0xFF)

'255'

>>> str(55.3e2)

'5530.0'

>>> type(0xff)

<type 'int'>

>>> type(9876543210L)

<type 'long'>

>>> type(2-1j)

<type 'complex'>

5.6.2 数字类型函数

内建函数示例:

>>> int(4.25)

4

>>>

>>> int(4.2555)

4

>>> long(42)

42L

>>> float(4)

4.0

>>> complex(4)

(4+0j)

>>> complex(2.4,-8)

(2.4-8j)

>>> complex(2.3e-10,45.3e4)

(2.3e-10+453000j)

数值工厂函数总结

类(工厂函数)操作

bool(obj) b返回obj对象的布尔值,也就是obj.__nonzero__()方法的返回值

int(obj,base=10)返回一个字符串或数值对象的整数表示,类似string.atoi();

long(obj,base=10)返回一个字符或数据对象的长整数表示,类似string.atol()

float(obj)返回一个字符串或数据对象的浮点数表示,类似string.atol()

complex(str) or

complex(real,imag=0.0)返回一个字符串的复数表示,或者根据给定的实数(及一个可选的虚数部分)生成一个复数对象

功能函数:

Python有五个运算内建函数用于数值运算: abs(),coerce(),divmod(),pow()和round()

abs()返回给定参数的绝对值

>>> abs(-1)

1

>>> abs(10.)

10.0

>>> abs(1.2-2.1j)

2.418677324489565

>>> abs(0.23-0.78)

0.55

函数coerce()返回一个包含类型转换完毕的两个数值元素的元祖

>>> coerce(1,2)

(1, 2)

>>> coerce(1.3,134L)

(1.3, 134.0)

>>> coerce(1,134L)

(1L, 134L)

>>> coerce(1j,134L)

(1j, (134+0j))

>>> coerce(1.23-41j,134L)

((1.23-41j), (134+0j))

divmod()会把除法和取余结合起来组成一个元祖

>>> divmod(10,3)

(3, 1)

>>> divmod(3,10)

(0, 3)

>>> divmod(10,2.5)

(4.0, 0.0)

>>> divmod(2.5,10)

(0.0, 2.5)

>>> divmod(2+1j,0.5-1j)

((-0+0j), (2+1j))

pow()和 ** 都可以进行指数运算

>>> pow(2,5)

32

>>> pow(5,2)

25

>>> pow(3.141592,2)

9.869600294464002

KeyboardInterrupt

>>> pow(1+1j,3)

(-2+2j)

round()对浮点数进行四舍五入,第二个参数表示精确到小数点多少位,没有表示精确到整数位

>>> round(3)

3.0

>>> round(3.45)

3.0

>>> round(3.499999999999)

3.0

>>> round(3.499999999999,1)

3.5

>>> import math

>>> for eachNum in range(10):

...   print round(math.pi,eachNum) #pi即为π

...

3.0

3.1

3.14

3.142

3.1416

3.14159

3.141593

3.1415927

3.14159265

3.141592654

>>> round(-3.5)

-4.0

>>> round(-3.4)

-3.0

>>> round(-3.49)

-3.0

>>> round(-3.49,1)

-3.5

注:

int() 直接截去小数部分(返回值为整数)

floor()得到最接近原数但小于原数的整数(返回浮点数)

round()得到最接近原数的整数(返回浮点数)\

>>> for eachNum in (.2,.7,1.2,1.7,-.7,-1.2,-1.7):              

...   print "int(%.1f) \t %+.1f" % (eachNum,float(int(eachNum)))

...   print "floor(%.1f) \t %+.1f" % (eachNum,math.floor(eachNum))

...   print "round(%.1f) \t %+.1f" % (eachNum,round(eachNum))

...   print '-' * 20

...

int(0.2)        +0.0

floor(0.2)      +0.0

round(0.2)      +0.0

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

int(0.7)        +0.0

floor(0.7)      +0.0

round(0.7)      +1.0

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

int(1.2)        +1.0

floor(1.2)      +1.0

round(1.2)      +1.0

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

int(1.7)        +1.0

floor(1.7)      +1.0

round(1.7)      +2.0

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

int(-0.7)       +0.0

floor(-0.7)     -1.0

round(-0.7)     -1.0

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

int(-1.2)       -1.0

floor(-1.2)     -2.0

round(-1.2)     -1.0

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

int(-1.7)       -1.0

floor(-1.7)     -2.0

round(-1.7)     -2.0

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

数值运算内建函数

函数功能

abs(num)返回num的绝对值

coerce将num1和num2转换成同一类型,然后以一个元祖的形式返回

divmod(num1,num2)除法-取余运算的结合,返回一个元祖(num1/num2,num1%num2),对浮点数和复数的商进行下舍入

(复数取实数部分的商)

pow(num1,num2,mod=1)取num1的num2次方,如果提供mod参数,则计算结果再对mod进行取余运算

round(flt,ndig=0)接受一个浮点数fit并对其四舍五入,白村ndig位小数,若不提供ndig参数,则默认小数点后0位

round()仅用于浮点数.

5.6.3 仅用于整数的函数

进制转换函数

>>> hex(255)

'0xff'

>>> hex(4324324)

'0x41fbe4'

>>> hex(432432*2)

'0xd3260'

>>> oct(255)

'0377'

>>> oct(4324324)

'020375744'

>>> oct(432432*2)

'03231140'

ASCII转换函数

>>> ord('a')

97

>>> ord('A')

65

>>> ord('O')

79

>>> chr(97)

'a'

>>> chr(65L)

'A'

>>> chr(48)

'0'

仅适用于整数的内建函数

函数操作

hex(num)将数字转化成16进制并以字符串输出

oct(num)将数字转换成8进制并以字符串输出

chr(num)将ASCII值的数字转换成ASCII字符 范围0<=num<=255

ord(chr)接受一个ASCII或Unicode字符(长度为1的字符串),返回相应的ASCII或Unicode值

unichr(num)接受Unicode码值,范围其对应的Unicode字符,所接受的码值范围依赖于你的Python是构建于USC-2还是UCS-4

5.7.1 布尔"数"

永恒不变的两个值 True或False

布尔型是整型的子类,但不能再被继承二生成它的子类

没有__nonzero__()方法的对象默认是True

对于值为零的任何数字或空集(空列表,空元祖和空字典等)在Python中布尔值都为False

在数字运算中,布尔值的True和False分别对应1和0

#intro

>>> bool(1)

True

>>> bool(True)

True

>>> bool(0)  

False

>>> bool('1')

True

>>> bool('0')

True

>>> bool([])

False

>>> bool((1,))

True

# 使用布尔值

>>> foo = 42

>>> bar = foo < 100

>>> bar

True

>>> print bar + 100

101

>>> print '%s' % bar

True

>>> print '%d' % bar

1

# 无 __nonzero__()

>>> class C: pass

...

>>> c = C()      

>>> bool(c)

True

>>> bool(C)

True

慎用:

>>> True,False = False,True

>>> bool(True)

False

>>> bool(False)

True

5.7.2 十进制浮点数

5.8 相关模块

模块介绍

decimal十进制浮点运算类Decimal

array高效数值数组(字符,整数,浮点数等等)

math/cmath标准C库数学运算函数,常规数学运算在match模块,复数运算在cmath模块

operator数学运算符的函数实现,比如 tor.sub(m,n)等价于 m - n

random多种伪随机数生成器

核心模块:ramdom

两个整数参数,返回两者之间的随机整数:

randrange()随机返回range([start,]stop[,step])结果的一项

uniform()几乎和randint()一样,不过它返回时两者之间的一个浮点数

random()类似uniform() 不过下限为0.0 上限为1.0

choice()随机返回给定序列的一个元素

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档