类似于数学中的函数,Python的可以利用函数来解决问题,那么我们不免要问,什么是函数,为什么要使用函数,如何使用?
在数学中函数是一种映射,其功能是将自变量的值(输入)映射为一个函数值(输出)。编程语言中的函数则是一段代码,可以根据一段输入进行计算,并且产生输出。
使用函数可以减少代码的重复性 当我们需要重复做一件事情的时候(但是根据输入会有不同输出), 这个时候如果我们可以定义一个函数来执行,从而降低代码的重复率。
使用函数可以改善程序的结构 如果我们需要实现一件事情,而且这件事情十分复杂,这样如果我们在代码中直接的写出如何处理,代码将十分长且复杂,让人看不懂,这时我们可以定义一个函数,这个函数来解决这个问题,而在主程序中只需要调用这个函数就可以了
使用函数可以增强程序的通用性 函数可以增强程序的通用性表现在我们可以通过设置不同的参数,从而可以解决同种类型相似的问题,而避免过多的内容
Python中函数的使用有特定的语法:
def <函数名> (<形式参数>)
<函数体>
在上述定义中,函数名是一个函数的标识符,命名必须遵守一定的规范(见变量的使用);形式参数可以为空,也可以是用逗号分开的变量名序列;函数体是语句序列,左端必须缩进。
一旦我们定义了一个函数,那么我们便可以随时的调用这个函数,函数的调用为:
<函数名>(<实际参数>)
事实上,当Python遇到一个函数调用的时候,将进行以下的操作:
下面举例子来说明函数的简单使用
"""
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