python 函数的认识

本文详细介绍了Python函数的定义、调用和参数类型,包括函数的作用、定义格式、调用方式、位置参数、默认参数、关键字参数和不定长参数的概念与用法,强调了提高代码复用性和可读性的重要性。
摘要由CSDN通过智能技术生成
函数的定义

函数:是组织好的、可重复使用的,是实现某个功能的代码块。
当你在写代码的过程中,发现某一块代码在血多地方都用得到,一直重复的使用,就可以考虑封装成一个函数或是类。
函数可以提高代码的复用性,可读性

函数定义格式

def 函数名称(参数1,参数2…)
‘’’ 文档字符串 docstring’’’
函数的注解,这个函数是干嘛用的
函数体(函数的执行逻辑)代码块
return 返回值

def add(a,b):
    '''两个数相加'''
    c = a + b
    return c
函数的调用
def add(a,b):
    '''两个数相加'''
    c = a + b
    return c
print(add(5,6))		

结果:11

1,函数遇到 return 就终止

def add(a,b):
    '''两个数相加'''
    c = a + b
    return c  ==》到这一行就结束了
    print('hello world')    # 不会执行

2,函数的返回值 return,函数调用后可以通过变量接收 return 的值

def add(a,b):
    '''两个数相加'''
    c = a + b
    return c
add(5,6)		

打印是空

# 通过变量接收
result = add(5, 6)
print(result)

结果:11
练习:

之前在 if 条件控制写过一个计算bmi指数,可以试着把他封装成一个函数

def bmi (height,weight):
    '''计算BMI指数'''
    print('您输入的身高是:{}m'.format(height))
    print('您输入的体重是:{}kg'.format(weight))
    bmi = weight / height ** 2
    if bmi < 18.5:
        return ('您的bmi指数为:{:.2f} ==> 过轻'.format(bmi))
    elif bmi >= 18.5 and bmi < 25:
        return('您的bmi指数为:{:.2f}==> 正常'.format(bmi))
    elif bmi >= 25 and bmi < 28:
        return('您的bmi指数为:{:.2f} ==> 过重'.format(bmi))
    elif bmi >= 28 and bmi < 32:
        return('您的bmi指数为:{:.2f} ==> 肥胖'.format(bmi))
    else:
        return('您的bmi指数为:{:.2f} ==> 严重肥胖'.format(bmi))
print(bmi(1.76,60))

结果:
您输入的身高是:1.76m
您输入的体重是:60kg
您的bmi指数为:19.37 ==> 正常
函数的参数

形式参数: 函数在定义的时候写的参数==>变量名

def add(a,b):     ==> a,b 就是形式参数
    '''两个数相加'''
    c = a + b
    return c

实际参数: 函数在调用的时候写的参数==>传入函数的值

def add(a,b):
    '''两个数相加'''
    c = a + b
    return c
print(add(5,6))		==>这里的5,6就是实际参数

位置参数: 形式参数和实际参数一一按照顺序对应 “顺序一一对应”

def get_name(firstname,middle,lastname''):
    '''获取名字'''
    return firstname + middle + lastname
print(get_name('田')) ==>报错,有三个位置参数,你只填了一个

默认参数: 在函数定义的时候,给形式参数一个缺省值,可以简化调用过程
当你在调用的时候:

  • 没有传入参数的值,则直接使用这个缺省值
  • 如果有传入新的值,缺省值就不会生效
def add(a,b=0):   ==> b=0就是默认参数,默认参数要放到位置参数后面,放前面会报错
    '''两个数相加'''
    c = a + b
    return c
print(add(5)) ==>结果为:5+0=5,不传就直接取缺省值
print(add(5,6)) ==>结果为:5+6=11,有传缺省值不生效

关键字参数:
作用:相对于位置参数讲的,可以知道变量的意思
可以提高函数调用时候的可读性,更加容易理解实际参数的意思
可以交换调用参数的顺序,并且提高可读性
关键字参数区别位置参数:可以不按照顺序进行调用,可以交换顺序
TODO :关键字参数要放到位置参数的后面,不然会报错

def get_name(firstname,middle,lastname=''):
    '''获取名字'''
    return firstname + middle + lastname
print(get_name('田',lastname='最帅',middle='某某'))  ==> 可以不按顺序填写
print(get_name(lastname='最帅','田',middle='某某')) ==> 报错,关键字参数要放到位置参数的后面

运行结果:
田某某最帅

不定长参数
*args,在函数内部的表现形式:args是一个元祖

TODO:

  • *args 可以只有一个,*args,*args 报错
  • *args 加在其他位置参数的后面

关键字不定长参数
**kwargs:打印的是dict

def get_name(firstname,*args):
    '''获取名字'''
    print(firstname)
    print(args) ==> 是一个元祖
    return firstname
get_name('tian','gan','handsom') ==>可以传多个参数

运行结果:
tian
('gan', 'handsom')

=====================================================================================

def get_name(*args):
    '''获取名字'''
    print(args)
    return args
get_name('tian','gan','handsome')

运行结果:
('tian', 'gan', 'handsome')

=====================================================================================

def get_name(*args,**kwargs):
    '''获取名字'''
    print(args)
    print(kwargs)
get_name('tian','gan',middle = 'handsome', end = '666') ==> 带关键字就是关键字不定长参数

运行结果:
('tian', 'gan')
{'middle': 'handsome', 'end': '666'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值