数据结构论坛

注册

 

发新话题 回复该主题

python新手入门如何自学 [复制链接]

1#

一、列表

list()

变量可以存储一个元素,而列表是一个“大容器”可以存储N多个元素,程序可以方便的对这些数据进行整体操作

列表相当于其他语言中的数组

列表元素按顺序有序排序

列表可以存放重复数据

任意数据类型混存

根据需要动态分配和回收内存

添加一个元素append

添加多个元素extend

在任意位置添加一个元素insert

remove从列表中移除一个指定元素,如果有重复的元素只移除第一个元素

pop根据索引移除元素如果不指定索引会删除列表的最后一个元素

del清除列表中的所有元素

sort()默认升序排列参数reverse=True表示降序排列

sorted()对列表进行排序,将产生一个新的列表对象

列表生成式lst[iforiinrange(1,10)]

二、元组集合

tuple()

不可变序列:字符串、元组

不可变序列是没有增删改的操作

如果元组中只有一个元素,逗号不能省T3=(python,)

set()集合

内置数据结构

可变类型的序列

add()一次添加一个元素

update()至少天机啊一个元素

remove()一次删除一个指定元素

discard()一次删除一个指定元素,元素不存在不报异常

pop()一次只删除一个任意元素

clear()清空集合

一个集合是否是另一个集合的子集issubset()

一个集合是否是另一个集合的超子集issuperset()

两个集合是否含有交集isdisjoint()

交集intersection()

并集union()

差集difference()-

对称差集symmetric_difference()^

集合生成式s={i*iforiinrange(10)}

三、字符串

字符串驻留机制的优缺点:

当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,

因此拼接字符串和修改字符串是会比较影响性能的。

在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符中的长度,然后再拷贝,

只new一次对象,效率比“+”效率高

查找

index()查找字串substr第一次出现的位置,如果查找的字串不存在时,则抛出ValueError

rindex()查找子串substr最后一次出现的位置,如果查找的字串不存在时,则抛出ValueError

find()查找子串substr第一次出现的位置,不存在返回-1

rfind()查找子串substr最后一次出现的位置,不存在则返回-1

转换

upper()把字符串中所有字符转换为大写字母

lower()把字符串中所有字符转换为小写字母

swapcase()把字符串中所有大写字母转换成小写字母,把所有小写字母转换成大写字母

capitalize()把第一个字符转换为大写,把其余字符转换成小写

title()把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写

对齐

center()居中对齐

ljust()左对齐

rjust()右对齐

zfill()右对齐使用0填充

分割

split()从字符串的左边开始分割,默认的分割字符是空格字符串,返回的值是一个列表maxsplit指定分割多少

rplit()从右侧开始分割

判断

isidentifier()判断字符串是否是合法的标识符

isspace()判断字符串是否全由空白字符组成(回车、换行、水平制表符)

isalpha()判断字符串是否全是字母

isdecimal()判断字符串是否全啥十进制数字组成

isnumeric()判断字符串是否全由数字组成

isalnum()判断字符串是否有字母和数字

replace()第一个参数替换给第二个

join()将列表或者元组中的字符串合并为一个字符串

编码转换

encode(encoding=GBK)编码

decode(encoding=GBK)解码

四、函数

函数:执行特定任何以完成特定功能的一段代码

服用代码隐藏实现细节提高可维护性提高可读性便于调试

函数返回多个值时,结果为元组

*args(一个星号传递可变的位置参数,返回值是一个元组)

**args(两个星号传递个数可变的关键字参数,返回值是一个字典)

五、BUG

try/p>

exceptBaseExceptionase/p>

print(出错了,e)

else/p>

finally/p>

traceback模块打印异常信息存储到日志文件中

六、类

类的组成:类属性、实例方法、静态方法、类方法

在类之外定义的称为函数,类之内定义的称为方法

类属性:类中方法外的变量称为类属性,被该类的所有对象所共享

类方法:使用

classmethod修饰的方法,使用类名直接访问的方法

静态方法:使用

staticmethod修饰的方法,使用类名直接访问的方法

封装:提高程序的安全性

将数据(属性)和行为(方法)包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。

这样,无需关心方法内部的具体实现细节,从而隔离了复杂度。

在python中没有专门的修饰符用于属性的私有,如果该属性不希望再类对象外部被访问,前边使用两个"_"。

继承:提高代码的复用性

多态:提高程序的可扩展性和可维护性

七、字典

dict()

python内置的数据结构之一,与列表一样是一个可变序列

以键值对的方式存储数据,字典是一个无序的序列

python中的字典是根据key查找value所在的位置

字典的键值(key)不能重复,值(value)可以重复

字典中的key必须是不可变对象

字典也可以根据需要动态地伸缩

字典会浪费较大的内存,是一种使用空间换时间的数据结构

字典生成式:

items=[Fruits,Books,Others]

prices=[96,78,85]

d={itempriceforitem,priceinzip(items,prices)}

Python为字典类型提供了items()方法,items()方法会将字典里的所有的键与值一起返回。

例如,餐馆有一个菜单包含了菜名和价格信息,菜名和价格顾客都需要知道,可以通过遍历输出menu字典的键和值来实现:

对于餐馆中的厨师来说,他们并不想要知道菜的价格,只需要知道菜名然后将其做出来就行。所以对于厨师来说,

我们需要遍历menu字典中的所有菜名。Python为字典类型内置了keys()方法,该方法会将字典里的键遍历出来。

对于餐馆中的收银员来说,他们可能并不想知道菜单的菜名,只需要知道菜的价格,然后收账即可。

所以对于收银员来说,我们需要遍历menu字典中的所有菜的价格。Python为字典类型内置了values()方法,该方法会将字典里的值遍历出来。

七、深拷贝和浅拷贝

变量的赋值操作:只是形成两个变量,实际上还是指向同一个对象

浅拷贝:python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不烤贝,

因此,源对象与拷贝对象会引用同一个子对象

深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,

源对象和拷贝对象所有的子对象也不相同

八、常用的内容模块

sys与python解释器及其环境操作相关

time提供与时间相关的各种函数

os访问操作系统服务功能

calendar与日期相关的各种函数

urllib读取来自网上(服务器)的数据

json使用json序列化和反序列化对象

re用于在字符串中执行正则表达式匹配和替换

math标准算术运算

decimal进行精确控制运算精度、有效位数和四舍五入操作的十进制运算

logging灵活的记录事件、错误、警告和调试信息等日志信息的功能

九、os模块操作目录相关函数

getcwd()返回当前的工作目录

os.system()打开系统文件

os.startfile()打开应用程序

listdir(path)返回指定路径下的文件和目录信息

mkdir(path[,mode])创建目录

makedirs(path1/path2...[,mode])创建多级目录

rmdir(path)删除目录

removedirs(path1/path2......)删除多级目录

chdir(path)将path设置为当前工作目录

十、os.path模块操作目录相关函数

abspath(path)用于获取文件或目录的绝对路径

exists(path)用于判断文件或目录是否存在,如果存在返回True,否在返回Flase

join(path,name)将目录与目录或者文件名拼接起来

splitext()分离文件名和扩展名

bashname(path)从一个目录中提取文件名

dirname(path)从一个路径中提取文件路径,不包括文件名

isdir(path)用于判断是否为路径

分享 转发
TOP
发新话题 回复该主题