《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对象是否包含某个

  • 40
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python项目案例开发从入门实战》是一本教授Python项目实战开发的书籍,其中第12章介绍了一个两人麻将的代码案例。 该代码案例基于Python语言,在命令行界面下实现了两人麻将的玩法。玩家可以通过输入命令来进行游戏,并根据游戏规则进行打牌、吃牌、碰牌、杠牌等操作。 这个案例主要分为以下几个模块实现: 1. 游戏初始化模块:包括麻将牌的初始化、洗牌、发牌以及庄家的选定。 2. 玩家模块:定义玩家类,包括玩家的基本属性和方法,如玩家手牌的管理、出牌、吃牌、碰牌、杠牌等。 3. AI模块:实现一个简单的AI玩家,通过计算分析当前手牌的组合来决定出牌和是否进行吃牌、碰牌、杠牌等操作。 4. 游戏逻辑模块:定义游戏的逻辑规则,包括判断胡牌、判断吃牌、判断碰牌、判断杠牌等。 5. 主程序模块:启动游戏,创建玩家和AI对象,按照游戏规则进行交互,直到有玩家胡牌或牌局结束。 通过编写以上模块的代码,最终实现了一个简单的两人麻将游戏。玩家可以直接运行程序,在命令行中按照提示进行操作,体验两人麻将的乐趣。 这个代码案例是一个较为完整的项目实战,通过实际开发一个游戏,读者可以更好地理解和运用Python编程的知识。同时,也可以通过扩展和优化这个代码案例,使其具备更多的功能和特性,来提升自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值