Python第八课:函数(def)

本文详细介绍了Python中的函数,包括定义、组成、调用以及进阶使用,如函数类型、返回多个值、多函数协作和函数嵌套。通过实例展示了如何定义和调用函数,以及如何处理不同类型的参数,包括默认参数、不定长参数和关键参数。此外,还讨论了变量作用域和函数嵌套的概念,并提供了几个实际应用的练习题。
摘要由CSDN通过智能技术生成

一、函数的定义

函数是组织好的,可以重复使用的、实现单一功能的代码。函数中的代码可以多次使用

  • 通俗地来说,函数就是一个包裹,一个函数就是一个包裹,每个包裹都有一个功能,只要需要某个功能,只需要拿到包含该功能的包裹即可;
  • 你需要调用多少次功能,就使用多少次包裹。

二、函数的组成

点击关闭图片

  • 以上这是我们之前使用过的函数,包含输入数据、处理数据、输出数据等功能;
  • 这些函数中都有(),里面存放的是我们要给函数处理的数据。这种数据称之为【函数的参数】;
  • 【参数】指的是函数要接受、处理的数据,就是一个变量。
>>> length1=len('神雕侠侣')	 
>>> print(length1)	 
4

>>> length2=len('倚天屠龙记')	 
>>> print(length2)	 
5
>>> 
  • 观察以上的代码,参数不一样,结果也会不一样。

三、定义和调用函数

1. 定义函数

定义函数的基本语法如下:
点击关闭图片
见如下示例:

>>> # 以y=12*x+30为例,定义一个函数	 
>>> def func(x):
	 y = 12*x+30
	 return y	 
>>> print(func(3))	 
66
>>> 
  • 第一行的def的全称为define,即为“定义”的意思:

    • “func"是函数的名字,是自己根据功能情况来取名的;
    • ”(x)"中的x也是自己取名的,可根据功能进行命名;
    • 切记最后面需要跟上英文的冒号
  • def的下一行是函数体,这是函数要实现的功能,即根据x的值,计算12*x+30的结果,同时将结果赋值给y;

  • 第三行return是返回的意思,可以指定函数执行完毕后最终会得到什么样的结果,否则计算机是无法判断出函数最终要输出什么结果的。

  • 注意事项:

    • 函数名:
      1. 名字能体现函数的功能,一般用小写英文字母和数字、英文下划线组合使用,不要区稀奇古怪、让人摸不着头脑的函数名称,体现自己不专业!
      2. 不能与Pthon内置函数重名。
    • 函数参数:
      1. 根据函数功能,括号内可以有单个参数、多个参数,也可以没有参数;
      2. 参数的命名规则与函数命名规则一致;
      3. 括号是英文括号,后面是英文冒号;
    • 函数体:是函数的执行过程,用于完成函数的功能,需要缩进
    • return返回值:需要返回什么数据,则写什么数据;若不需要,可不写。

定义函数,是将函数中的功能封装好,等待调用

2. 调用函数
>>> def math(x):
	 y = 30+x
	 return y	 
>>> num = math(4)
>>>print(num)	 
34
>>> 
  • math(4)就是调用函数,math为定义函数的名字(定义与调用时名字一致);
  • 传递参数,4对应函数参数x, 在调用函数时,将10传递给x;
  • 在函数体中,y = 30 +4, 得出y的结果为34;
  • num用来接收y的值,即num=34。所以,打印出来的最终结果是34。
>>> def order():
	 x = input('您好,请问你需要什么物品?')
	 print('跟您确认一下,您需要的物品是%s'%x)
>>> order() 
您好,请问你需要什么物品?医用N95口罩
跟您确认一下,您需要的物品是医用N95口罩
>>> 

四、函数的进阶使用

1. 函数的类型
  • 无名函数。如果是进行一些简单的处理的函数,可以使用关键字“lambda”来记述,这种写法称作无名函数(lambda函数)
def up(s):
    return s.upper()

print(up('heelo'))
# 输出结果:
HEELO

lo = lambda s:s.upper()

print(lo('hello'))
# 输出结果:
HELLO
>>> def promotion():
    print('江南皮革厂')
    print('江南皮革厂倒闭了!')
    print('老板带着小姨子跑路了')
    print('原价300、500的真皮皮鞋')
    print('统统只要88元,只要88元')
    print('走过路过,千万不要错过了啊!')

>>> promotion()

江南皮革厂
江南皮革厂倒闭了!
老板带着小姨子跑路了
原价300500的真皮皮鞋
统统只要88元,只要88元
走过路过,千万不要错过了啊!
>>>
  • 如上所示的函数,不需要输入参数,也不需要返回值,运行函数直接打印显示内容即可
  • 多个参数的函数(位置参数)。需要注意的是:无论多少个参数,调用函数时参数的顺序要与设置函数时的参数顺序保持一致
>>> def wuxia(jinyong,gulong,huangyi):
    print('金庸小说:%s'%jinyong)
    print('古龙小说:{}'.format(gulong))
    print('黄易小说:{}'.format(huangyi))
    print()

>>> wuxia('天龙八部','萧十一郎','大唐双龙传')
>>> wuxia('倚天屠龙记','天涯明月刀','寻秦记')
>>> wuxia('射雕英雄传','流星蝴蝶剑','覆雨翻云')
金庸小说:天龙八部
古龙小说:萧十一郎
黄易小说:大唐双龙传

金庸小说:倚天屠龙记
古龙小说:天涯明月刀
黄易小说:寻秦记

金庸小说:射雕英雄传
古龙小说:流星蝴蝶剑
黄易小说:覆雨翻云

>>>
  • 默认参数。切记,**默认参数在位置参数之后。**若在调用函数时,给默认参数的参数赋值了,会覆盖默认参数。
>>> def wuxia(jinyong,gulong,huangyi='寻秦记'):
    print('金庸小说:%s'%jinyong)
    print('古龙小说:{}'.format(gulong))
    print('黄易小说:{}'.format(huangyi))
    print()

>>> wuxia('天龙八部','萧十一郎')
>>> wuxia('倚天屠龙记','天涯明月刀')
>>> wuxia(
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值