【python学习-4】可复用函数与模块

1、自定义函数

  自定义函数格式如下:

def <函数名> (参数列表):
    <函数语句>
    return <返回值>
#!/usr/bin/python
# 定义函数,打印数字1~5
def printNum5():
    # range函数,生成列表集合,有3个入参:start(可选,起始数),stop(终止数,生成的数不包含loveme),step
    for i in range(1,5+1):
        print(i);

printNum5();

  带参数的函数:

#!/usr/bin/python
# 定义函数,打印列表数据
def printNum(x):
    for i in x:
        print(i);

printNum([‘ls‘,‘pwd‘,6,9,‘cd‘]);

  有默认参数的函数:

#!/usr/bin/python
# 求x的y次方,默认x为2,y为5
def cube(x=2,y=5):
    return x**y;

print(cube());        # x、y都使用默认值
print(cube(3));        # x 设置为 3,y 使用 默认值
print(cube(3,2));    # x、y都不使用默认值
print(cube(y=3));     # x 使用 默认值,y 设置为 3
print(cube(y=2,x=8));    # 打乱传参次序

  传递任意个参数:

#!/usr/bin/python
# 传递任意个参数:如果参数名前加上一个星号“*”,则表示参数是一个可变长参数
def addNum(*nums):
    result = 0;
    for i in nums:
        result += i;
    return result;

print(addNum());        # 0
print(addNum(1,3));        # 4
print(addNum(8,8,6));    # 22

2、变量作用域

#!/usr/bin/python
def fun(x):
    a = [1];
    a.append(x);
    print(a);

a = [3,4,5];
fun(2);            # a并没有变化
print(a);
#!/usr/bin/python
def fun(x):
    global a;    # 设置a为全局变量
    a = [1];
    a.append(x);
    print(a);

a = [3,4,5];    # 全局变量
fun(2);            # a发生变化
print(a);

3、使用lambda 声明函数

  使用lambda可以声明一个匿名函数,lambda声明的是一个简单的函数。

  lambda 函数中不能使用 print() 函数

#!/usr/bin/python
# lambda函数 的好处就是简洁
fun = lambda x : x*x+1    # 声明一个lambda函数

print(fun(3));
print(fun);

4、可重用结构:python模块

  python中的模块,实际上就是包含函数或者类的python脚本。

  对于一个大型脚本,常常需要把功能细化到各个模块。

  导入模块写法:

import 模块名
import 模块名 as 新名字
from 模块名 import 函数名

  使用 “ from 模块名 import 函数名 ” 写法与 “ import 模块名 ”, 调用函数的区别是,前者可直接使用函数名调用函数,后者需要 “模块名.函数名” 调用函数。

#!/usr/bin/python
import math
print(math.sqrt(16));

from math import sqrt
print(sqrt(81));

  重新载入模块:

#!/usr/bin/python
import os
import imp

a = imp.reload(os)    # 重新载入模块
print(a);

  编写一个模块:

  包括两个文件,一个是模块文件,一个是调用文件。

# 文件 myPart.py
def show():
    print("This is show");

name = "myPart-name";
#!/usr/bin/python

# 文件 test.py
import myPart

myPart.show();

print(myPart.name);

  python 中的模块在哪里查找:

  编写好的模块,如果不和调用文件在同一个目录,那么要怎么查找呢,或者要怎么放置自己的模块呢?

#!/usr/bin/python
import sys

print(sys.path) # 查看模块检索路径有哪些

  如果新加了一个模块放在当前路径下的module目录,如何添加路径呢?

#!/usr/bin/python
import sys
import os

sys.path.append(os.getcwd()+‘\\module‘); # 添加一个目录,其中os.getcwd() 方法用于返回当前工作目录

print(sys.path);
import myPart

myPart.show();

  对于模块脚本,python会在运行后将其编译成 .pyc 字节码文件;对于非模块的脚本,python不会再运行文件之后将其编译成字节码形式。

  如何查看模块提供的函数名:

#!/usr/bin/python
import sys
import os

sys.path.append(os.getcwd()+‘\\module‘); # os.getcwd() 方法用于返回当前工作目录

import myPart

print(dir(os))        # 使用dir 函数查看模块提供的函数名

print(dir(myPart))

  对于上面的每次运行都要加sys.path,其实是很不方便的,但是有解决办法,就是使用包。包其实就是一个相对于当前目录的路径而已

#!/usr/bin/python
import module.myPart

print(dir(module.myPart))

module.myPart.show()

  简洁一点:

#!/usr/bin/python
import module.myPart as myPart

print(dir(myPart))

myPart.show()

原文地址:https://www.cnblogs.com/klbc/p/9476527.html

时间: 2024-10-09 20:23:38

【python学习-4】可复用函数与模块的相关文章

Python学习笔记4(函数与模块)

1.Python程序的结构 Python的程序由包(package).模块(module)和函数组成. 模块是处理一类问题的集合,由函数和类组成. 包是由一系列模块组成的集合.包是一个完成特定任务的工具箱. 2.函数 2.1函数的定义 def sayHello(): print 'Hello World!' # block belonging to the function sayHello() 2.2函数的参数Python中任何东西都是对象,所以参数只支持引用传递的方式.Python通过名称绑

Python学习笔记总结(二)函数和模块

一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege','eggs',meat=‘lit’) #使用函数 def,return,yield      def adder(a,b=1,*c):                        return a+b+c[0] global        changer():                 gl

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基

python学习笔记(03):函数

默认参数值:   只有在行参表末尾的哪些参数可以有默认参数值,即 def func(a, b=5 )#有效的 def func( a=5,b )#无效的 关键参数: #!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) #输出: $ pyth

Python学习_算数运算函数

记录以grades列表为例,分别定义输出.求和.平均值.方差和标准差函数,并输出相应的值 grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] #定义输出函数 def print_grades(grades): for grade in grades: print grade #定义求和函数 def grades_sum(grades): total = 0 for grade in grades: total +=

Python学习笔记010——匿名函数lambda

1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要return来返回值,表达式本身结果就是返回值. lambda 仅简洁了代码,并不会提高程序运行效率 如果可以用 for...in...if 来完成的,最好不使用匿名函数lambda 使用lambda时,函数内不要包含循环.嵌套:如果存在,则最好使用def函数来完成,这样的代码可读性和复用性均较高 l

python学习笔记-Day05-第二部分(模块简介)

模块是一种组织形式,他是 实现了某个功能的代码的集合,它将彼此有关系的代码组织到一个文件或一个目录中(目录中包含多个文件,这里改称为 "包"). 模块分三类 内置模块 第三方模块 自定义模块 模块的定义: package/└── mod01.py package/├── mod01.py├── mod02.py└── mod03.py package/├── __init__.py├── mod01.py├── mod02.py└── mod03.py package/├── __in

python学习交流 - 内置函数使用方法和应用举例

内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函数相比于用户自己定义函数实现相同功能,在执行效率和对内存的分配和使用上是要更加理想的.所以理解和熟练运用python中的内置函数,不仅可以增强代码的可读性,同时也可以提升代码的品质.下面对内置函数的使用方法进行分类介绍,以方便归纳理解. 一.查看作用域中变量相关 global () 功能:查看全局作