python核心编程-第五章-个人笔记

1.用del删除对对象的引用

>>> 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.整型

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

(2)标准整型   长整型

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

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

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

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

3.浮点型

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

4.复数

①复数由实数部分和虚数部分构成,实数部分和虚数部分都是浮点型,虚数部分必须有后缀

②复数的属性包括:

>>> 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

真正的除法,通过执行 from __future__ import division 指令,操纵符"/"无法两个操作数是整型还是浮点型,均执行真正的除法

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

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

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

6.内建函数与工厂函数

(1)转换工厂函数

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

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

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(real2+imag2)).参数可以是表达式。

>>> 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内建函数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
>>> 
时间: 2024-12-26 07:50:55

python核心编程-第五章-个人笔记的相关文章

[python核心编程] 第五章练习题

第五章 数字 5-2. 操作符,写一个函数,计算并返回两个数的乘积“整理的时候才看到我把题目看成两个数的和了” 5-3. 标准类型操作符.写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F) A:90~100 B:80~89 C:70~79 D:60~69 F:<60 5-4. 取余.判断给定年份是否是闰年.使用下面的公式. 一个闰年后就是指他可以被4整除,但不能被100整除,或者它可以被400整除. [python核心编程] 第五章练习题,布布扣,bubuko.com

Python核心编程第五章习题

Python核心编程-第五章-习题 5.1  整形,讲讲Python普通整形与长整形的区别? Python的标准整形类型是最通用的数字类型.在大多数32位机器上,标准整形类型的取值范围是-2**32-2**32 - 1. Python的长整型类型能表达的数值仅仅与你的机器支持的(虚拟)内存大小有关,换句话说,Python能轻松表达很大的整数. 长整型类型是标准整形类型的超集,当程序需要使用比标准整形更大的整型时,可以使用长整型类型,在整型值后面添加L,表示这个为长整型,3.0版本已经统一称为为整

python核心编程-第三章-个人笔记

1.语句和语法 (1)反斜杠"\"表示语句继续.python良好的编程习惯是一行最后不超过80个字符,一行字符过多时便须用到反斜杠换行继续该语句. PS:在使用小括号.中括号.大括号时可以跨行书写,无须反斜杠:三引号的字符串也可以跨行书写 (2)分号";"可以在同一行写多个语句.虽然python支持这么做,但为了代码可读性,一般不建议这么做 2.变量赋值 (1) python中,对象是引用传递的,而不是直接将值赋给对象  如: >>> a = 12

python核心编程-第四章-个人笔记

1.所有的python对象都拥有三个特性: ①身份:每个对象都有唯一的身份标识自己,可用内建函数id()来得到.基本不会用到,不用太关心 >>> a = 2 >>> id(2) 39411616L >>> id(a) 39411616L 这个例子也同时说明python中赋值其实是"引用" ②类型:对象的类型决定可以保存什么类型的值.用内建函数type()可以得到对象的类型. >>> type(2) <type

python核心编程第五章练习-5.17-随机序列

5-17  生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 <N <= 100), (0 <= n <= 2**31 -1).然后再随机从这个列表中取 N (1 <= N <= 100)个随机数出来, 对它们排序,然后显示这个子集. #!/usr/bin/python import random N = random.randint(2, 100)  #随机获取一个指定范围内的整数 randlist = random.sa

python核心编程第五章练习-5.11-最大公约数和最小公倍数

a.求两个数的最大公约数 def common_divisor(a, b): for i in range(1, min(a, b) + 1): if a % i == 0 and b % i ==0: m = i print ("The common divisor is %d" %m) 一开始对上面这段代码始终没理解,为什么得到是就仅仅是6,因为按照目测,1, 2, 3, 6均符合if的条件,应该都会打印出来. 讨教之后才知道是因为没有区分代码组,print()的位置决定了它最终打

python核心编程--第六章 6.22 练习

6.22 练习 初学python,如果代码有问题,欢迎指正. #!/usr/bin/python # -*- coding: utf-8 -*- #6–1. 字符串.string 模块中是否有一种字符串方法或者函数 #可以帮我鉴定一下一个字符串是否是另一个大字符串的一部分? import string ss = "I'm chinese." substr = 'chinese' index = ss.find(substr) if index == -1: print("No

python核心编程--第其章 7.12 练习

7.12 练习 #!/usr/bin/python # -*- coding: utf-8 -*- # 7–5. userpw2.py. 下面的问题和例题7.1 中管理名字-密码的键值对数据的程序有关. # (a) 修改那个脚本,使它能记录用户上次的登录日期和时间(用time 模块), # 并与用户密码一起保存起来.程序的界面有要求用户输入用户名和密码的提示. # 无论户名是否成功登录,都应有提示,在户名成功登录后,应更新相应用户的上次 # 登录时间戳.如果本次登录与上次登录在时间上相差不超过4

Python核心编程_第二章课后习题

以下是自己在学习Python核心编程时,做的课后练习题.现在把它们贴出来,以记录自己的学习过程.小弟是机械出身,很多练习题目写的很是机械.虽然写出来的脚本都能满足题目要求,但效率可能不是最好的,所以,小弟还是厚着脸皮把它们给贴出来,一来可以让高手指点,二来可以与我一样在学习Python的兄弟共同学习. 以下的程序均以题目标号命名,如2-3这个题目,程序名就为2_3.py. 习题2_3.py #!/usr/bin/env python A = 10 B = 4 print "A plus B is