函数

函数是带名字的代码块,用于完成具体的工作。函数就是为了简化工作,用于执行特定任务的代码序列

  • 简单的函数

    实例:

    def greet_user():    #def是一个关键字,表明你要定义一个函数,这里的函数不需要任何信息就可以执行"""显示简单的问候语"""    #这是文档字符串的注释,一般用于函数的文档print("Hello!")    #函数需要做得工作,就是打印这一行代码
    #当我们执行代码块中的代码是,只需要:
    greet_user()
    #-->Hello!
  • 传递参数
    有时候,函数需要一些信息然后做一些工作,如果我们要传入信息,以便可以是函数处理时可以这么做:

    def greet_user(username):"""显示简单的问候语""" print("Hello, "+username.title+"!")#这里并没有处理,直接就使得函数输出了
    greet_user("jhon")
    #-->Hello, Jhon!

    形参和实参:很多时候,我们会搞混这两个概念,现在我们看看这两个词,从字面意思来看。形参:有形无实,从代码来讲这就是一个没有赋值的变量,不代表任何一个数或字符等类型。实参有具体实意的变量,也就是被赋值过了,代表了一个类型,例如:i=5,这样i就是代表了5


因此,我们来看函数greet_user(username),函数名括号中username是突然出现的,在未使用毫无实际的意义,我们叫它形参,greet_user("jhon")这里"jhon"是一个字符串,带有数据类型,是一个有实际意义的参数,我们叫他实参,调用函数时,实参的值会被形参储存,在函数中形参就有了实参的值,可以直接对形参进行操作,进而改变实参,或者得到需要实参才能计算的到的数据。(形参改变了,实参不一定会改变,取决于它的类型,是列表时,形参变了实参也会变,但是是数字字符时,实参就不会变)

  • 形参的各种形式
    (1)多个形参

    函数可以传入多个实参,但是每次使用时必须有对应的实参
    ```python

    def greet_user(username,age,word):

       """显示简单的问候语""" print("Hello, "+username.title+"!")print("I'm "+age+" year old!")print(word)#这里并没有处理,直接就使得函数输出了greet_user("jhon",18,"I'm fine")#-->Hello, Jhon!#-->I'm 18 year old!#-->I'm fine#"jhon"-储存->username字符串#18-存储->age数字#"I'm fine"-储存->word字符串

当形参的数量大于一个时,务必要注意你想传入的实参与其一一对应,否则会出现不可预知的问题
(2)关键字实参

def greet_user(username,age,word):print("Hello, "+username.title+"!")print("I'm "+age+" year old!")print(word)
greet_user(username="jhon",word="I'm fine",age=18)
#-->Hello, Jhon!
#-->I'm 18 year old!
#-->I'm fine

见上面的代码,我们看见实参的位置并不与形参相对应,这就是关键字实参的好处了,关键字实参可以让你在调用时不用考虑形参的位置
(3)默认值

def greet_user(username,word,age=18):print("Hello, "+username.title+"!")print("I'm "+age+" year old!")print(word)
greet_user(username="jhon",word="I'm fine")
#-->Hello, Jhon!
#-->I'm 18 year old!
#-->I'm fine

以上,发现在定义函数是多了一行age=18,直接就给这个形参赋值了,这样来说就可以不需要另外实参来赋值,当然我们也可以传入覆盖这个默认值

(4)等效函数调用
```python
def des_pet(pet_name,anim_type="dog"):pass#一个没有实际意义的代码,用于测试
des_pet('willie')
des_pet(pet_name='willie')des_pet('harry','hamster')
des_pet(pet_name="harry",anim_type="hamster")
des_pet(anim_type="hamster",pet_name="harry")
#以上对代码的调用都是可以的
```
  • 返回值
    函数在执行了代码序列之后,可以返回值,这个值可以是数字,字符,列表,元组,字典,能不能传函数有待测验,js可以

    def get_num(a,b):return a+b
    num=get_num(10,20)
    print(num)
    #-->30

Python学习小结---函数相关推荐

  1. 小白python学习小结

    python学习小结 #基础篇 #①输入比较 ##p = input("请输入:") ##if p!="hello": *## print("erro ...

  2. Python学习之函数返回多个值

    Python学习之函数返回多个值 问题的引出 Python中,一个函数能不能一次返回多个值? 在C语言中,函数最多返回一个值,如果要返回多个值,可以把这些值封装在一个结构体中.注意,C语言不允许函数返 ...

  3. python判断特殊字符的函数,python学习--quote()函数,,屏蔽特殊的字符、比如

    python学习--quote()函数,,屏蔽特殊的字符.比如 屏蔽特殊的字符.比如如果url里面的空格!url里面是不允许出现空格的. 在 Python2.x 中的用法是: urllib.quote ...

  4. python学习 字符串函数

    python学习 字符串函数 字符串不能被改变,以下和函数,只是 原字符串初始化后不能改变,函数只是将改变后的值返回赋给新的变量(当然可以赋给原来的变量) 大小写函数 capitalize()函数 大 ...

  5. python学习之函数

    最近跟着廖雪峰老师的python教程在学习,总结一下学习成果 函数定义: 当没有return语句时,返回的结果为None def 函数名 ():函数体return 返回值 函数调用: 我们可以调用py ...

  6. python学习(函数)

    前言:目前先将python的基础语法和知识学完,再去尝试写脚本,这次就学习python中的函数和类. 一.定义函数 使用关键字def 来定义一个函数,这就是函数定义,而且定义以冒号结尾. 格式: de ...

  7. Python学习8 函数 匿名函数 内置函数

    转换相关的方法-eval 转换相关的方法-json 函数基本语法大纲 函数概念 示例: 题目: 函数的参数 def f(x,y=1,*z,**abc):print(x,y,z,abc,sep=&quo ...

  8. python学习笔记---函数【廖雪峰】

    函数 调用函数 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个"别名": >>> a = abs # 变量a指向ab ...

  9. 风变python培训_风变python学习小结

    Part 1. 体验与感受 关于自己:2015年的时候,互联网创业大潮,原来从事着和互联网行业毫无关系的我,也心头一阵阵地痒.在一位朋友兼前辈的提点下,自学了一个月C的基础,报了个3个月iOS速成班, ...

最新文章

  1. thttpd安装与调试
  2. InnoDB Master Thread I/O Rate详解
  3. 个人觉得不错的网站或文章
  4. C#用DataTable实现Group by数据统计
  5. 问题 E: Search Problem (II)
  6. 调查了 71000 名开发者发现,JavaScript 最知名,Python 仍大势
  7. 微信公众帐号开发教程第12篇-符号表情的发送(下)
  8. 求一个整数的各位累加和
  9. 《第一行代码》学习笔记12-UI(1)
  10. 金蝶K3销售订单自动携带客户收货信息并可修改,支持下推关联携带
  11. 什么是缺陷分析?一篇文章带你了解,测试工程师必备技能
  12. movielens 1m 的mysql_MovieLens电影数据分析
  13. Unity 鼠标进入UI控件,显示控件名称
  14. ★用辩证数学解答“缸中之脑”
  15. Angular------使用IDEA开发Angular
  16. mysql查询排名名次
  17. 蚂蚁金服宫孙:guava探究系列之优雅校验数据
  18. 常用室内定位技术总结
  19. 游戏建模行业就国内发展的前景,以及行业变化是如何的?
  20. 【Java小项目】打飞机

热门文章

  1. java类中的static块_java类中static代码块的执行次数
  2. Java中this关键字的详解
  3. html5 机构化元素
  4. switch -case 理解
  5. linux系统支持什么格式的软件吗,UOS系统支持什么样的软件包格式:其实Deb,Rpm,Tar.gz源码包都行...
  6. python中tile的用法_Python:numpy中的tile函数
  7. php7 捕获语法错误,PHP7 method_exists未捕获错误:函数名称必须是字符串
  8. feign返回结果统一处理_SpringCloud异常处理统一封装我来做-使用篇
  9. php修改学生信息代码_论导师和学生关于论文写作最大的信息不对称(一):从初稿到定稿到底要修改几遍?...
  10. idea2016 android genyomtion,Android Studio Genyomtion配置