Python 函数基础1 定义、分类与嵌套使用

目录

  • 零、了解函数
  • 一、函数的组成
  • 二、函数的定义
  • 三、函数的使用
  • 四、函数的分类
  • 五、函数的嵌套使用

零、了解函数

1.什么是函数
    在程序中函数就是具备某一功能的工具
2.为何用函数
    为了解决以下问题
        1.程序的组织结构不清晰,可读性差
        2.代码冗余
        3.扩展性差

一、函数的组成

函数是由函数名、函数体、返回值、参数四个部分组成:
    函数名:使用该函数的依据
    函数体:完成功能的代码块
    返回值:功能完成的反馈结果
    参数:完成功能需要的条件信息

二、函数的定义

def 函数名(参数1,参数2,...):
    '''注释'''
    函数体  # 具体逻辑代码
    return '返回值'
    
    注意:
        1.函数必须原则:先定义,后调用
        2.函数名存放的是函数地址    

三、函数的使用

def foo(money):
    print('农夫山泉:%s元'%money)
    print("第一个函数!")
    return '函数的返回值'
    
def foo1():
    print("第二个函数!")
    return '函数的返回值'

3.1 函数名:拿到函数的地址
    print(foo)  # <function foo at 0x0000020B57A1E2F0>

3.2 函数名():拿到函数的地址,并执行函数中存放的代码块(函数体)
    foo1() # "第二个函数!"

3.3 函数名(参数):执行函数并传入参数
    foo(2)
    >>>农夫山泉:2元
       第一个函数!
       
3.4 函数名():执行完毕后,会得到函数的返回值,返回值就跟普通变量一样
    print(foo1()) # "第二个函数! \n 函数的返回值 " 
def fn(num):
    print('c传入的num值:%s' %num)
    return '收到了'
res = fn(10)

# 控制台会打印:传入的num值:10
# res的值为:"收到了"

# 注:函数一定要先定义再调用

四、函数的分类

4.1 根据返回值划分
# 空返回
    1.没有return 的函数
    2.空 return
    
def fn1():
    print("fn1 run!!!  ",end='')
res = fn1()
print("没有return的关键字的返回值:%s"%res)

def fn2():
    print("fn2 run!!!   ",end='')
    return
#   return None
#   约等于 不写
res = fn2()
print("空return关键字的返回值:%s"%res)
# 有值返回
    3.return一个值
    4.return多个值

# 一个值的返回
def add_num(n1,n2):
    return n1+n2
print(add_num(10,15))
def computed(n1,n2):
    #  返回四则运算的结果
    r1 = n1 +n2
    r2 = n1 -n2
    r3 = n1 *n2
    r4 = n1 /n2
    return [r1,r2,r3,r4]
    
a,b,c,d =computed(50,25)
print(a,b,c,d)

# 多个值的返回:本质就是返回装有多个值的元组 
def computed_sup(n1, n2):
    #   返回四则运算的结果
    r1 = n1 + n2
    r2 = n1 - n2
    r3 = n1 * n2
    r4 = n1 // n2
    return (r1, r2, r3, r4)

res = computed_sup(50,25)  # 装有所有的结果
print(res)
4.2 从参数列表进行分类
# 无参函数:函数体运行不需要外界体用参数
def print_msg():
    print("hello world!")
print_msg()

# 有参函数:函数体运行需要外界体用参数
def school_msg(name):
    print("%s到此一游!" % name)
name = input("名字:")
school_msg(name)

五、函数的嵌套调用

5.1 函数嵌套调用定义
在一个函数体中调用另一个函数
def fn1 ():
        print("fn1 run")
        fn2()
    
    def fn2 ():
        print("fn2 run")
        fn3()
    
    def fn3 ():
        print("fn3 run")
# fn1()
# 注意执行流程:执行fn1,打印"fn1 run",再调用fn2,打印"fn2 run",
# 再调用fn3,打印"fn3 run",再返回fn2,执行完返回fn1,最后结束程序

# 注:
1. 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行
2. 在fn1中调用fn2,所以在调用fn1的逻辑应该在fn2定义之后
5.1 求两个数的最大值
# 案例:用函数实现两个数的最大值

def max_2(n1,n2):
    if n1 > n2:
        return n1
    return n2
print(max_2(20,30))

# 纯判断版:
def max_3(n1,n2,n3):
    if n1 > n2 and n1 > n3:
         return n1
    if n2 > n2 and n2 > n3:
         return n2
    return n3

# 调用函数优化版
def max_3_2(n1,n2,n3):
    m2 = max_2(n1,n2)
    return max_2(m2,n2)
print(max_3_2(10,15,12))
案例: 指定文件名的复制
# 旧版,无函数
def copy_img(target_img):
    with open('001.jpg','rb') as r,open('target_img','rb') as w:
        for line in r :
            w.write(line)

# 使用函数,改进版
def copy_file(source,target):
    """
    :param source: 被复制的文件
    :param target: 复制得到的文件
    :return:
    """
    with open(source,'rb') as r,open(target,'wb') as w:
        for line in r:
            w.write(line)

copy_file('1.txt','2.txt')

转载于:https://www.cnblogs.com/xt12321/p/10616089.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值