python基础教程(第三版)学习笔记(一)

计划用国庆假期把这本书给刷了

 前言:

编程简单,清晰易懂,简洁的代码

感兴趣的趣味项目(对近期工作可能有帮助):

1. 自动添加标签

第一章节:基础知识

计算机编程就是告诉计算机如何做事;算法 --> 流程、菜谱、操作

将python当做计算器来使用

进制(工作不常用):

0xAF=175

010=8

获取用户输入(不常用交互):input("The meaning of work: ")

使用函数:**调用**函数 --> 向函数提供**实参**。

模块:能力的扩展

单引号和双引号字符串没有区别。 -->必要时使用转义字符、长字符串、原始字符串

repr和str的区别:

长字符串:'''  ''', """  """

原始字符串:r"\nhello"  一些例外如引号:print(r'Let\'s go!')

原始字符串不能以单个反斜杠结尾

变长编码:不怎么用,日后有需要再看

章节总结:

  1. 程序告诉电脑如何做事,算法是做事的菜谱,数据是做菜的食材

  2. 表达式,运算符,函数,变量

  3. 变量赋值语句

  4. 语句:一种动作

  5. 函数:对多个语句的封装,组合技,连续动作的组合

  6. 模块:扩展功能,工具包

  7. 字符串基本操作

第二章节:列表和元组

常用数据结构

元组不可修改,但数组可以

元组可以用作字典键值(不常用)

容器:可以包含对象的对象。常见的容器:序列(列表、元组)和映射(字典)

常见操作:索引,切片,相加,相乘,成员资格检查,迭代

索引:

-1是最后一个元素

切片:

第一个索引是包含的第一个元素的编号,但第二个索引是切片后余下的第一个元素的编号。

可以使用负数索引

切片的步长:

使用in来检查特定的值是否在序列中

len,min,max(需要搭配比较运算符)

列表转型:list(..)

给元素赋值、删除元素、给切片赋值以及使用列表的方法

del:删除元素,同时会改变列表长度。

给切片赋值 -> 可以将切片的长度改变,或者实现插入新元素/删除切片的功能:

列表方法:

append,在末尾添加

clear清空列表

copy:列表的深拷贝:

count:计算指定元素的出现频率

extend:序列的扩展。例如,用一个列表来扩展另一个列表。和拼接的区别是,拼接的结果是一个全新的序列,而扩展是修改原有的序列。

效率上,a.extend(b) 优于 a = a + b

index:元素第一次出现的位置

insert:插入元素

pop:删除元素(和append搭配使用形成一个后进先出的栈结构,和insert(0,...)搭配使用可以形成一个先进先出的队列。更好的方式:使用collections中的deque。)

remove:删除指定值的元素(第一个)

reverse:倒序。注意返回的是一个迭代器,如果要返回列表:list(reversed(x))

sort:**就地**排序。也就是说,不会返回一个新的排序后列表副本。如果不想改原来的序列,可以结合copy使用。

另一个函数:y=sorted(x)

sort的高级用法:

①比较参数:key=,传入一个函数对象作为key,用于比大小,可以实现定制化的cmp。

②反序:reverse=True

元组:不可修改

单个元素的元组:(42, )

转型:tuple()

本章小结:

1. 序列是一种数据结构,包括列表和元组。

2. 可以索引和切片来访问序列片段。

3. 列表可以为索引和切片赋值。

4. 可用in来查找特定值是否在序列里,或者字符串是否包含子串。

第三章节:使用字符串

字符串是常量序列

将值转换成字符串,并设置格式字符串,在工作中非常重要和常见。

示例:

>>> format = "Hello, %s. %s enough for ya?"

>>> values = ('world', 'Hot')

>>> format % values

'Hello, world. Hot enough for ya?'

转换说明符:

%s:s是字符串,如值不是字符串,会强制转型。

$.3f:包含3位小数的浮点数。

模版字符串:有点邪教,不是很想学。

推荐方法:使用format:

>>> "{}, {} and {}".format("first", "second", "third")

'first, second and third'

>>> "{0}, {1} and {2}".format("first", "second", "third")

'first, second and third'

然而,索引无需像上面这样按顺序排列。

>>> "{3} {0} {2} {1} {3} {0}".format("be", "not", "or", "to")

'to be or not to be'

命名字段的工作原理与你预期的完全相同。

>>> from math import pi

>>> "{name} is approximately {value:.2f}.".format(value=pi, name="π")

'π is approximately 3.14.'

当然,关键字参数的排列顺序无关紧要。

{value:.2f}:可以指定了格式说明符.2f,并使用冒号将其与字段名隔开。它意味着要使用包含2位小数的浮点数格式。

如果没有指定.2f,结果将如下:

>>> "{name} is approximately {value}.".format(value=pi, name="π")

'π is approximately 3.141592653589793.'

f字符串是一种更简洁的表达:

>>> from math import e

>>> f"Euler's constant is roughly {e}."

"Euler's constant is roughly 2.718281828459045."

要在最终结果中包含花括号,可在格式字符串中使用两个花括号(即{{或}})来指定。

>>> "{{ceci n'est pas une replacement field}}".format()

"{ceci n'est pas une replacement field}" 

3.3有点冗长不太想看,跳过了

3.4字符串方法:

center:指定长度并居中

find:查找子串,返回索引或-1(没找到);rfind,index,rindex,count,startswith,endswith

join:和split相反,用于以指定的连接符,合并序列的元素,返回字符串。

lower:小写;title,super

replace:替换字符串,返回替换后结果

split:拆分字符串,得到序列

strip:将字符串开头和末尾的空白删除,返回删除后结果

isxxxx:字符串是否满足特定的条件,等等,日后有用到再查pydoc好了。

本章小结:

字符串%.3d用来约束小数点后有效数字。

字符串具有很多实用的方法。

附:查了一下,发现原本以为有用的趣味编程好像并不一定有用。再看看吧。

第四章节:字典

字典是映射的容器

d[k] = v赋值

字典中如果key不存在的话会创建一个新的项

k in dict的时候,查找的是key是否存在而不是value是否存在

格式化字符串用于字典:

clear的用法:

注意:拷贝与深拷贝:

fromkeys:保留字典的key,但创建全新的空字典,value=None

get可以在访问不存在的key时不会引发异常:

字典视图:

  items:把字典中所有元素汇总成一个列表,格式为(key,value),排序不确定。

  keys:返回所有的key

  values:返回所有的value

pop:拿到指定的key对应的value,并删除该键值对

popitem:随机pop一个键值对

setdefault:当key不存在时,设置默认值。

update:用一个字典的已有键值对,来刷新另一个字典的键值对

本章小结:

python的映射是字典。key不重复。key不存在时会新增一次录入。

format_map用于在字符串格式中利用字典。

字典方法需要注意拷贝和深拷贝的使用。

以上是一些基础的内置类型,以及对基本的表达式有了认识。后续有语句,流程体,以及面向对象抽象、高级数据结构,等,另开一篇笔记。

python基础教程(第三版)学习笔记(二)-CSDN博客

python基础教程(第三版)学习笔记(三)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值