今天我们来学习函数。

产生的原由,若没有函数,会显得重复代码多,可读性差,也会造成重复造轮子的情景。

故产生了函数,用来封装好一个功能,它是以功能为导向的。

1、【函数的样式】

例如自己定义一个函数:

def my_len():

def python中的关键字,用来声明和定义一个函数;

my_len 函数名,命名规范与变量命名的一样;

def与函数名中间要隔一个空格;

函数名+"()"+":",括号加冒号,括号里填的要你想要设置函数调用者传递的参数;

紧接着就是缩进的函数体(主要功能实现部分);

例,以下自定义的计算可迭代对象元素长度的函数:

my_len():

def my_len(l):

count = 0

for i in l:

count += 1

return count

li = [1, 2, 3, 4, 5]

print(my_len(li))

函数的执行,函数名+"()"就会去调用执行。

函数的返回值,定义函数时,不要在函数中写print语句(调试的时候可以这么做),因为函数是以功能为导向的,需要返回输出的值时使用return将值返回给函数的调用者就可以了。

在函数当中遇到return时就会结束执行函数(结合if语句用就会有像循环中break的感觉)。

函数返回的值有以下几种:

1)无return语句,返回None;

2)使用了return,返回None;

3)return指定返回一个值,该值是什么,就直接返回给函数调用者;

4)return返回多个值,将多个值放置到一个元组中,返回给函数调用者。

2、【三元运算】

例,在以下自定义一个用于比较两个整数大小的函数体中,就使用了三元运算:

# 普通的比较两数大小,谁的值大返回谁的函数:

def max_min(a, b):

if a > b:

return a

else:

return b

print(max_min(290,355))

# 使用了三元运算优化代码:

def max_min(a,b):

return a if a > b else b

print(max_min(45, 56))

retrun a if a > b else b 的意思是判断如果a > b 就返回a,否则返回b。

3、【函数的传参】

分两大方面:实参和形参。

上例中的max_min(45,56)这里的45和56就属于实际传递过去的参数,所以就是实参;

而def中定义函数时出现的max_min(a,b)中的a,b就属于形式上的参数,用于对应参考的,就是形参。

实参角度:

1、位置传参,与形参的位置与个数一一对应,按顺序,个数不能少也不能多;

2、关键字传参,同样与形参一一对应,但可以不按顺序,因为有关键字,例如上例在实参中直接填写b=56,a=45这样。

3、混合传参,就是位置参数和关键字参数混合使用,但要注意的是所有的关键字参数都要放在最后面,也就是位置参数要在关键字参数之前。

形参角度:

1、位置传参,按顺序和个数与实参形成一一对应关系;

2、默认参数,重要!设置好默认参数后,如果实参中有传递参数过来,就按照实参的参数,如果没有,就直接按照默认的预设的值。省事又灵活。默认参数永远要在位置参数的后面。

3、动态参数,今天暂时不去了解。

end

2018-3-28

乐学python_铁乐学Python_day09_函数相关推荐

  1. 乐学python_铁乐学python_shelve模块详解

    python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究 ...

  2. 乐学python_铁乐学python_day01-作业

    第一题:使用while循环输入 1 2 3 4 5 6 8 9 10 # 使用while循环输入 1 2 3 4 5 6 8 9 10 count = 0 while (True) : count = ...

  3. 21day学通python_铁乐学python_day21_面向对象编程3

    抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...

  4. 南京工业大学 乐学python_[紫金山乐学帮]南工大研究出新型智能吸附剂,能大大降低能耗...

    最近,南京工业大学刘晓勤.孙林兵教授课题组在有关智能吸附剂方面取得突破性进展,其研究成果刊发于化学领域顶级期刊<德国应用化学>.这一成果为高性能吸附剂的开发提供了新思路,有望大大降低工业过 ...

  5. 乐学python_【IT专家】铁乐学python

    铁乐学 python 2018/04/18 13 铁乐学 python_day23_ 面向对象进阶 1_ 反射 以下内容大部分摘自博客 cnblogs/Eva-J/ isinstance() 和 is ...

  6. 铁乐学python_Day42_锁和队列

    铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import timedef work():global ntemp = ...

  7. 铁乐学Python_day09_函数

    今天我们来学习函数. 产生的原由,若没有函数,会显得重复代码多,可读性差,也会造成重复造轮子的情景. 故产生了函数,用来封装好一个功能,它是以功能为导向的. 1.[函数的样式] 例如自己定义一个函数: ...

  8. 南京工业大学乐学python答案_铁乐学python_day09_作业

    练习题 1.整理函数相关知识点,写博客 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素, 并将其作为新列表返回给调用者. def odd_index(l): lis = [] for ...

  9. 铁乐学Python_day05-字典dict

    1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...

最新文章

  1. 武汉大专计算机专业分数线,武汉专科大学有哪些 2019武汉专科大学排名及分数线...
  2. mysql查询条数为零_mysql 查询每个月发布的文章数。月份无数据显示为0。如何写SQL呢...
  3. VC下调用x264进行视频编码,
  4. python 获取麦克风声音_如何使用python和ffmpeg或simi读取实时麦克风音频音量
  5. Teamviewer
  6. python单链表实现荷兰国旗问题_快速排序深入之荷兰国旗问题
  7. 《软件需求十步走》阅读计划第三篇
  8. 零中频发射机设计与实现
  9. 概率论基础-严士健 第二版 习题与补充2.1答案
  10. 计算机单位 字节,字节是什么意思?字节是什么单位
  11. 脸上不同部位长痘痘的原因
  12. Anaconda各个版本清华镜像站下载
  13. Win32的时间类型
  14. Android中的Menu功能菜单-OptionsMenu[选项菜单]
  15. 汪汪汪WDG--看门狗的作用
  16. 2020 必须收藏的vscode主题【清爽的前端配置 vue】
  17. 最简单的磁盘分区教程
  18. Graph4Rec: 基于图神经网络的推荐系统通用工具包
  19. Jupyter Nptebook里面的这几个知识点你知道吗
  20. ecshop二次开发添加快递

热门文章

  1. 如何MATLAB实现用ARIMA模型输出参数实施预测
  2. 经济学人翻译练习——加拿大自由党政府试图提振经济4.16
  3. 红酒类小程序APP开发源码交付
  4. PostMessaget与ON_MESSAGE
  5. 蓝旭前端第二周预习———HTML标签+如何查看控制台
  6. Java-SpringBoot-使用SNMP对交换机/服务器进行简单的数据采集
  7. iOS设计模式之MVC
  8. matlab修改背景颜色为护眼和修改字体大小
  9. 想清楚干点什么,比怎么干更重要--Leo读 不是孙振耀写的职场感言 2
  10. 什么是单反相机,和普通相机有什么区别