当下 ║ 2018.08.31
人生苦短,我们都要用Python,大家要经常回看大纲~
1. 函数的定义和使用。
2. 函数的参数传递:可选参数传递、参数名称传递、函数的返回值。
3. 变量的作用域:局部变量和全局变量
知识点
第一部分:函数的定义和使用。
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做自定义函数。
1、定义
· 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
· 任何传入参数和自变量必须放在圆括号中间,圆括号中间可以用于定义参数。
· 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
· 函数内容以冒号起始,并且缩进。
· return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
定义一个绝对值函数:
def abs(x):
if x >= 0:
return x
else:
return -x
2、使用
定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。
我们可以调用了上一节定义的abs函数:
>>>y = abs(2)
>>>print (y)
2
如下实例调用了 printme() 函数:
def printme( str ): # 定义函数
print (str)
return
>>>printme("调用函数") # 调用函数
>>>printme("再次调用同一函数")
调用函数!
再次调用同一函数
第二部分:函数的参数传递:可选参数传递、参数名称传递、函数的返回值。
定义函数以后,对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。
下面给出一个包含默认参数的函数:
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
>>>power(5)
25
这里的n = 2即为默认参数。设置默认参数时注意事项:必选参数在前,默认参数在后。
1、可选参数传递
可变参数:就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。在参数前面加上*就是可变参数。在函数内部,参数numbers接收得到的是一个tuple,调用该函数时,可以传入任意个参数,包括0个参数:
def calc(*numbers):
sum=0
for n in numbers:
sum= sum+n*n
return sum
>>>cal(1,2)
5
>>>cal(1,2,3)
14
2、参数名称传递
Python可以根据参数名称传递参数。
def name(ip,port):
print "%s:%d" % (ip,port)
>>>name("192.168.1.0",2202)
192.168.1.0:33065 #没有指定参数名,按照顺序传参数
>>>name(port=8080,ip="127.0.0.1")
127.0.0.1:8080 #指定参数名,可以按照参数名称传参数
3、函数的返回值
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
def sum(arg1, arg2): # 返回2个参数的和."
total = arg1 + arg2
print ("函数内 : ", total)
return total
# 调用sum函数
>>>total = sum( 10, 20 )
>>>print ("函数外 : ", total)
函数内 : 30
函数外 : 30
第三部分:变量的作用域:局部变量和全局变量。
Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。
变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域主要有2种,分别是:
(Local) 局部作用域
(Global) 全局作用域
在局部找不到,便会去全局找。
全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:
total = 0 # 这是一个全局变量
def sum( arg1, arg2 ): #返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print ("函数内是局部变量 : ", total)
return total
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)
输出结果:
函数内是局部变量 : 30
函数外是全局变量 : 0
PS:由于本人平时科研和学习压力巨大,需要耗费大量时间,所以在排版方面没有太深的造诣,大家学习为主~
该来的终究会来,没有任何例外和奇迹。
本文分享自 Python编程和深度学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!