函数的使用

类似于数学中的函数,Python的可以利用函数来解决问题,那么我们不免要问,什么是函数,为什么要使用函数,如何使用?

1. 函数的定义

2. 函数的意义

3. 函数的使用


1. 函数的定义

在数学中函数是一种映射,其功能是将自变量的值(输入)映射为一个函数值(输出)。编程语言中的函数则是一段代码,可以根据一段输入进行计算,并且产生输出。


2. 函数的意义

  • 使用函数可以减少代码的重复性 当我们需要重复做一件事情的时候(但是根据输入会有不同输出), 这个时候如果我们可以定义一个函数来执行,从而降低代码的重复率。

  • 使用函数可以改善程序的结构 如果我们需要实现一件事情,而且这件事情十分复杂,这样如果我们在代码中直接的写出如何处理,代码将十分长且复杂,让人看不懂,这时我们可以定义一个函数,这个函数来解决这个问题,而在主程序中只需要调用这个函数就可以了

  • 使用函数可以增强程序的通用性 函数可以增强程序的通用性表现在我们可以通过设置不同的参数,从而可以解决同种类型相似的问题,而避免过多的内容

3. 函数的使用

Python中函数的使用有特定的语法:

def <函数名> (<形式参数>)
    <函数体>

在上述定义中,函数名是一个函数的标识符,命名必须遵守一定的规范(见变量的使用);形式参数可以为空,也可以是用逗号分开的变量名序列;函数体是语句序列,左端必须缩进。


一旦我们定义了一个函数,那么我们便可以随时的调用这个函数,函数的调用为:

<函数名>(<实际参数>)

事实上,当Python遇到一个函数调用的时候,将进行以下的操作:

  • 调用者 p 在调用点暂停(又称挂起)
  • 函数 f 的形式参数被赋予给实际参数的值
  • 执行函数 f 的函数体
  • f 执行完毕时,控制返回到 p 中调用点的下一条语句

下面举例子来说明函数的简单使用

"""
Author: Cyberist
"""
def verify():
    username = input("Username: ")
    passwd = input("Passwd: ")
    if username == "admin" and passwd =="12345":
        print("Login in successfully")

verify( )

在上面的代码中,我们定义了一个无参数的函数,函数的功能是检查登录是否成功,然后我们调用这个函数,如果用户输入的数据满足调节,则提示登录成功。

关键字参数

在函数调用的时候,通常的时候采用的是按位置匹配,但是Python中还可以使用关键字参数,形如 <形参名>=<实参名>,这样使用,我们便可以不必要拘束于参数的位置 比如下面的这个函数:

def print_weclome(name,day):
    print("Hello %s, today is %s"%(name, day))

# 调用的时候可以这样调用
print_welcome("John", "10-28")

# 同时也可以这样调用
print_welcome(day='10-28', "john")

变量的类型

程序中的每个变量都有自己的作用域,只有在对应的区域内访问这个变量,才可以取得理想的结果,变量分为以下两种

  • 局部变量 在一个函数中定义的变量为局部变量,因为他们的作用域局限于这个函数的函数体,在函数外部是没有被定义的,如果在函数外访问会出现下面的结果
>>> def main( ):
...     a = 10
...     b = 10
...
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
  • 全局变量 全局变量是在程序中的任意地方都可以访问的变量,一般而言,全局变量是在程序的非函数中定义的变量,前面没有缩进,但是我们也可以使用global显式的声明全局变量,这样在函数体内我们也可以变这个变量,但是此时仍然需要在函数体定义好了这个变量
str = "Hello World"

def test( ):

    global str

    str += "Welcome to Python !"
print(str)


如果没有`global`声明,函数调用是不会改变变量的值的
```python
"""
显式声明了
Author: Cyberist
"""
>>> a = 100
>>> def test( ):
...     global a
...     a = 10
...
>>> test( )  # 调用函数之后改变了 a 的值
>>> a
10
"""
没有声明
Author: Cyberist
"""
>>> a = 100
>>> def test( ):
...     a =10
...
>>> test( )   # 调用函数之后没有改变 a 的值
>>> a
100

返回值

函数可以处理输入的数据,然后进行一定的输出,我们可以让它们输出到屏幕之上,我们可以获取它的值,我们只需要使用return关键字就可以实现这个功能

def test():
"""
Author: Cyberist
"""
    num = float(input("Input a number, return its sqare: "))
    return num**2

# 这样我们便可以安装下面的这种方式调用函数
an = test()
print(an)

# 输入 2 便会得到输入 4 ,变量 an 中保存的数据是 4