Python数据科学基础(五):函数和模块

一、函数

    1.定义函数规则

  • 函数代码块以def 函数名(参数):开头;

  • 接下来第一行可写注释存放函数说明。

  • 函数内容以冒号开始,缩进(缩进用tab键或四个空格,推荐前者)

  • return [表达式] 结束函数,选择性的返回一个函数,return后不带表达式则返回None

    给出示例,输入:

def primenumber(a):             #定义素数函数,a为参数    #此函数功能为输出a以内的素数,其中a自定义    j=1                            list=[]                     #定义列表    for i in range(3,a):        #for循环遍历3到a        for j in range(2,i):    #内嵌for循环遍历2到i            if(i%j == 0):         #判断i能否被j除尽                break           #若为True 则终止循环        if j == i-1:              #判断j是否等于i-1            list.append(i)      #若为Ture则将i写入列表中    return list                 #返回列表if __name__ == "__main__":  #当模块被直接运行时,以下代码块将被运行    p = int(input("please input number:"))     #输入参数    print(primenumber(p))    #调用函数并输出p以内的素数

    输出:

please input number:100[3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

    注:其中就if __name__ == '__main__'做出简要解释:__name__ 是当前模块名,当模块被直接运行时模块名为 __main__ 。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。此语句在今后涉及到多个.py或者导入模块时会经常用到,附上详细解释链接:http://blog.konghy.cn/2017/04/24/python-entry-program/

    2.函数参数

    函数调用参数时有四大正式参数类型,分别是必需参数关键字参数默认参数不定长参数,下面给出四合一示例,输入:

print('-'*25,"fun1()输出",'-'*25)def fun1(a,b,c):            #必需参数    #功能是返回所给参数的内容    return a,'是行政楼',b,'是图书馆',c,'是教学楼'#按照b->a->c顺序输出,若不输入参数则报错print(fun1(b = '逸夫楼',c = '文泰楼',a = '中原楼'))print('-'*25,"fun2()输出",'-'*25)def fun2(a = '中原楼',b = '逸夫楼',c = '文泰楼'):    #默认参数    #功能同上,但全是默认参数    return a, '是行政楼', b, '是图书馆', c, '是教学楼'print(fun2())   #若不输入参数,按照默认参数输出print('-'*25,"fun3()输出",'-'*25)def fun3(*a):               #不定长参数    #功能是遍历输出所有输入参数    for i in a:        print(i)    return;a = "中原楼";b = "逸夫楼";c = "文泰楼"print(fun3(a,b,c))    #输出参数a,b,c

    输出:

------------------------- fun1()输出 -------------------------('中原楼', '是行政楼', '逸夫楼', '是图书馆', '文泰楼', '是教学楼')------------------------- fun2()输出 -------------------------('中原楼', '是行政楼', '逸夫楼', '是图书馆', '文泰楼', '是教学楼')------------------------- fun3()输出 -------------------------中原楼逸夫楼文泰楼None

    3.匿名函数

    python使用lambda来创建匿名函数。区别于def函数的标准形式,lambda只是一个表达式,比def函数简单得多,且拥有自己的命名空间,不能够访问空间外的参数。其语法只包含一个语句,为:

lambda [arg1 [,arg2,.....argn]]:expression

    示例如下,输入:

f = lambda x, y, z :x+y+z       #功能是输出三个参数之和,参数规则同defprint('和 =',f(1,2,3))L = [lambda x: x+2, lambda x: x*2, lambda x: x**2]      #定义包含三个lambda函数的列表,功能是分别输出参数的+2、*2和2次方print ("L=", L[0](1), L[1](2), L[2](3))

    输出:

和 = 6L = 3 4 9

二、模块

    我们知道python解释器中退出,在此进入时定义的函数已经失效了。为此,我们在python中引入模块,将这些定义存放在模块当中,供后续使用。在这里就以引入标准库sys为例。输入:

import sys          #导入import模块print("此脚本路径:",sys.argv)     #输出此脚本路径print('—'*100)print("此模块存放路径:",sys.path)  #输出此模块存放路径print('—'*100)print(dir(sys))   #内置dir()函数以字符串列表形式返回参数

    输出:

此脚本路径:['F:/programme/python/learn/test21.py']————————————————————————————此模块存放路径:['F:\\programme\\python\\learn',  'D:\\SoftwareInstall\\anaconda\\python36.zip',....]————————————————————————————['__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__',...]
发布了21 篇原创文章 · 获赞 8 · 访问量 6625

猜你喜欢

转载自blog.csdn.net/qq_36936730/article/details/104533591
今日推荐