函数

一     函数的基本使用

    

1 什么是函数
函数就是具备某一功能的工具


2 为什么要用函数
1 程序的组织结构不清晰,可读性差
2 代码冗余
3 可扩展性差

3 如何用函数
函数的使用必须遵循的原则:先定义,后调用
修理工事先准备工具的过程即函数的定义
修理工遇到应用场景拿来工具就用即函数的调用

语法:
def 函数名(参数1,参数2,...):
"""
文档注释
"""
code1
code2
code3
......
return 返回值

def:定义函数的关键字
函数名: 就相当于一个变量名,指向函数的内存地址(print(函数名)),
注意:函数的内存地址()就可以触发函数体代码的执行


参数: 参数是函数的调用者为函数体代码传值的媒介,在python中函数的参数无需声明类型
"""文档注释""" : 推荐写上
代码块:就是函数体功能的具体实现
return 返回值 :函数体代码块运行的成果


函数的使用分为两个阶段:
定义阶段: 只检测语法,不执行代码
调用阶段:运行函数体代码
def foo():
xxx
print()
# 先定义
# def foo():9
#     print("from foo")

# 后调用
# print(foo)
# foo() # 定义时无参,意味着调用时也无需传入参数      foo跟上()触发函数体代码的执行
# 先定义
# def bar(x,y):
#     print(x)
#     print(y)
# 后调用
# bar('a',2) ## 定义时有 参,意味着调用时也必须传入参数

什么时候定义无参函数:

            当函数体的代码逻辑不依赖任何传入的值就能执行,就不需要定义参数

# def print_msg():
#     print('='*50)
#     print('welecome.....'.center(50,' '))
#     print('='*50)
#
# print_msg()
# print_msg()
View Code

 什么时候定义有参数函数:

定义有参函数:当函数体的代码逻辑依赖于外部调用者传入的值才能执行,必须定义参数用来接收外部传入的值

  

# def max2(x,y):

#     if x > y:
#         print(x)
#     else:
#         print(y)
# max2(1,4)
# def max2(x,y):
#     if x > y:
#         return x         #运行函数体时,只要遇到return就会停止运行结构体
#     else:
#         return y
# res=max2(1,4)
# print(res)
# 定义阶段
def foo():
    print('from foo')
    bar()

# 调用阶段
foo()

def bar():               #放在调用前(即foo()前面)不会报错,放在这里会报错,因为调用前没有定义
    print('from bar')
#二 定义函数的三种形式
#1.1 无参函数
# def foo():
#     print('from foo')
# foo()

#1.2 有参函数
# def bar(x,y):
#     print(x,y)
# bar(1,2)

#1.3 空函数
# def func():
#     pass    #略过函数体

# ftp
# def upload():
#     pass
#
# def download():
#     pass
#
# def login():
#     pass
#
# def register():
#     pass
#
# def ls():
#     pass

#三 调用函数的三种形式
#2.1 #语句形式
# def foo():
#     print('from foo')
# foo()

#2.2 表达式形式
# def foo(x,y):
#     res = x + y
#     return res
#
# res=foo(1,2) #表达式形式
# res1=foo(1,2)*100
# print(res1)     

#2.3 可以当作参数传给另外一个函数
# def max2(x,y):
#     if x > y:
#         return x
#     else:
#         return y

# 1 2 3
# res=max2(max2(1,2),3)
# print(res)
原文地址:https://www.cnblogs.com/Hale-wang/p/10250072.html