小菜鸟的python路之函数,参数的类型

1、什么是函数

执行特定代码来实现特定功能的一段代码,进行封装,直接调用。

  • 隐藏实现细节
  • 提高可维护性
  • 提高可读性

2、函数的定义与调用

#定义函数
def say_hello():
    print('hello1')
    print('hello2')
    print('hello3')

#调用函数,函数只有被调用了才会有输出值
say_hello()

运行结果:
在这里插入图片描述
示例1:定义求和函数(计算 40+ 30)

def sum(a,b):
    sum = a+b
    return sum  ##返回值为sum
SUM = sum(30,40)   ##调用函数
print(SUM)

运行结果:
在这里插入图片描述
函数的调用参数方法:

1)位置传参:将实参的值传给形参。
  • 定义的时候sum(a,b)
  • 所以调用的时候,sum(10,20),直接将10传给a,将20传给b
(2)关键字传参
  • 定义的时候sum(a,b)
  • 所以调用的时候,sum(b=20,a=10),直接传参。

3、函数的返回值

(1)0的布尔值为False

(2)非0的布尔值为True

(3)如果函数执行完毕不需要给调用处提供数据,return可以省略不写。

(4)如果函数的返回值为多个,则返回的结果为元组。

b = [1,5,6,34,56,78,99]
def fun(a):
    o = []
    j = []
    for i in a:
        if i%2:
            j.append(i)
        else:
            o.append(i)
    return o,j
roushu=fun(b)
print(roushu)

运行结果:
在这里插入图片描述

4、函数的形参设置

(1)默认形参def(a,b=10)

def fun(a,b=10):
    print(a,b)
fun(2)

运行结果:当只给一个参数传参时,已设置的参数不受影响。
在这里插入图片描述

def fun(a,b=10):
    print(a,b)
fun(2,3)

运行结果: 我们发现,设置的形参已经被实参传的参数覆盖。
在这里插入图片描述
(2)可变形参
个数可变的位置实参:
在这里插入图片描述

def fun(*args):
    print(args)
fun(2,3,4)   ###按顺序传
fun(45,45,34,45,'34t')

运行结果:
在这里插入图片描述
个数可变的关键字实参:
在这里插入图片描述

def fun(**args):
    print(args)
fun(a=1,b=24,c=38)
fun(a=23,b=44,c='2344fff',d=43)

运行结果:注意是以字典形式打印出来的在这里插入图片描述
不论是关键字实参还是位置实参,个数可变的参数只能定义一个。
(3)必选参数:

def max(num1:int,num2:int) ->int:
	return num1 if num1>num2 else num2

result = max(78,32)
print(result)

6、函数的嵌套

def fun1():
    print('world')
    def fun2():
        print('hello')
    # 调用函数2(必须在函数1里先调用函数2)
    fun2()

#调用函数1
fun1()

运行结果:
在这里插入图片描述

7、函数的四大参数

参数分为:形参  实参
#形参:定义函数的时候的变量(可以任意起名)
def welcome(a):
    print('hello',a)

#实参:真实的数据信息,即调用函数的时候传的参数
welcome('lily')
welcome('tom')

运行结果:
在这里插入图片描述

形参分为: 位置参数 默认参数 可变参数 关键字参数

(1)位置参数

形参和实参个数必须保持一致,最好按位置传参

def getInfo(name,age):
    print(name,age)

getInfo('westos',21)
getInfo(age=11,name='westos')

运行结果:
在这里插入图片描述
(2).默认参数

形参和实参可以不一致
#计算x的y次方
def mypow(x,y=2):
    print(x ** y)

mypow(4,3)   # 43次方
mypow(2)     # 22次方

运行结果:
在这里插入图片描述
(3).可变参数

可以接收任意个参数
# 累加运算
def mysum(*args):
    # *args:可变参数(也可以简写为*a)
    #  args的数据类型为:元组(tuple)
    print(args)
    print(type(args))
    sum = 0
    for item in args:
        sum += item
    print(sum)
mysum(1,2,3,4,5,6,7,8,9)
mysum(1,2,3,4,5)

运行结果:
在这里插入图片描述
(4).关键字参数

def getStuInfo(name,age,**kwargs):
    # **kwargs是一个字典,可以传递任意多的key-value
    print(name,age)
    print(kwargs)

getStuInfo('westos',19,hobbies=['coding','running'],gender='female')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值