Python中的函数和数学上的函数定义是不一样的,从数学的角度上来说函数的定义:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示。我们把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。

  Python中的函数是以def关键字开头,后面接函数标识符和圆括号(),任何传入参数和自变量必须放在圆括号中间,圆括号之间也可以用于定义参数。函数的第一行可以选择性地添加注释,函数内容以冒号起始,并且缩进。return[表达式]结束函数,选择性的返回一个值给调用方,若没有return相当于返回None。

  Python定义函数使用def关键字,一般格式如下:

#函数的格式:
#def 函数名(参数列表):
# 函数体

  默认情况下,参数值和参数名称是按函数声明中定义的顺序来匹配的。当然我们也可指定。例:

#不指定时
def test(x,y,z):
print(x)
print(y)
print(z) test(1,2,3)
#执行结果:x=1,y=2,z=3 #指定时
def test(x,y,z):
print(x)
print(y)
print(z) test(y=1,x=3,z=4) #执行结果:y=1,x=3,z=4

  变量分为全局变量和局部变量。定义在函数内部的变量拥有一个局部作用域,这个变量我们成为局部变量;定义在函数外的拥有全局作用域,这个变量我们称为全局变量。例:

total = 0
def sum(num1, num2):
total = num1 + num2
print("局部变量 : ", total)
return total sum(10, 20)
print("全局变量 : ", total) #执行结果:局部变量 : 30
# 全局变量 : 0

  当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。

  global:修改全局变量,例:

NAME = "alex"
def test():
global NAME
print(NAME)
NAME = "root"
print(NAME) test()
print(NAME) #执行结果:

#alex
#root
#root

  nonlocal:修改上一级变量,例:

name = "ton"
def test():
name = "jock"
def one1():
nonlocal name
name = "root"
one1()
print(name)
print(name)
test() #执行结果:
#ton
#root

最新文章

  1. application.xml dubbo报错解决方案
  2. 回文串---Hotaru's problem
  3. java分派
  4. C# UserControl 判断DesignMode
  5. Codeforces Round #272 (Div. 2) C. Dreamoon and Sums (数学 思维)
  6. [C#搜片神器] 之P2P中DHT网络爬虫原理
  7. 2 weekend110的HDFS的JAVA客户端编写 + filesystem设计思想总结
  8. MVC 上传图片的解决方案
  9. 在scrollView中使用pageControl
  10. [百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数
  11. Linux第三方源
  12. C++基本内置类型
  13. hibernate(一) 第一个hibernate工程
  14. JDBC连接数据库,结合DbUtil数据库连接工具类的使用
  15. Android 中关于 【Cursor】 类的介绍
  16. DIV字体
  17. 【转载】MDX Step by Step 读书笔记(三) - Understanding Tuples (理解元组)
  18. 算法笔记_146:TarJan算法的应用(Java)
  19. C编程测试存储格式为大段还是小段
  20. MyEclipse显示 Install new software 在线安装插件选项

热门文章

  1. Wannafly挑战赛18 E 极差(线段树、单调栈)
  2. IOS XMPP总结
  3. Angular4 @HostBinding @HostListener
  4. Redis.md
  5. python __new__以及__init__
  6. 1、Python代码初识
  7. HTML data-* 自定义属性
  8. On Java 8中文版 英雄召集令
  9. linux内核中网络文件系统的注册初始化
  10. ajax传递数组,后台接收为null解决方法