前言:目前先将python的基础语法和知识学完,再去尝试写脚本,这次就学习python中的函数和类。

一、定义函数

使用关键字def 来定义一个函数,这就是函数定义,而且定义以冒号结尾。

格式:

def  函数名 :内容函数名

例如:

def message():"""打印的信息"""print("hello world")
message()
输出结果:
hello world

"""打印的信息"""被称为文档字符串的注释,文档字符串用三引号括起来。

二、向函数传递信息

def message(username):"""打印的信息"""print("hello,"+username.title())
#调用函数
message('lemon')


通过这个例子可以知道,在定义函数时括号内添加了username ,我们在调用的时候可以赋任何值给username

三、位置实参

调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。最简单的关联方式是基于实参的顺序,这就算位置参数。


调用函数多次,如:

应注意在函数调用时实参的顺序与函数定义中形参的顺序是否一致

关键字实参

关键字实参是传递给函数的名称—值对,直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆.


关键字实参明确地指出了各个实参对应的形参,因此不会出现因为顺序而混淆的情况。

默认值

编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,Python将使用指定的实参值;否则,将使用形参的默认值。


使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的实参。这样才能够正确地解读位置实参。

四、返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。

返回简单的值

相较于之前,需要再次调用函数并赋值有些麻烦,返回值直接是赋值给一个变量,我们通过打印出这个变量即可得出相应的值。

让实参变成可选的

有时候,需要让实参变成可选的,这样使用函数就可以提供额外的信息。
可使用默认值来让实参变成可选的。


这里用一个if语句来进行判断middle_name是否存在,通过这样的判断,就可以打印出不同的情况,这里便是将middle_name变成可选的。

返回字典

函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。


full_name接收first_namelast_name,并将这些值封装到字典中.

同样可以增加一个可选值,如果存在则添加到字典中,并通过返回值赋值给变量

使用函数和while循环

五、传递列表

将列表传递给函数后,函数就能直接访问其内容


通过把列表传递给函数,提高效率

传递任意数量的实参


形参名*toppings 中的星号让Python创建一个名为toppings 的空元组,并将收到的所有值都封装到这个元组中

不管收到的是一个值还是三个值,函数都能妥善地处理

结合使用位置实参和任意数量实参

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中。


Python将收到的第一个值存储在形参size 中,并将其他的所有值都存储在元组toppings中

使用任意数量的关键字实参

结果:

{'first_name': 'albert', 'last_name': 'einstein', 'location': 'princeton', 'field': 'physics'}

形参**user_info 中的两个星号让Python创建一个名为user_info 的 空字典,并将收到的所有名称—值对都封装到这个字典中。 然后遍历字典user_info 中的键—值对,并将每个键—值对都加入到字典profile 中。

六、将函数存储在模块中

导入整个模块

模块 是扩展名为.py的文件,包含要导入到程序中的代码

只需编写一条import 语句并在其中指定模块名,就可在程序中使用该模块中的所有函数。

例如:
使用这种import 语句导入了名为module_name.py 的整个模块,就可使用下面的语法来使用其中任何一个函数:

module_name.function_name()

导入特定的函数

from module_name import function_name

通过用逗号分隔函数名,可根据需要从模块中导入任意数量的函数:

from module_name import function_0, function_1, function_2

使用as给函数指定别名

函数make_pizza() 指定了别名mp()

指定别名通用语法:

from module_name import function_name as fn

使用as给模块起别名

导入模块中的所有函数
使用星号(* )运算符可让Python导入模块中的所有函数

from module_name import *

python学习(函数)相关推荐

  1. Python学习—函数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 1.定义函数 Python 定义函数使用 def 关键字,一般格式如下: def ...

  2. python学习——函数及其参数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程 ...

  3. python学习--函数例子

    1 #!/usr/bin/env python3 2 # -*- coding:utf-8 -*- 3 4 #01 函数的定义,调用 5 #生日歌 6 def happy(): 7 print(&qu ...

  4. Debian Linux下的Python学习——函数

    python函数通过def关键字定义.def关键字后跟一个函数的标识符名称,然后跟一对圆括号.圆括号之中可以包括一些变量名,该行以冒号结尾.接下来是一块语句,它们是函数体. 1.无参数函数(函数不带参 ...

  5. python学习-函数(定义、可变参、小练习(列表最小值函数))

    函数目录 定义 可变参函数 自定义列表最小值函数 定义 函数定义使用关键字def,可以不带参数,也可以带参数,带参数的函数,可以使用位置参数,详见示例: str1 = 'sadf'def printV ...

  6. python学习——函数

    函数 内建函数,如print() 用户自定义函数 一.函数定义法则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). def 函数名(参数列表): 函数体 函数内容以冒号 : 起始 ...

  7. 小猿圈python学习-函数的递归

    求100不断除以2直到商为0为止,打印每次除的商 用循环实现 n = 100 while n > 0: n = int(n/2) print(n) 输出: 50 25 12 6 3 1 0 如果 ...

  8. Python学习 - 面向对象之多态

    Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855 Python学习 - 数据类型:https://blog ...

  9. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  10. 整理了7道Python函数的练习题,希望对你学习函数有帮助

    1.简述普通参数,指定参数,默认参数,动态参数的区别 普通参数:以正确的顺序传入函数,调用时数量必须和声明的一样 指定参数:参数和函数调用关系密切,函数调用使用关键字参数来确定传入的参数值,参数 允许 ...

最新文章

  1. HTML的<span>标签【杂记】
  2. SpringBoot跨域问题解决方案
  3. ubuntu设置始终亮屏_如何设置默认显示亮度?
  4. Win10下安装LabelImg以及使用(绝对是全网最简单的教程)
  5. 关于类型的存储时间和链接
  6. 谷歌和ESRI眼中的Web Mercator
  7. java result_Result对象 + 统一异常处理
  8. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! taoism@1.0.0 dev: `webpack-dev-server --inline --
  9. timesten mysql_timesten 存储过程
  10. Java为Excel导出增加批注(POI)
  11. 单片机入门3.驱动蜂鸣器
  12. Java教师工资习题
  13. C语言(求最小公倍数的3种方法)
  14. git推送不能完全退出错误
  15. 色粉笔画的简史和怎样画色粉笔画?
  16. EDAS投会议论文遇见的问题及部分解决办法——总结
  17. readlink /var/lib/docker/overlay2/l: invalid argument报错解决
  18. 开发、运维、业务都说好的全栈云原生长这样
  19. 虚拟机 硬盘空间不足 磁盘最大大小调整的相对方法
  20. oracle查看锁定任务

热门文章

  1. 卧虎藏龙2不显示服务器列表,《卧虎藏龙贰》iOS平台 合服公告(第2期)
  2. 深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构
  3. 期末复习、化学反应工程科目(第五章)
  4. 开课提醒 | 听顶会大佬透析前沿算法,解密人脸识别技术
  5. AAAI 2020 开源论文 | 一种针对图嵌入模型的受限黑盒对抗攻击框架
  6. 疯狂吸金1600个亿的拼多多,社交网络分析到底隐藏多少财富?
  7. 接下来学习计划2020.11.9
  8. pytorch的两个函数 tensor.detach(),tensor.detach_(),tensor.clone() 的作用和区别
  9. 浙江大学人工智能研究所:AI+X驱动科学发现
  10. springBoot静态资源优先级)