Python编程基础3

容器:
列表:列表是有序、可变的数据类型;列表中可以包含不同类型的对象;列表可以由[ ]创建;支持下标和切片操作
列表的其他操作
练习:alist = ['lisi','tom','jerry','xixi','xiaomei']
计算列表的长度并打印,通过切片获取索引为偶数的所有值并打印出获取后的列表,列表中追加元素mike并打印添加后的列表,在列表索引为1的位置插入元素Tony并打印添加后的列表,修改列表索引为2的位置的元素为Kelly并打印修改后的列表,请将列表2=[1,"a",3,4,"heart"]的每一个元素追加到列表li中并打印添加后的列表,请删除列表中的元素"xixi”并打印删除后的列表,请删除列表中索引为2的元素并打印删除元素后的列表。
元组(tuple):元组是有序的(索引、切片)、不可变类型,通过()创建元组,与列表类似作用于列表操作,绝大数也可以作用与元组,一般用于存储一些在程序中不应该被修改的一系列值。
当元组存放的是单个元素需要再后面加上逗号,否则创建元组失败
字典(dictionary):是除列表以外Python之中最灵活的数据类型。字典同样可以用来存储多个数据,通常用于存储描述一个物体的相关信息。和列表的区别在于列表是有序的对象集合,字典是无序的对象集合。字典用{ }定义。字典使用键值对存储数据,键值对之间使用“ ,”分隔,键key是索引,值value是数据,键和值之间使用‘:’分隔,键必须是唯一的,值可以取任何数据类型,但键只能使用字符串、数字或元组。
查询字典:
修改与删除字典:
练习:模拟用户登录信息系统
支持新用户注册(添加),新用户名和密码注册到字典中。支持老用户登录(查询),用户名和密码正确提示登录成功。
集合set:集合与元组和列表相似用于做容器,在内部可以放一些子元素。集合有三特殊点:子元素不重复、子元素必须可哈希(不可变)、无序。
交集、并集、差集
练习:查找文件的不同内容
系统管理模块:
shutil模块:可以简单的理解为sh(shell)+util(工具)=shell工具。对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。
拷贝移动
权限
os模块:对文件系统的访问大多通过Python的os模块实现,该模块是Python访问操作系统功能的主要接口。
目录的创建和删除
软连接的创建和删除
删除文件
获取文件名和路径,以文件路径最右边的‘/’符分隔
join拼接生成指定的路径根据操作系统的环境而改变,(Windows、Linux)
exits判断当前路径在系统中存在还是不存在
subprocess模块:os和shutil具有夸平台性,而subprocess只能在Linux中使用。subprocess主要用于执行系统命令,允许产生新的进程并获得返回状态。可以在Python中执行操作系统级别的命令如ifconfig、du -sh 等
run的返回值,args:执行的命令。returncode:执行命令成功返回0,不成功返回非0,相当于shell的$?.
练习:调用ping命令
编写函数,用于测试远程主机的连通性
异常:当Python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常。异常是因为程序出现了错误而在正常控制流以外采取的行为。这个行为又分为两个阶段:首先是引起异常发生的错误;然后是检测(和采取可能的措施)阶段。
输入非数字是报错ValueError
try:抛出异常,此时当输入的不是数字时,不影响下面的代码,也能打印出hello。
当除数为0时的报错类型为ZeroDivisionError
抛出该异常
拿到系统报错信息
当执行程序,按ctrl+c退出程序时就会报错
抛出该报错
当执行程序,按ctrl+d退出程序时也会报错
当按Ctrl+c和Ctrl+d的执行结果一样,需要将它们放到元组中
当不清楚具体的异常,使用Exception兜底
else子句:当try中的代码没有出现异常,则执行else中的代码
当异常时就不会执行else中的代码
打印结果跟出现异常的代码没有关系,所以可以把打印结果放到else子句中
finally子句:无论try中的代码是否发生异常,都会执行finally子句中的代码
finally应用在:打开文件,当发生了异常后导致文件没有关闭,可能会发生数据损坏,使用finally可以保证文件总是能正常的关闭。
自定义异常(触发异常)raise:要想自己引发异常,最简单的形式就是输入关键字raise后面跟要引发的异常的名称,根据应用程序特有的业务需求主动抛出异常。
列如:提示输入密码,如果长度少于8抛出异常。
或者使用和报错相关的准确异常
关键字参数:关键字参数的概念仅仅针对函数的调用,让调用者通过函数调用中的参数名字来区分参数
位置传参应该放在关键字参数的前面。
练习:简单的加减法数学游戏
随机生成两个100以内的数字,随机选择加法或减法,总是使用大的数字减去小的数字。
利用列表推导式,将三行代码浓缩为一行。
匿名函数:Python允许用lambda关键字创造匿名函数,匿名是因为不需要以标准的def方式来声明,一个完整的lambda语句代表了一个表达式,这个表达式定义体必须和声明放在同一行。
函数式编程:让一个函数作为另一个函数的参数
filter函数:调用一个布尔函数func来迭代遍历每个序列中的元素;返回一个使func返回值为true的元素的序列。如果布尔函数比较简单,直接使用lambda匿名函数就显得非常方便了filter(布尔函数,列表)
以匿名函数使用
map函数:调用一个函数func来迭代遍历每个序列中的元素;返回一个经过func处理过的元素序列
如果函数比较简单,直接使用lambda匿名函数就显得非常方便了。map(加工函数,列表)
map使用布尔函数不会和filter函数一样过滤
全局变量:在函数外部定义的变量。在一个模块中最高级别的变量有全局作用域。全局变量的一个特征是除非被删除掉,否则它们的存活到脚本运行结束,且对于所有的函数,他们的值都是可以被访问的
局部变量:在函数内部定义的变量。局部变量只时暂时地存在,仅仅只依赖于定义它们的函数现阶段是否处于活动。当一个函数调用出现时,其局部变量就进入声明它们的作用域。在那一刻,一个新的局部变量名为那个对象创建了一旦函数完成,框架被释放,变量将会离开作用域
使用global语句在函数内部做声明使用全局变量
生成器:Python使用生成器对延迟操作提供了支持,所谓延迟操作,是指在需要的时候才产生结果,而不是立即产生结果。一个函数或者子程序只返回一次,但一个生成器能暂停执行并返回一个中间的结果。
生成器表达式:使用列表推导式将数据一次性放到内存中,当数据太大时内存就放不下了。使用生成器能想要数据的时候读取,不会给内存造成太多的压力。
生成器函数:是一个带yield语句的函数,yield表示函数执行的暂停。yield 语句返回一个值给调用者并暂停执行。当生成器的next()方法被调用的时候,它会准确地从离开地方继续。
练习:文件生成器。
使用函数实现生成器yield,函数接受一个文件路径作为参数(读文件),生成器函数每次返回文件的10行数据。
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值