文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python3.7函数基础知识有哪些

2023-06-02 00:04

关注

本篇内容介绍了“python3.7函数基础知识有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  一、函数

  从开始接触python就接触了函数。 例如 input()函数用于获取用户键盘输入、print()函数用于输出结果、range()函数用于生成整数序列、len()函数用于获取序列的长度。不仅如此python还为我们提供了自定义函数。即将有规律,可重复使用的代码封装成函数,从而达到一次编写多次调用的结果。由此可见我们可以简单的认为函数是可以实现特定功能的代码块。

  二、函数的定义

  假如我们要求0-100之间的和应该怎么将其写成函数呢?

  def sun():

  a = 0

  for i in list(range(101)):

  a += i

  print(a)

  sun()

  --------------------

  5050

  上述代码我们定义了一个函数实现0-100的求和。 而且得到了准确的结果。 首先用def关键字用来定义一个函数。后面跟一个函数名。 函数名顾名思义就是函数的名字。 这个名字是我们自定义的同样遵循命名规范。函数名后面的"()"表示参数列表。 具体会在下一个列子中讲到。 括号后面的是函数体即我们的求和功能。 程序的最后一行sun()称之为函数的调用。 定义了函数如果不调用就相当于不执行。简而言之也就无法生成求和的功能。

  同时我们思考另一个问题。 不是说函数是可以重复利用的嘛。 很明显上述函数只能完成0-100的求和。 假如说要完成1-1000,或者0-300之间的求和,难道要继续写嘛。显然不是。

  def sun(mag):

  a = 0

  for i in list(range(mag)):

  a += i

  print(a)

  sun(1002)

  sun(301)

  501501

  -----------------

  45150

  通过上述代码我们发现我们在示例1 的基础上在参数列表假如mag,这个成为参数。 关于参数后面还会具体讲到。 一个参数可以有多个参数。 参数与参数之间用逗号隔开。 与此同时我们吧range里原先的100换成了我们的参数。 此时不难发现我们在调用函数的时候分别在括号里填上了1001和301。 这样就实现了我们提出的求0-1000和0-300求个的功能。

  那么我们有提出新的疑问。假如说我们不仅要实现求和。 然后还要将求出来的和参与别的运算。此时我们又应该怎么做呢?

  def sun(mag):

  a = 0

  for i in list(range(mag)):

  a += i

  return a

  b = sun(1002)

  print(b)

  c = b - 10000

  print(c)

  501501

  ------------------

  491501

  我们在示例2 的基础上又添加了return a 这句话的意思是把计算结果返回到函数调用的地方。这样我们就可以用个计算结果去做别的事了。

  小结:

  函数名:其实就是一个符合 Python 语法的标识符,但不建议读者使用 a、b、c 这类简单的标识符作为函数名,函数名最好能够体现出该函数的功能。

  形参列表:即上面括号里的函数列表,设置该函数可以接收多少个参数,多个参数之间用逗号( , )分隔。

  [return [返回值] ]:整体作为函数的可选参参数,用于设置该函数的返回值。也就是说,一个函数,可以用返回值,也可以没有返回值,是否需要根据实际情况而定

  三、函数的调用

  到目前为止对函数的调用已经比较熟悉。 即 函数名(形参值),函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值,需要注意的是,创建函数有多少个形参,那么调用时就需要传入多少个值,且顺序必须和创建函数时一致。即便该函数没有参数,函数名后的小括号也不能省略。

  四、pass语句

  如果想定义一个什么事也不做的空函数,可以用pass语句.pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

  def sun():

  pass

  五、为函数添加说明文档

  函数不仅仅是给自己用的。 在一个团队中很可能其他人也要用到。 这时如果他不知道函数的功能就没法准确的调用。或者时隔很久要做维护和修改或者新员工要接手项目。 如果没写注释不仅效率低。而且有可能回成为吐槽的对象。 因此添加说明文档必不可少。例如

  """

  功能:求指定序列的和

  mag 要生成的序列的最大值

  """

  def sun(mag):

  a = 0

  # 通过循环求和并返回结果

  for i in list(range(mag)):

  a += i

  return a

  b = sun(1002)

  print(b)

  六、参数检查

  函数调用时如果参数的个数不对。python的解释器会自动检查出来

  """

  功能:求指定序列的和

  mag 要生成的序列的最大值

  """

  def sun(mag):

  a = 0

  # 通过循环求和并返回结果

  for i in list(range(mag)):

  a += i

  return a

  b = sun()

  print(b)

  Traceback (most recent call last):

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 12, in

  b = sun()

  TypeError: sun() missing 1 required positional argument: 'mag'

  但是参数的类型不对那么解释器就无能为力了。

  def my_list(number):

  print(list(range(number)))

  my_list("10")

  Traceback (most recent call last):

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in

  my_list("10")郑州正规人流医院 www.zykdrl120.com

  File "/Users/apple/Documents/重要文件/python3/python20.py", line 3, in my_list

  print(list(range(number)))

  TypeError: 'str' object cannot be interpreted as an integer

  显然我们要生成0-9的列表。而我们偏偏传入了字符串这时就会报错。此时内置函数isinstance()就派上用场了

  def my_list(number):

  if isinstance(number, int):

  print(list(range(number)))

  else:

  print("只接受整型的数值")

  my_list("10")

  my_list(10)

  只接受整型的数值

  ---------------

  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  那么可不可以一个参数满足两个或者以上类型呢?当然可以

  def my_list(number):

  if isinstance(number, (int, float, str)):

  print("我满足了条件")

  else:

  print("我不满足条件")

  my_list("10")

  my_list(10)

  my_list((1, 2))

  我满足了条件

  我满足了条件

  我不满足条件

  七、函数返回多个值

  def my_list():

  return 10, 20, [1, 3]

  a = my_list()

  print(a)

  (10, 20, [1, 3])

  由上述例子可知函数是可以一次性返回多个值的。但是这个返回值是tuple

“python3.7函数基础知识有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯