您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页python菜鸟入门笔记

python菜鸟入门笔记

来源:汇智旅游网

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

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

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

列表: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,我们来试验一下

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

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

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

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

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

字符串方法 (针对字符串的)
1 center–通过在两边添加填充字符(默认空格)让字符串居中
2 find --在字符串中查找子串,找到就返回子串的第一个字符的索引,否则返回-1
第一个参数为寻找内容,第二个参数为寻找开始的索引,第三个参数为寻找结束的索引
3 join --与split相反,用于合并序列的元素
注意所合并序列的元素必须都是字符串

4 lower – 返回字符串的小写版本
另:title() 可将字符串转换为词首大写
5 replace – 将指定子串都替换成另一个字符串,并返回替换后的结果 (查找并替换功能)
6 split – 与join相反 将字符串拆分为序列

7 strip – 将字符串开头和末尾的空白删除,并返回删除后的结果
还可以使用字符串参数指定要删除那些字符(只可以删开头与末尾的)
8 translate – 类似replace 但是它只能进行单字符替换,不过它可以同时替换多个字符,因此效率更高
另:使用translate时必须要先创建一个转换表,可对字符串类型str调用方法maketrans,接受三个参数 1 需要替换的元素,2 替换成的元素(两者等长,替换都是按位进行的),3 需要删除的元素,可以是空格。然后再利用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中的函数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 – 获取与指定键相关联的值,除此之外 若字典中不包含该值,还会添加进去,包含的话就返回原值,而不会因查询而更新。

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利用‘:’表示代码块开始,缩进量改变表示在不同代码块(退出代码块)

条件语句

if + 判断语句 + :


elif + 判断语句 + :


else + :



区分相等运算符‘==’和相同运算符‘is’

有时候相等但并非相同,因为并非同一个对象。
in – 成员资格运算符

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

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

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

一些迭代工具
并行迭代
print方法。
内置函数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__ 属性来访问。
函数调用里面的 关键字参数,有利于澄清各个参数的作用,使用名称指定参数内容
位置参数与关键字参数,可结合使用。
收集参数,在函数指定参数前加* *(一个就行) 类似指针,但不是指针。最后返回的数据是用元组来存储的。
另外 星号 * (一个)只可以收集位置参数,不可以收集关键字参数。两个星号 才可以收集关键字参数,且此时得到的是一个字典而非元组。
分配参数:与收集参数相反,若一个元组作为输入,调用函数的时候 参数前加一个 星号,返回值就是正常的值而非元组。
如果在定义和调用函数时都使用
(一个)或 *(两个),将只传递元组或字典。因此还不如不使用它们,还可省却些麻烦。

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务