孙立岩 python-basic: 用于学习python基础的课件(十三十四 十五)

十三

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

def fun_add(a,b):
	return a+b
def fun_sub(a,b):
	return a-b
def fun_add_sub(a,b):
	return fun_add(a,b),fun_sub(a,b)
def fun_print(a,b):
	r_add,r_sub=fun_add_sub(a,b)
	print('a+b=%s,a-b=%s'%(str(r_add),str(r_sub)))
	return None
fun_print(4.44,3.33)
#匿名函数
print('两数之和为',(lambda x1,x2:x1+x2)(3,4))

map,filter,reduce

这三个函数是python中比较常用的,体现了一种“函数式编程”的思想。

a=list(range(100))
a=list(filter(lambda x:x%7!=0,a))
a=list(map(str,a))
a=list(filter(lambda x:'7' not in x,a))
a=list(map(lambda x:'key'+x,a))
from functools import reduce
a=reduce(lambda x,y:x+','+y,a)
print(a)
from functools import reduce
a=list(range(100))
a=filter(lambda x:x%7!=0,a)
a=map(str,a)
a=filter(lambda x:'7' not in x,a)
a=map(lambda x:'key'+x,a)
a=reduce(lambda x,y:x+','+y,a)
print(a)

十四

模块

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

针对本次的集训课程,大家会用到自己定义模块的时候,基本没有,基本都是在使用别人的模块。

定义模块,并使用自定义模块

  1. 在当前项目的目录里,建立一个文件夹(包):pack_a; 

    加载错误

  2. 在pack_a这个文件夹下,建立一个空文件:__init__.py,这个文件的名称可以告诉python,这个文件夹,是一个包;

    加载错误

  3. 在pack_a文件夹下建立一个脚本文件funcs.py(模块),在这个文件里,你可以实现各种函数;

  4. 至此,最简单的包pack_a构建完成,该包只包含一个模块funcs,该模块中包含若干函数;

  5. 进一步,可以在pack_a文件夹(包)下建立一个子文件夹(子包)pack_b,子包也同样需要包含__init__.py,以及若干个具体的模块(.py)文件;

    加载错误

  6. 具体的实现,参考本网页根目录下的pythonProject文件夹,如何使用这个包以及其中的模块,参考下面的代码:

#导入模块pack_a.funcs
import pack_a.funcs
print(pack_a.funcs.add(2,4))
#从包pack_a导入模块funcs
from pack_a import funcs
print(funcs.sub(2,4))
#从模块pack_a.funcs导入函数add
from pack_a.funcs import add
print(add(2,4))
#导入pack_a中所有的模块
from pack_a import *
print(funcs.add(2,4))
#导入模块并重命名
from pack_a import funcs as a
from pack_a.pack_b import funcss as b
print(a.add(2,4),a.sub(2,4),b.mul(2,4),b.div(2,4))

查看、使用已经安装好的第三方包

查看已安装包

打开cmd命令行窗口,输入pip list,即可查看已经安装的所有python第三方包,及这些包的版本信息。

使用第三方包

对于已经安装好的别人的包,例如numpy包:

import numpy as np
a=np.ones((2,4),dtype=np.float)
print(a)

十五

输入,输出

输入输出,主要可以分为,针对控制台的输入输出,和针对文件的输入输出。

python很少用来写控制台输入的程序,所以我不打算介绍这部分知识,针对控制台的输出,大多是用print,用起来也很简单,所以这个部分,我们主要学习以下,针对文件的输入输出,后继内容中,大家很可能需要用到。

读文件

#针对小文件,可以一次读进内存
content=open('mips.txt').readlines()
print(content[:4])
#content是一个列表,列表的每一个元素对应着文件中的每一行,通过对这个列表做进一步的处理来处理文件。
#针对大文件,可能无法一次读进内存
f=open('mips.txt')
s=f.readline()
#f.readline()每次读取的是文件的一行内容,到文件末尾时,这个函数返回空字符串。
while s!='':
	print(len(s.split('\t')))
	s=f.readline()
f.close()

写文件

#批量写
content=open('mips.txt').readlines()
content=filter(lambda x:len(x.split('\t'))<=4,content)
open('tmp.txt','w').writelines(list(content))
#一点一点写
f=open('mips.txt')
fo=open('tmp.txt','w')
s=f.readline()
while s!='':
	if len(s.split('\t'))<=4:
		fo.write(s)
	s=f.readline()
f.close()
fo.close()

猜你喜欢

转载自blog.csdn.net/u010608296/article/details/121273008
今日推荐