python函数定义、调用、参数等

函数的定义与调用

'''
# 函数的定义
def 函数名:
    函数体
'''
def func_01():
    print("这是函数体")
# 函数的调用
func_01()  # 这是函数体

函数的返回值

1、只要是函数就一定会有返回值
2、return:
标识符函数体的结束标志
返回函数的指定值:变量、表达式、多个值
3、return关键字后面为空的时候,默认返回为None

# 函数的返回值
# return 变量
def func_02():
    a = 10
    return a
res001 = func_02()
print(res001) # 10
# return 表达式
def func_03():
    a = 10
    b = 9
    return a + b
res = func_03()
print(res) # 19
# return 多个值
def func_04():
    age = 10
    height = 180
    weight = 120
    return age,height,weight
res_01 = func_04()
res1,res2,res3 = func_04()
print(res_01)  # (10, 180, 120)
print(res1,res2,res3)  # 10 180 120

函数的参数

1、定义带有参数的函数

def 函数名(参数名1,参数名2,参数名3):
    函数体:实现代码

2、调用

func(1,值2,值3)

3、
形参:在定义函数时,在括号里面给的变量。eg:参数名1,参数名2,参数名3
实参:在调用函数时,传递的参数。eg:值1,值2,值3
传参:传参是一个过程,在调用函数的时候把实参的值传递给形参的一个过程
4、参数的类型:位置参数、指定参数、缺省参数、不定长参数

位置参数:

在定义函数的时候,定义了几个形参,在调用函数的时候就要给几个实参,而且位置要一一对应,否则会报错。

def func_04(a,b):
    print("a = ",a)
    print("b = ",b)
    return a + b
res = func_04(10,1)
print(res)  # 11

def func_05(name, age, sex):
    print('''
    name:{},
    age:{},
    sex:{}
    '''.format(name, age, sex))

func_05("Jane",12,"boy")
'''执行结果
    name:Jane,
    age:12,
    sex:boy
'''
# 如果位置没有一一对应,就会出现下面这种情况,想要给name的值变成了age,age的值变成了name
func_05(12,"Jane","boy")
'''执行结果
    name:12,
    age:Jane,
    sex:boy
'''

指定参数:

在调用函数传参的时候,可以使用形参的参数名来指定所传的值是哪一个,写的时候可以不按照形参顺序,因为在实际执行的之后,程序会根据你的传的参数名来确定你要把值给哪一个形参。

def func_06(name, age, sex):
    print('''
    name:{},
    age:{},
    sex:{}
    '''.format(name, age, sex))

func_06(name = "Jane",age = 12,sex = "boy")
func_06(name = "Jane",sex = "boy", age = 12)
'''执行结果都是:
    name:Jane,
    age:12,
    sex:boy
'''

位置参数 + 指定参数:

一定要把位置参数放在最前面,指定参数放在后面,形参和实参的顺序都要这样放。

def func_07(name, age, sex):
    print('''
    name:{},
    age:{},
    sex:{}
    '''.format(name, age, sex))

func_07("Jane", 14, sex = "boy")
'''执行结果
    name:Jane,
    age:14,
    sex:boy
'''
# func_07("Jane", sex = "boy", 14) 报错信息: Positional argument cannot appear after keyword arguments

缺省参数:

在定义函数的时候,直接给形参一个初始值,这样在调用函数的时候就不用再给它传值了,如果传值的话就会覆盖原本的初始值。

def func_08(name, age, sex = 'boy'):
    print('''
    name:{},
    age:{},
    sex:{}
    '''.format(name, age, sex))

func_08('张三',21)
''' 执行结果
    name:张三,
    age:21,
    sex:boy
'''
func_08('李四',18,'girl')
'''执行结果:覆盖了初始值
    name:李四,
    age:18,
    sex:girl
'''

不定长参数:

参数的个数不固定,可以使用不定长参数的形式传参。

  1. *args:参数值会存在一个元组中,调用时只能是位置参数。
  2. **kwargs:参数值存在一个字典中,调用时只能是指定参数。
def func_09(*args):
    print(args)
    sum = 0
    for i in args:
        sum += i
    print(sum)

func_09(1,2,3,4,5,6,7,8,9,10)

def func_10(**kwargs):
    print(kwargs)
    sum = 0
    for i in kwargs.values():
        sum += i
    print(sum)
func_10(a = 10, b = 20, c = 20)

函数的嵌套

def func_12():
    print("hello")
    func_11()
    print("hello world")

def func_11():
    print("python")

函数的内置函数

python提供的、可以直接用的函数,比如print。

# 作用域函数
print(globals()) # 查看文件内的全局变量
print(locals()) # 查看文件内的局部变量
# 转换函数
'''
int() 
float()
str()
list()
tuple()
set()
dict()
bool()
'''
# 数学函数
'''
max() 最大值
min() 最小值
sum() 总和
pow() 幂次方
divmod() 商和余数
abs() 绝对值
round() 四舍五入
'''
print("最大值",max(1,2,3,4))
print("最小值",min(1,2,3,45))
print("总和",sum([1,2,3,4,5]))
print("幂次方",pow(10,2))
print("绝对值",abs(-1))
print("四舍五入",round(5.678))
print("四舍五入,保留两位",round(4.567,2))
'''运行结果
最大值 4
最小值 1
总和 15
幂次方 100
绝对值 1
四舍五入 6
四舍五入,保留两位 4.57
'''

全局变量与局部变量

全部变量:在文件内的任何任何一个地方都可以使用
局部变量:只在声明的作用域下可以使用

  • 声明在函数内部的
  • 声明在循环体内的
  • 声明在方法里面的

定义一个全局变量:

global a
a = 10

错误写法:global a = 10

sum = 0
def func_13():
    global a
    a = 10
    print(a)
    b = 10
    sum = a + b
    return sum

res = func_13() # 20
print(res)
# sum = a + b 报错信息:"b" is not defined

函数的注释

用来结束这个函数是做什么的,参数的意思是什么,有没有返回值之类的
查看注释信息 函数名.__doc

def func_05(name, age, sex):
    '''
    自我介绍是的函数
    :param name:名字
    :param age:年龄
    :param sex:性别
    :return :无返回值
    '''
    print('''
    name:{},
    age:{},
    sex:{}
    '''.format(name, age, sex))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值