python菜鸟入门笔记

数据结构:最基本数据结构–序列(包含列表和元组);字符序列称为字符串;列表、字符串、字典是py三种最重要的数据类型;映射也是一种数据结构–通过名称来访问各个值。

第一章(py基础教程第三版)
模块
可将模块视为扩展,利用import 导入模块
使用模块中的函数时,可 模块名+.+函数名
字符串
字符串中 单引号双引号的效果一致,为避免字符串包含单引号的情况导致报错,最好一直使用双引号
原始字符串(r’)可以在用print打印字符串的时候 不要识别反斜杠

常用函数
常用函数
第二章
数据结构哎,优秀,之前了解过,但是啥也不会,来吧!数据结构!

序列–列表和元组
列表可修改,元组不可以
序列操作–
索引、表示序列中元素的编号,从零开始(另:字符串就是由字符组成的序列,每个索引表示一个字符,一个字符就是只包含一个元素的字符串,py没有专门用于表示字符的类型)
负数索引时,从右向左数,故-1是最后一个元素
字符串字面量,可直接对其执行索引操作
直接对字符串字面量进行索引操作
函数调用时也可以直接执行索引操作
函数调用结果直接用索引
嗯这里有一个序列比较奇妙

描述的是日期的尾标,此序列中有31个元素,可见其可以用相似数乘的方法定义。
切片、 访问特定范围内的元素,索引的延伸tag[9:30] 冒号表示。注意如左边所示用索引来指定切片边界时,第一个索引元素在切片内,第二个不在。
还可以规定步长,默认步长为1,tag[9:30:3],步长为3
相加、加法运算符可以用来拼接序列,但是不能拼接不同类型的序列
相乘、数乘运算来实现重复这个序列x次来创建一个新序列
成员资格检查、布尔运算符;运算符 in ,返回true or false
检查特定值是否包含在序列中可利用此运算符 in 。
内置函数 len、min 、max 返回序列包含的元素个数,最大值,最小值。

列表:py的主力
修改列表:给列表元素赋值(类似其它语言的数组,不过其索引用的是中括号)
列表删除元素 可用 del 语句
del tag[3]
给切片赋值name[2:] = list(‘hello’) 表示从第二个元素到最后改为hello,name[2:2]表示在2~3索引间插入…

列表方法:列表是与对象(列表,数,字符串)紧密联系的函数 (针对列表的)
1 append–将一个对象附加到列表末尾
append 不会返回修改后的新列表,就地改变旧列表
2 clear --就地清空旧列表内容
3 copy --复制列表
常规复制只是将另一个名称关联到列表,改变b时a同时也改变,要想让a与b指向不同的列表,就必须将b关联到a的副本。此时可用b = a.copy()
4 count --计算指定元素在列表中出现了几次
5 extend-- 使用一个列表来扩展另一个列表,听起来像append,我们来试验一下
extend 与 append 的区别
6 index --在列表中查找指定元素第一次出现的索引
7 insert --将一个对象插入列表
与append不同的是 后者是插入末尾
8 pop --从列表中删除一个元素,并返回这一个元素
亮点是 它的返回值是自己删除的那个元素
(pop是唯一一个既修改列表又返回一个非none值的列表方法)
push 与 pop 是普遍接受的两种栈操作(加入和取走)python没有push 可用append来替代
pop不给输入时 表示删除/取出最后一个元素
9 remove --删除第一个为指定值的元素,与pop不同的是,它只删除而无返回值
10 reverse --按相反顺序排列列表中的元素 依旧无返回值
11 sort – 对列表就地排序 ,无返回值
12 高级排序 – sort 有两个关键字参数-- key 和 reverse
若 key = len ,则根据长度对元素进行排序 true or false 是否按相反顺序对列表进行排序
函数 sorted 也接收参数key 和 reverse sorted 有返回值,不针对对象使用

元组:不可修改的序列
tuple()函数可以将序列转换为元组
一个值表示的元组 后面必须加逗号,圆括号可有可无,定义元组必须有逗号
定义元组
本章函数

第三章 使用字符串
设置字符串格式
format --字符串调用方法
利用 % 表示此处需要插入变量,或利用format 加 {}表示
花括号中包含替换字段,其中可能包含名称,也可能包含其他信息

基本转换s、r、a指定分别使用str、repr、ascii进行转换 利用 !+ s/r/a
类型转换 方法: 名称+:+字符(如f、b)
字符串格式设置中的类型说明符

字符串格式设置中的类型说明符2

宽度、精度、千位分隔符
宽度 name+:+某整数 表示字段宽度
精度 name+:+.+某整数 表示小数点后保留位数
千位分隔符 用逗号 name+:+, 这就表示 后面代替的数据 每三位加一个逗号 即千位分隔符
同时指定其他格式设置元素时,这个逗号应放在宽度和表示精度的句点之间

符号、对齐和用0填充
符号 0、$等、<、^、>
前两项表示一个用来填充数字的标志,它可以是0或者加号 减号 空格等;后三项表示对齐方式,分别是左对齐 居中 右对齐;这些符号放在冒号后,表示宽度的整数前。
=字符指示将填充字符放在符号和数字之间
+字符可以给正数加符号+。位置放在对其说明符后面。
#字符 位置在符号说明符和宽度之间,此说明符将触发另一种转换方式,转换细节随类型而异,对于2进制、8进制、16进制将加上一个前缀,对于10进制她要求必须包含小数点,无小数点它会补充上

字符串方法 (针对字符串的)
1 center–通过在两边添加填充字符(默认空格)让字符串居中
2 find --在字符串中查找子串,找到就返回子串的第一个字符的索引,否则返回-1
第一个参数为寻找内容,第二个参数为寻找开始的索引,第三个参数为寻找结束的索引
3 join --与split相反,用于合并序列的元素
注意所合并序列的元素必须都是字符串
join用法
4 lower – 返回字符串的小写版本
另:title() 可将字符串转换为词首大写
5 replace – 将指定子串都替换成另一个字符串,并返回替换后的结果 (查找并替换功能)
6 split – 与join相反 将字符串拆分为序列
split用法
7 strip – 将字符串开头和末尾的空白删除,并返回删除后的结果
还可以使用字符串参数指定要删除那些字符(只可以删开头与末尾的)
8 translate – 类似replace 但是它只能进行单字符替换,不过它可以同时替换多个字符,因此效率更高
另:使用translate时必须要先创建一个转换表,可对字符串类型str调用方法maketrans,接受三个参数 1 需要替换的元素,2 替换成的元素(两者等长,替换都是按位进行的),3 需要删除的元素,可以是空格。然后再利用translate
translate案例
本章新函数
第四章 字典 列表、字符串、字典是三种最重要的python数据类型
创建字典
zidian = {‘sun’: ‘111’, ‘wang’: ‘222’, ‘song’: ‘333’}
字典由键和相应的值组成,这种键-值对称称为相。

dict函数–从其他映射或键-值对序列创建字典
dict是所有字典所属的类型
基本字典操作
len(d)返回字典d包含的项(键值对)数。
 d[k]返回与键k相关联的值。
 d[k] = v将值v关联到键k。
 del d[k]删除键为k的项。
 k in d检查字典d是否包含键为k的项。
字典中键的类型可以是任何不可变的类型
即便是字典中原本没有的键,也可以给它赋值,这将在字典中创建一个新项。然而,如果不使用append或其他类似的方法,就不能给列表中没有的元素赋值

字典方法
1 clear --删除所有字典项
无返回值,就地执行
2 copy – 浅复制。
copy后,若替换副本中的值元件不受影响,然而,修改副本中的值时,原件会受影响。
copy应用
为了避免浅复制可以进行深复制:需要使用copy中的函数deepcopy
先从copy中引入deepcopy不用c=object.copy()直接dc=deepcopy(d)
3 fromkey – 创建一个新字典,其中包含指定的键,且每个键对应的值都是none
dict.fromkey([‘name’, ‘age’])
{‘age’ : None, ‘name’ : None}
4 get 为访问字典项提供了宽松的环境。
如果字典中包含想找的内容,get的作用与普通字典查找相同。当字典中没有时,直接访问会报错,而利用d.get(‘name’)返回None。
5 items 返回一个包含所有字典项的列表 排序方式不确定,此列表称为字典视图
6 keys – 返回一个字典试图,其中包含制定字典中的键
7 pop – 获取与指定键相关联的值,并删除该键-值
8 popitem – d.popoitem 随机地弹出一个字典项,返回一个,并从原字典中删除。
9 setdefault – 获取与指定键相关联的值,除此之外 若字典中不包含该值,还会添加进去,包含的话就返回原值,而不会因查询而更新。
setdefault用法
10 update – 使用一个字典中的项来更新另一个字典 d.update(x)用x更新d,若d中有替换!,若没有,添加!
11 values – 返回一个由字典中的值组成的字典视图,不同于方法keys,方法values返回的视
图可能包含重复的值

第五章 语句! 条件,循环,其他
print语句中有一个参数 sep=’-‘ 此语句表示多个表达式之间地分隔符时-,默认是空格
还有参数 end=’&‘ 表示结束字符串,此时,结束字符串为&,以后下一条print时不用换行,还可以继续该行。
导入文件中的一切时可用:from somemodule import *

赋值魔法:
1 并行给多变量赋值—序列解包:
多变量赋值
这种方式还可以交换多个变量的值:x, y = y, x 这样,两变量中的值就交换了。
其实此操作称为序列解包,注意序列包含的元素个数必须与等号左边列出的目标个数相同。否则报错,若不想报错,就得利用*
*运算符
*运算符可以在其他位置
2 链式赋值 x = y = somefunction() 此语句可行,此代码与下的代码等价:
y = somefunction()
x = y
3 增强赋值 += 等合法

代码块缩进的乐趣 py利用‘:’表示代码块开始,缩进量改变表示在不同代码块(退出代码块)

条件语句

False None 0 “” () [] {}
换而言之,标准值False和None、各种类型(包括浮点数、复数等)的数值0、空序列(如空
字符串、空元组和空列表)以及空映射(如空字典)都被视为假,而其他各种值都被视为真①,
包括特殊值True②。

if + 判断语句 + :


elif + 判断语句 + :


else + :


py比较运算符
区分相等运算符‘==’和相同运算符‘is’
还好
有时候相等但并非相同,因为并非同一个对象。
in – 成员资格运算符

字符是根据顺序值排列的。要获悉字母的顺序值,可使用函数ord。这个函数的作
用与函数chr相反

关键字 assert可以使程序提前报错 可充当检查点 她是if 的好伙伴
还可以在条件后面加一个字符串面对断言做出说明 assert+报错条件+‘字符串说明次数报的错’

循环
while循环for循环(range与in)
迭代字典时可以使用字典方法 d.value 或者 d.item + 序列解包运算

一些迭代工具
并行迭代
print方法。
内置函数zip
zip函数用法 妙哉
函数zip可用于“缝合”任意数量的序列。需要指出的是,当序列的长度不同时,函数zip将
在最短的序列用完后停止“缝合”

迭代时获取索引–for index, string in enumerate(strings): enumerate 十个内置函数
reversed和sorted函数 返回反转和排序后的版本。不是就地
注意sorted返回一个列表,而reversed像zip那样返回一个更神秘的可迭代对象。你无需
关心这到底意味着什么,只管在for循环或join等方法中使用它,不会有任何问题。只是你不能
对它执行索引或切片操作,也不能直接对它调用列表的方法。要执行这些操作,可先使用list对
返回的对象进行转换。

跳出循环
break;continue

循环中的else语句 – 如果需要在循环结束时采取某种措施,那就需要else,如果break了, else就不会执行,循环正常结束时,else才会执行。

pass语句 什么都不会发生,把它用作占位。
del语句 删除 另:在Python中,根本就没有办法删除值,而且你也不需要这样做,因为对于你不再使用的值, Python解释器会立即将其删除
使用exec和eval
使用exec时为了避免执行的代码不污染自己的命名空间,要先给他创建一个新的命名空间(字典即可)然后从字典中调用它。
使用eval 会计算用字符串标识的py表达式的值,并会返回计算结果。也可以给eval调用时提供命名空间,同一个空间,evec与eval可共用。

本章函数
第六章 抽象(函数)
callable可检查某个对象是否可调用,返回 布尔值
自定义函数:def
文档字符串,放在函数开头的字符串,可以用__doc__ 属性来访问。
函数调用里面的 关键字参数,有利于澄清各个参数的作用,使用名称指定参数内容
位置参数与关键字参数,可结合使用。
收集参数,在函数指定参数前加* *(一个就行) 类似指针,但不是指针。最后返回的数据是用元组来存储的。
另外 星号 * (一个)只可以收集位置参数,不可以收集关键字参数。两个星号 才可以收集关键字参数,且此时得到的是一个字典而非元组。
分配参数:与收集参数相反,若一个元组作为输入,调用函数的时候 参数前加一个 星号,返回值就是正常的值而非元组。
如果在定义和调用函数时都使用
(一个)或 *(两个),将只传递元组或字典。因此还不如不使用它们,还可省却些麻烦。

每个函数都将创建一个命名空间(作用域)

本章函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值