Python基础学习—-模块与函数

By | 2019年2月2日

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tianmaxingkong_/article/details/52781925

Python程序结构

Python的程序结构包含包(package),模块(module)和函数。Python系统自带的工具包和模块在Python安装目录下的Lib目录,每个包必须包含一个__init__.py的文件,用于标示当前文件夹是一个Python包,即使__init__.py中不包含任何内容,如果没有__init__.py这个文件,Python将无法识别包。


(1)Python的包


【说明】__init__.py就是xml包的标识,__init__.pyc是__init__.py编译之后的文件。

(2)模块

 一个Python文件就可以人为是一个模块,由代码,函数和类组成。

【说明】下面新建一个模块文件myModule.py:


在test.py文件中,通过import导入myModule模块:


(2-1)模块的导入

要导入模块中的函数,类可以使用下面的方法:

# 导入一个模块
import module_name
# 调用模块中的函数,实例化模块中的类
module_name.func_name()
myClass = module_name.class_name()

# 导入模块中的一个函数,类
from module_name import func_name
from module_name import class_name
# 调用模块中的函数
func_name()
# 实例化模块中的类对象
myClass = class_name()

# 导入模块中所有的类和函数
from module_name imort *
func_name()
myClass = class_name()

(2-2)模块的属性

模块有一些内置属性,比如__name__,__doc__。__name__用于判断当前模块是否是入口程序,当__name__ == “__main__”,标示当前的模块为入口程序,__doc__用于输出模块的文档字符串的内容,文档字符串是用三引号创建的字符串,函数,类以及模块都可以有文档字符串,可以说明函数,类以及模块的作用,但是__doc__只指模块的文档字符串:

myModule.py文件:


在test.py文件中导入myModule模块:



(2-3)模块的内置函数

Python提供了一个内联模块buildin,其中的函数可以在Python文件中直接调用而无需导入。

(2-3-1)apply()函数

apply()可以完成函数调用的任务。


【说明】apply(func, [args])会调用func函数,同时将args作为参数传入func中。

(2-3-2)filter()可以用于对序列的过滤。


【说明】与apply()不同的是,filter(func, sequence)会循环的将sequence序列中的每个元素传入到func中,将所有的结果组成一个列表,在循环完之后,将列表返回。

(2-3-3)reduce()用于对序列中的元素进行连续操作。


上图的程序中,从log信息可以看到,reduce(func, sequence)会连续多次调用func函数,将每次传入的元素处理得到的结果进行下次操作。

当然reduce(func, sequence, initial)函数中可以传入三个参数:


从上面的图可以看到,initial会作为第一个参数进行后续的操作。


内置模块的函数

函数 说明
abs(x) 返回x的绝对值
apply(func, [seq]) 调用函数func,同时将序列seq作为参数传给func
bool([x]) 将x转换成bool,若x为值,则返回True,反之返回False,bool(10)=True; bool(-2)=True; bool(“a”)=True; bool(None)=False
cmp(x, y) 比较x,y的大小
delattr(obj, name) 等价于del obj.name
eval(s) 计算表达式的值
float(x) 把数字和字符串转换成float类型
hash(obj) 返回一个对象obj的hash值
help(func) 返回内建函数的函数说明
id(obj) 返回对象obj的标识
input([prompt]) 接受并返回控制台输入的数字,prompt是控制台的提示信息
int(x) 把数字或字符串转换成整数
len(obj) 对象(序列)包含的元素的个数
range([start], end, [step]) 返回从start到end直接的元素组成的列表,元素之间的步长为step
raw_input([prompt]) 接受并返回由控制台输入的内容,prompt为控制台的提示信息
reduce(func, seq) 对序列seq进行连续操作
round(x, n=0) 四舍五入,n表示对小数标点后第n位之后的位数进行四舍五入
set([iter]) 返回set集合
sorted(iter) 对iter进行排序,并返回排序后的结果
sum(iter, [start=0]) 返回一个序列的和
type(obj) 返回一个对象的类型
xrange(start) 功能于range()相似,但是一次返回一个值
zip(seq1, [seq2, ….]) 将每个序列seq作为一个元素,组成一个列表返回


(3)函数

在Python中,定义一个函数可以如下:

def 函数名(参数1=[默认值1], 参数2=[默认值2], ....):
    ....
    return 返回值


下面事一些函数的声明和调用:

#coding=utf-8

def sayHello():
    print("Hello Python");

def sayHi(name):
    print("Hello {0}".format(name))

sayHello();
sayHi("Hust");

def max(a, b):
    if a>b:
        print("MAX IS {0}".format(a));
    elif a<b:
        print("MAX IS {0}".format(b));
    else:
        print("{0} 相等于 {1}".format(a, b))

max(1, 2)
max(2, 1)
max(2, 2)

def sum(a, b):
    return a+b;


lambda函数:

lambda函数用于创建一个匿名函数,可以计算一些简单的运算结果。

#coding=utf-8

func = lambda m, n: m-n

print func(3,4)

当然,lambda也可以直接调用:

发表评论