函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义与调用

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (参数)

def function_name( parameters ):
   "函数_文档字符串" # 函数说明
   function_suite # 函数内容以冒号起始,并且缩进
   return [expression] # 函数返回值,不写默认为返回 None

来个更具体的例子

# 定义函数
def say_hello():
   "打招呼方法"
   print('你好')
 
# 调用函数
say_hello() # 输出:你好
say_hello() # 输出:你好

参数

函数可以 在外部调用时传入进来参数,以便达到 函数程序复用 的目的

# 定义函数
def say_msg(msg):
   "打印任何传入的字符串"
   print(msg)
 
# 调用函数
say_msg('你好世界') # 输出:你好世界

默认参数

调用函数时,默认参数的值如果没有传入,则被认为是默认值。

#可写函数说明
def print_info( name, age = 35 ):
   print("姓名: ", name)
   print("年龄:", age)
 
#调用print_info函数
print_info( age=50, name="miki" )
print_info( name="miki" )

关键字参数

使用关键字参数 允许函数调用时参数的顺序与声明时不一致,Python 解释器能够用参数名匹配参数值。

def printinfo( name, age ):
   print("Name: ", name)
   print("Age ", age)
 
#调用printinfo函数
printinfo( age=50, name="miki" )

返回值

函数执行完毕后,向外部调用者返回一个结果

def sum( arg1, arg2 ):
   total = arg1 + arg2
   print "函数内 : ", total
   return total
 
# 调用sum函数
total = sum( 10, 20 )

匿名函数

python 使用 lambda 来创建匿名函数。以下等价于 Js的 sum=(arg1,arg2)⇒arg1 + arg2

# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
 
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )

变量作用域

变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称。两种最基本的变量作用域如下:全局变量、局部变量

  • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。
a=123 # 全局变量a

def say_msg(msg):
   b=456 # 局部变量b
 
print(a) # 输出:123
print(b) # 报错,找不到变量b