python核心编程-第五章-我的笔记

  1. 简介python

        ①Python中数字支持如下类型:整型、长整型、布尔型、双精度浮点型、十进制浮点型和复数dom

        ②建立数字对象和给变量赋值同样】函数

        ③用del删除对对象的引用。删除以后,没法再使用这个引用(变量名),不然会抛出NameError异常spa

>>> a = 123
>>> a
123
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>NameError : name 'a' is not defined

  2.整型code

(1)布尔型    该类型取值范围只要两个值:布尔值True 和 布尔值False orm

(2)标准整型   长整型对象

①python标准整型取值范围是 -231~231-1,也就是-2 147 483 648~2 147 483 648.字符串

②python标准整型等价于C中的长整型io

③整型通常以10进制表示,但python也支持八进制、十六进制。八进制整数以0开始,十六进制整数以0x 或 0X开始ast

④在整型的后面加上大写的L来代表这是一个长整型

3.浮点型

浮点型一般有一个小数点和一个可选的后缀e表示科学记数法,e后面接指数,e和指数之间用正负号表示指数的正负,正数能够省略符号。

4.复数

①复数的几个概念:

虚数不能单独存在,它们老是和一个实数一块儿构成复数

复数由实数部分和虚数部分构成

表示虚数的语法:real + imagj

实数部分和虚数部分都是浮点型

虚数部分必须有后缀j或J

②复数的内建属性:

注:共轭复数是指两个实部相等、虚部互为相反数的复数(conjugate complex number)。当虚部不为0时,共轭复数就是实部相等虚部相反;当虚部为0时,共轭复数就是其自己。

>>> acomplex = 2.22-1.33j
>>> acomplex
(2.22-1.33j)
>>> acomplex.real
2.22
>>> acomplex.imag
1.33
>>> acomplex.conjugate()
(2.22+1.33j)

5.操做符

(1)混合模式操做符

python中不一样类型的数字相加时,会使用数字类型强制转换的方式解决数字类型不一致的问题。转换规则在于:

若是一个操做数是复数,则另外一个操做数被转换为复数;

不然,若是有一个是浮点数,另外一个被转换成浮点数;

不然,若是有一个是长整型,另外一个被转换成长整型;

不然,二者都是整型,无须转换

(2)算术操做符

①python中除法包括一下几种:

传统除法,操做符"/"。传统除法的两个操做数若是都是整型,那么传统除法会舍去小数部分,返回一个整型;若是其中一个操做数是浮点数,则执行真正的除法。

>>> 1 / 2
0
>>> 1.0 / 2
0.5

真正的除法是无论操做数是整型仍是浮点型,老是返回真正的商,这是Python将来的标准。现阶段,经过执行 from __future__ import division 指令,操纵符"/"不管两个操做数是整型仍是浮点型,均执行真正的除法

>>> from __future__ import division
>>> 1 / 2
0.5
>>> 1.0 / 2
0.5

地板除,python 2.2 引入的新操做符"//",执行地板除,无论操做数是何种类型的数值,老是舍去小数部分,返回比真正的商小的最接近的数字

>>> 1 // 2
0
>>> 1.0 // 2
0.0

②取余

浮点型取余按照如下规则:

x % y = x - x // y * y

例如

 

复数取余相似浮点型,不一样点在于商只取实数部分

③位操做符(仅适用于整型)

python整型支持标准位运算:取反(~);按位与(&);按位或(|);异或(^)以及左移(<<)和右移(>>)。位运算是把数字看做二进制来计算

A.取反运算

对一个二进制数按位取反,即0变1,1变0.

十进制数至关于-(num+1)

B.左移、右移

对一个数num左移x,至关于取 num * 2 ** x

右移相反,至关于取 num /  2 ** x

C.按位与/按位或

按照二进制补码运算  按位与每位按照规则:1&1=1;1&0=0;0&0=0;0&1=0运算。

按位或每位按照规则:1|1=1;1|0=1;0|0=0;0|1=1

如:5的二进制表示是 101,6的二进制表示是110,则按位与是100,即十进制的4;按位或是111,即十进制的7

7的二进制表示是111,8的二进制表示是1000,则按位与是0000,即十进制的0;按位或是1111,即十进制的15

D.异或

按照二进制运算,对应的每位相异时结果为1,相同时为0

如9的二进制表示1001,10的二进制表示1010,则按位异或是0011,即十进制的3

11的二进制表示1011,12的二进制表示1100,按位异或是0111,即十进制的7

6.内建函数与工厂函数

(1)转换工厂函数

int()、long()、float()、complex()函数用来将其余数值类型转换为相应的数值类型,也能够返回字符串表示的数值

int()、long()能够接受第二个可选参数,用来将给定的实参转换成相应进制

>>> int('12', 3)
5

注意  这里int()若要给定第二个参数时,第一个参数12要以字符串的形式给出;且并非把12转换为3进制,而是把12看成3进制的数转换成10进制表示。

complex()能够接受两个参数,第一个参数是复数的实部,第二个参数是复数的虚部,第二个参数默认为0.

>>> int(1.23)
1
>>> long(123)
123L
>>> float(123)
123.0
>>> complex(123)
(123+0j)
>>> complex(123,456)
(123+456j)
>>> complex(1.23e-2,1.23e3)
(0.0123+1230j)

(2)功能函数

python有5个内建函数用于数值运算,包括abs()   coerce()   divmod()   pow()   round()

① abs()

abs()返回给定参数的绝对值。若参数是复数,则返回复数的模,即复数实部和虚部的平方和的正的平方根(math.sqrt(real^2+imag^2)).参数能够是表达式。

>>> abs(-1)
1
>>> abs(1.1)
1.1
>>> abs(3 + 4j)
5.0
>>> abs(1.22 - 10.22)
9.0

②coerce()

coerce()是一个数据类型转换函数,接受两个参数,返回一个包含转换类型后的两个数值的元组,转换的规则相似于不一样类型数值参与运算时的转换规则

>>> coerce(1,2)
(1,2)
>>>
>>> coerce(1.3,134L)
(1.3,134.0)
>>>
>>> coerce(1,12L)
(1L,12L)
>>>
>>> (1j,12L)
(1j,(12+0j))

③divmod()

divmod()函数结合了除法和取余,接受两个参数,被除数和除数,返回一个包含商、余数的元组。执行的除法都是地板除,余数经过取余运算获得。

>>> divmod(11,3)
(3,2)
>>> divmod(3,11)
(0,3)
>>> divmod(3,1.5)
(2.0,0.0)
>>> divmod(1.5,3)
(0.0,1.5)
>>> divmod(2+34j,1+17j)
((2+0j),0j)                      #复数的商仅取实数部分的商

④pow()

pow()和双星号**功能相似,都是指数运算。pow()接受三个参数,第一个参数是底数,第二个参数是指数,这两个是必选的;pow()还能够接受第三个可选参数,若是给出这个参数,pow()先进行指数运算,而后将运算结果和第三个参数进行取余运算。这个特性主要用于密码运算,且效率比pow(x,y) % z 好!

>>> pow(2,3)
8
>>> pow(3,2)
9
>>> pow(2,3,3)
2
>>> pow(1+2j,4)
(-7-24j)

⑤round()

内建函数round()用来对浮点型进行四舍五入。接受两个参数第一个是要进行四舍五入的浮点型,第二个可选参数告诉round()函数将结果精确到小数点后指定位数。不指定第二个参数,则返回与第一个参数最接近的整型,即保留小数点后0位(仍然是浮点型)

>>> round(3)
3.0
>>> round(3.45)
3.0
>>> round(3.4999)
3.0
>>> round(3.499999,1)
3.5
>>> round(-3.5)
-4.0
>>> round(-3.4)
-3.0

⑥int()   round()    math.floor()区别

函数int()直接截去小数部分,返回值是整型

函数math.floor()获得最接近原数但小于原数的整型,返回值是浮点型

函数round()按四舍五入的规则进行取整,获得最接近原数的整型,返回值是浮点型

(3)仅用于整型的函数

Python提供仅适用于整型的内建函数,能够分为两类:一类用于进制转换;一类用于ASCII转换

①进制转换函数

python内建函数oct()接受一个任意进制的整型对象,返回相应的八进制(以0开头)的字符串对象

内建函数hex()接受一个任意进制的整型对象,返回相应的十六进制(以0X开头)的字符串对象

>>> oct(25)
'031'
>>> oct(31)
'037'
>>> hex(255)
'0xff'
>>> hex(192)
'0xc0'

②ASCII转换函数

python内建函数chr()接受一个单字节整型值,返回一个字符串,字符串值为对应的字符

内建函数ord()则相反,接受一个字符,返回其对应的整型值

>>> chr(65)
'A'
>>> chr(97)
'a'
>>> chr(48)
'0'
>>>
>>> ord('a')
97
>>> ord('A')
65
>>> ord('0')
48

③全家福:

7.其余数字类型

(1)布尔型

几条性质:

①布尔值事实上是整型的子类,True对应整型1,False对应整型0

②所以的python对象都有一个内建的True或False值。下列对象的布尔值是False:

None;
False (布尔类型);

全部的值为零的数;

0 (整型);

0.0(浮点型);

0L (长整型);

0.0+0.0j(复数);

"" (空字符串);

[] (空列表);

() (空元组);

{} (空字典);

值不是上面列出来的任何值的对象的布尔值都是 True,例如 non-empty、 non-zero 等等。 用户建立的类实例若是定义了 nonzero(__nonzero__())或 length(__len__())且值为 0,那么它们的布尔值就是 False。

>>> bool(1)
True
>>> bool(True)
True
>>> bool(0)
False
>>> bool("0")
True
>>> bool(0.0)
False
>>> bool(0L)
False
>>> bool([])
False

8.相关模块

①python关于数值的常见模块如图

②关于random的介绍

例:

>>> import random

>>> random.randint(12,23)
16
>>> random.randrange(12,23)
18
>>> random.uniform(12,23)
13.5080332618
>>> random.random()
0.6490402518091863
>>> random.choice([12,15,16,18,19,20])
20
>>> random.choice([12,15,16,18,19,20])
16
>>> random.choice([12,15,16,18,19,20])
19
相关文章
相关标签/搜索