函数的特点

函数式的编程范式

面向对象的编程范式

所谓函数,就是把重复的代码单独的分离出来,放在一个公共的地方,以后可以一只调用,这样就可以解决多次重复来编写。

函数的定义

 1 def functionname(形式参数): 

参数介绍

形式参数:在函数定义的时候,括号里边的参数叫做形式参数。

实际参数:在函数调用的时候,形式参数被赋予的值称为实际参数。

默认参数:在函数定义的时候,可以给形式参数指定具体的值(一般默认对最后一个形参指定值)。

返回值

1、使用的关键字是return;

2、在一个函数里边如果有return,那么函数的返回的值是括号后面的内容;

3、在一个函数里边如果没有return,那么返回的值是None;

4、一个函数可以有多个返回值。

5、返回值的价值:

    a.在单个函数的角度而言,函数写不写return其实都没有太大的价值;

    b.通过函数返回值可以把函数与函数之间建立关联关系。

默认参数的案例

1  def login(username=="cch",password="cch123"):
2      if username=="cch" and password=="cch123"
3         print("登录成功")
4     else:
5         print("登录失败")
6  login()      
7  login("cch","cch123")
8  login("cch","cch")

运行结果如下:

函数的调用与返回案例

 1 def login(username=="cch",password=="cch123")
 2   if username=="cch" and password=="cch123":
 3     return True
 4   else:
 5        return Flase
 6 def profile():
 7     if login():
 8        print("查看个人主页")
 9     else:
10        print("请登录")
11 profile()

 运行结果如下:

 1 def getUserInfo():
 2     username=input("请输入用户名:\n")
 3     password=input("请输入密码:\n")
 4     return username,password
 5 
 6 def loginNB():
 7     username,password=getUserInfo()
 8     if username=="cch" and password=="cch123":
 9         print("登录成功")
10     else:
11         print("账户或密码错误")
12 
13 loginNB()

运行结果如下:

一切皆函数案例演示

1 def func():
2     print("hello word!")
3 obj=func()   #obj是fun的对象
4 obj()

函数的形式参数也可以是函数

1 def func1():
2     print("hello word!")
3 def func2(f1):
4     renturn f1()
5 func2(f1=func1)

全局变量与局部变量

1、概念:

全局变量:在一个Python文件中定义的变量叫全局变量

局部变量:在函数内部定义的变量叫局部变量

2、优先级:

a.在Python文件中调用变量,全局变量的优先级是高于局部变量

b.在函数内部,局部变量的优先级是高于全局变量的

函数的调用

1、函数定义后,必须要进行调用,不调用函数不会被执行;

2、函数调用的方式:

  a.直接调用函数;

  b.在主函数中调用函数(主函数可以理解为程序执行的入口)

3、在函数内部如果想使用局部变量的值并且调用变量的值,那么使用关键字global

language=“Python语言”
def func():
    language="Java语言"
    print(language)
func()
print(language)


if __name__ == '__main__':   #main函数调用fun()
    func()
1 language="Python语言"
2 def func():
3     global language    #global引用全局变量,一般不会轻易修改这个变量的值
4     print(language)
5 func()

运行结果如下:

     

验证码生成案例

1 import random
2 lists=[]
3 def sign():
4      for i in range(10):
5          r=random.randint(10,100)
6          lists.append(chr(r))
7      return "".join(lists)
8 print(sign())

运行结果如下: