《Python3 从入门到实战》第四章内置数据类型(易忘知识点)

4.1 数值

4.1.1 int、float、complex、bool

float小数部分最多15位。

complex表示为x+yj的形式。

可以用内置函数isinstance()判断一个对象是否为某种类型的对象。

通过前缀0b或0B来表示二进制数,前缀0o或0O来表示八进制数,前缀0x或0X来表示十六进制数

用内置函数bin()、oct()、hex()分别得到一个数的二进制、八进制、十六进制对应的字符串。

4.1.2 类型转换

1.隐式类型转换

一般将int型数值转换为float型数值,或float型数值转换为complex型数值。

2.显式类型转换

int()、float()、complex()

4.1.3 浮点数的精度问题

大部分数值的小数部分无法准确存储在计算机中。

python提供了更高精度的Decimal类,还提供了用于分数计算的Fraction类。

import decimal
print(decimal.Decimal(0.1))
from fractions import Fraction as F
print(F(1,3))        #表示分数1/3
print(1/F(5,6))      #表示分数6/5

round()取最接近的整数。

4.1.5 数学模块

1.特殊的常量

包括\pi、e、nan(非数值)、inf(无穷大)

2.异常值

(1)当浮点数超过float类数值表示范围

产生的结果是inf(无穷大)。

(2)并不是所有溢出的值都用inf表示

可能会抛出OverflowError异常。

(3)如果除inf的结果都是未定的,则结果是nan(未定的数值)

nan不能和其他值进行比较,所以检查nan只能使用函数isnan()。

可以使用isfinite()来检查一个常规数值还是特殊值inf或nan。

3.浮点数的相等比较

比较差的绝对值是否足够小

isclose(a,b,*,rel_tol=1e-09,abs_tol=0.0)

默认形参rel_tol和abs_tol分别表示相对误差和绝对误差,用于比较两个浮点数是否相等。

isclose()等价于:

abs(a-b)<=max(rel_tol * max(abs(a),abs(b)),abs_tol)

4.浮点数转换为整数

trunc()截断浮点数的小数部分,floor()将浮点数转换为比它小的最大整数,ceil()将浮点数转换为比它大的最小整数。

format()方法:

{:^5}表示以宽度为5且中间对齐的格式输出format()方法里的实参。

{:5.1f}表示以宽度为5、小数点后一位的浮点数输出格式。

5.平方根、指数、对数

sqrt(x)用于专门计算一个数x的平方根。

exp(x)计算e**x,expml()用于计算e**x-1。

loglp(x)计算lg(1+x)。

6.三角函数

(1)角度、弧度转换

radians()将角度值转换为弧度,degrees()将弧度值转换成角度。

(2)三角函数及反三角函数

https://docs.python.org/3/library/math.html

4.2 列表

4.2.5

可处理list的内置函数:

  • all()        当list为空或所有元素为True时返回True。
  • any()      当list不为空且有一个元素为True时返回True。
  • enumerate()    返回一个enumerate对象,包含索引和值turple,即(下标,值)。

4.2.6 list的方法

是一个类。

extend()        在list最后添加多个元素。

clear()        清空整个list。

remove()        删除特定元素。

sort()        会修改原list / sorted()        不修改原list。

4.3 字符串

4.3.1 定义字符串

如果两个需要拼接的字符串文字量不在同一行,则需要在前面的字符串后面加上反斜杠字符\,或者在两个字符串外面用左右圆括号包围它们。

字符串不可修改。

4.3.2 转义字符

1.转义字符

2.原始字符串(raw)

忽略字符串中的转义字符:将r或R放在字符串前面。

4.3.8 字符串的方法

1.删除空白字符

  • lstrip()删除字符串的左侧空白字符。
  • rstrip()删除字符串的右侧空白字符。
  • strip()删除字符串的左右两侧空白字符。

2.分割

split(sep=None,max=-1)

max表示最大分割次数。

3.连接

str.join(sequence)

4.替换

replace(old,new,[,max])

最多替换max次。

5.查找

find()、index()

查找失败,find()返回-1,index()抛出value error的错误异常。

从结尾反方向查询是否存在匹配的子串:rfind()、rindex()。

find()只能用于字符串,index()也是list.turple类型的方法。

6.子串的计数

7.格式化

format()

<、>、^分别表示左对齐、右对齐、中间对齐,=表示正负号位于最左边。

{:*^8}中间对齐,用*填充。

8.str()和repr()

__str__()返回的字符串没有引号,__repr__()在机器内部表示字符串是有引号的。

快捷键分别是!s和!r。

"{0!r}和{0!s}".format('hello')    #0对应的是第1个参数

4.4 元组

创建只包含一个元素的turple时,必须在这个元素后面加一个逗号。

可以用+和*拼接或重复turple对象。

4.5 集合

4.5.4 set的方法

无序的不重复元素容器类型。

不能包含list。

如果创建set时传递的值重复,则set会自动去除重复的元素。

创建空的set对象时,必须es=set()

discard()方法删除一个不存在的值时,不会抛出异常。

issubset()issuperset()判断一个set对象表示的集合是否是另一个set对象表示的集合的子集或超集。

isdisjoint()判断两个集合是否有交集。

4.5.6 set的集合运算

(1)并运算

union()方法或运算符|。

eg.  A.union(B)、A|B

(2)交运算

intersection()方法或运算符&。

(3)差运算

difference()方法或减法运算符-。

(4)对称差运算

两个集合的对称差是只在两个集合中的一个集合出现的值构成的集合。

symmetric_difference()或对称差运算符^。

4.6字典

fromkeys()也可创建:dict.fromkeys(iterable,value=None)

update()插入或更新一个或多个键-值。

删除:del()或pop()(pop会返回被删除的键对应的值)

用in检测dict对象是否包含某个

你可能感兴趣的:(python学习笔记(自用),python,笔记)