一、函数的定义及其应用

所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的使用包含两个步骤

1.定义函数�C封装独立的功能

2.调用函数�C享受封装的成果

函数的作用:在开发时,使用函数可以提高编写的效率以及代码的重用"'

函数:

函数是带名字的代码块,用于完成具体的工作

需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该任务的函数,让python运行其中的代码,你将发现,通过使用函数,程序编写,阅读,测试和修复都将更容易

1.定义函数

def 函数名():

函数封装的代码

1.def是英文define的缩写

2.函数名称应该能够表达函数封装代码的功能,方便后续的调用

3.函数名称的命名应该符合标识符的命名规则

可由字母,下划线和数字组成

不能以数字开头

不能与关键字重名

参数的作用

函数,把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的参数,增加函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据

1.在函数内部,把参数当作变量使用,进行需要的数据处理

2.函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递

形参和实参

形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用

实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的

函数的返回值

在程序开发中,有时候,会希望一个函数执行结束后(举例子:温度计函数,要返回给我>们当前的温度),告诉调用者一个结果,以便调用者针对具体的结果作出后续的处理

返回值是函数完成工作后,最后给调用者的一个结果

在函数中使用return关键字可以返回结果

调用函数一方,可以使用变量来接收函数的返回结果

局部变量和全局变量

局部变量是在函数内部定义的变量,只能在函数内部使用

全局变量是在函数外部定义的变量,(没有定义在某一个函数内),所有函数内部都可以使用这个变量

局部变量

局部变量是在函数内部定义的变量,只能在函数内部使用

函数执行结束后,函数内部的局部变量,会被系统回收

不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响

局部变量的作用

在函数内部使用,临时保存函数内部需要使用的数据

变量进阶

目标

变量的引用

可变和不可变类型

局部变量和全局变量

变量的引用

变量和数据都是保存在内存中的

在python中函数的参数传递以及返回值都是靠引用传递的

引用的概念

在python中

变量和数据是分开存储的

数据保存在内存中的一个位置

变量中保存的是数据在内存中的地址

变量中记录数据的地址,就叫做引用

使用id()函数可以查看变量中保存数据所在内存的地址

二、函数的跨文件调用

模块文件:每一个python源文件都可以是一个模块文件,可以在一个python文件中定义函数或者变量,然后在另一个函数使用import filename导入这个模块,导入之后,可以使用模块名.变量或者模块名.函数的方式使用这个模块文件的函数和变量

首先定义一个函数

# 1.定义一个函数,能够打印*组成的一条分隔线

def print_line():

print '*' * 50

print_line()

# 2.定义一个函数能够打印由任意字符串组成的分割线

def print_line(char):

print char * 50

print_line('&')

# 3.定义一个函数能够打印任意重复次数的分隔线

def print_line(char,times):

print char * times

print_line('%',20)

# 4.定义一个函数能够打印五行分隔线,

# 分隔线要求符合需求3

# def print_line(char,times):

# print char * times

def print_lines(char,times):

"""打印多行分隔线

:param char: 分隔线使用的分隔字符

:param times: 分隔线重复的次数

"""

row = 0

while row < 5:

print_line(char,times)

row += 1

print_lines('!',70)

模块文件:每一个python源文件都可以是一个模块文件

可以在一个python文件中定义函数或者变量

然后在另一个文件中使用 import filename 导入这个模块

导入之后,就可以使用 模块名.变量/模块名.函数的方式,

使用这个模块中定义的函数和变量

import func_04

import fun_01

print func_04.name

func_04.print_lines('*',80)

result = fun_01.sum_2_sum(3,6)

print result

2.模块的调用

1.

test1文件中

title = '模块1'

# 函数

def demo1():

print '今天学习%s' %title

# 类

class Cat(object):

pass

title = '模块2'

test2文件中

# 函数

def demo1():

print '今天学习%s' %title

# 类

class Dog(object):

pass

import test1

import test2

test1.demo1()

test2.demo1()

cat = test1.Cat()

print cat

dog = test2.Dog()

print dog

使用as指定模块的别名(大驼峰命名法)

from test1 import Cat

# 如果重名的话,则第二个导入的覆盖同名的第一个

from test1 import demo1 as test_demo1

from test2 import demo1

cat = Cat()

print cat

test_demo1()

demo1()

2.python的解释器在导入模块的时候,会:

1.搜索当前目录指定的模块文件,如果有就直接导入

2.如果没有,再搜索系统目录

注意:在开发时,给文件起名,不要和系统模块文件重名

所以在导入文件时,不能起和系统文件重名的名字,例如下例的random

import random

ran = random.randint(1,10)

print ran

3.name属性

功能:测试模块的的代码只在测试情况下被运行,而在导入时不会被运行

name时python的一个内置属性,记录这一个字符串

被其他文件导入时,name就是模块名

如果是当前执行的程序name就是main

def wn():

print '今天是个好日子'

if __name__ == '__main__':

print __name__

print '模块的引用'

调用函数

import test

wn = test.wn()

print wn

以上这篇浅谈Python中函数的定义及其调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python函数定义及调用-浅谈Python中函数的定义及其调用方法相关推荐

  1. 单一修改高程值lisp_浅谈AutoCAD中修改高程的四种方法

    浅谈 AutoCAD 中修改高程的四种方法 摘 要: 在使用 AutoCAD 进行数字化成图工作中,经常遇到线划的标高不为零,及高程点的值与实地不符,需要对其进行修改等情况,结合实 际工作经验,简单介 ...

  2. 浅谈BufferedReader中的read()方法和readLine()方法

    浅谈BufferedReader中的read方法和readLine方法 前言:本人比较菜啦,如果有错误,还请大佬指正. 1. read方法 查看API文档我们可以发现BufferedReader类中的 ...

  3. python打开方式错误_浅谈python 调用open()打开文件时路径出错的原因

    昨晚搞鼓了一下python的open()打开文件 代码如下 def main(): infile =open("C:\Users\Spirit\Desktop\bc.txt",'r ...

  4. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  5. python 共享内存变量_浅谈python多进程共享变量Value的使用tips

    前言: 在使用tornado的多进程时,需要多个进程共享一个状态变量,于是考虑使用multiprocessing.Value(对于该变量的具体细节请查阅相关资料).在根据网上资料使用Value时,由于 ...

  6. python采用函数编程模式_浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  7. python列表使用判断_浅谈Python数据类型判断及列表脚本操作

    数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...

  8. python采用函数式编程模式-浅谈Python 函数式编程

    匿名函数lambda表达式 什么是匿名函数? 匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lambda 关键字编写简单的代码逻辑.lambda 本质上是一个 ...

  9. python线程死锁的原因,浅谈Python线程的同步互斥与死锁

    线程间通信方法 1. 通信方法 线程间使用全局变量进行通信 2. 共享资源争夺 共享资源:多个进程或者线程都可以操作的资源称为共享资源.对共享资源的操作代码段称为临界区. 影响 : 对共享资源的无序操 ...

最新文章

  1. Android 软键盘弹出时布局内指定内容上移实现及问题解决
  2. java线程唤醒线程_Java中如何唤醒“指定的“某个线程
  3. SAP UI5 应用开发教程之六十八 - 如何实现 SAP UI5 路由失败时显示自定义的 NOT Found 页面
  4. 后台寻路系统的大体思路与流程
  5. Centos 安装配置gerrit
  6. MySQL常用存储引擎
  7. Bit.com BCH期权上线以来日交易量持续翻倍
  8. 《Sharding-JDBC》——数据库分表+数据库脱敏实现方案
  9. Mybatis官方网站
  10. 计算机网络 - NB-IOT/LoRa/Zigbee 无线组网方案对比
  11. 【面试】Java 并发编程
  12. 梦幻西游手游服务器维护时间表,梦幻西游手游4月17日维护更新公告
  13. 访问苹果开发者网站太慢
  14. 程序设计与算法郭炜老师的课堂笔记1
  15. 手机电容触摸屏技术简介
  16. 母婴商城可行性分析报告
  17. Unity Shader PostProcessing - 11 - Depth Fog/Height Fog - 雾效/深度雾效/高度雾/深度+高度雾
  18. k8s--Volum存储方式
  19. 美国交通部华裔女掌门人一句话 点燃40万亿元市场
  20. 【java创建能够画直线的窗口界面】

热门文章

  1. hbase建表语句_HBase 中文参考指南真不少~
  2. 3D中obj文件操作
  3. rsync java_Linux 同步工具rsync学习
  4. kickstart注意事项
  5. POJ 2503-Babelfish(map)
  6. Linux系统编程——进程替换:exec 函数族
  7. HTTP Header 详解【转】
  8. destoon的如何显示tag生成的sql语句
  9. 有关冒泡排序法的问题
  10. POJ1088 Bailian1088 滑雪【DFS+记忆化搜索】