一、函数

1. 定义:

可以重复使用,用来实现单一或多个“功能”的代码段,以功能为单位

2. 意义:

提高程序的模块化管理,提高代码的重复使用率

3. 分类:

(1) 内置函数(内建函数)

print()、 sorted()、 abs()-求绝对值、

(2) 自定义函数

二、 自定义函数

1. 定义:

def 参数名([参数1, 参数2, 参数3]):函数体[return 返回值]

2. 详细说明:

(1) 名字---

> 大小写字母,数字(不能开头),下划线

(关键字不能给标识符命名)模块,函数名 也不要

>  形式: 驼峰式或者下划线式

(2) 参数,及个数

(3) 返回值

(4) pass 占位符

--- 保持程序完整性,可以用于开发调试或者(for,if,function)

eg1.line = input('你想打印几行的三角形')num = input('你想打印几个三角形')def printStar(n, l = 5):for i in range(1, num+1):print(n*'*')printStar(nun, line)

三、 自定义函数参数的分类

1. 位置参数

> 定义的参数位置要指定,在调用时必须保持 位置一致。
> 位置参数 必须写 ,除默认值

> 可以通过名字传入,与命名关键字参数类似

2. 默认参数

(1) 注意:

> 当定义时指定了函数的名字和默认值
> 用于调用不输入参数时,使用默认值
> 用法如: 参数名 = 默认值

(2) 默认参数的特点

> 如果不传入参数值,使用默认值
> 定义函数时,位置参数,必须放在默认参数之前(后面会视为默认参数)
> 使用默认值参数,一定不能是 不可变类型(如果可变类型在重复调用时会累加进行)
> 如果全部是默认参数,那么按顺序传入参数

3. 命名关键字参数

(1) 定义:

函数名(*,命名关键字参数)   --- (后面的都是)

(2) 注意:

> 形参必须通过关键字来传入参数
> 只要定义了命名关键字参数, 必须传入,除非给了默认值
> 参数传入 顺序可以任意,只要指定名字就可以
> 命名关键字参数,在调用时,必须使用已经定义过的关键字,否则报错

(3) 好处:

> 可读性强、
> 参数顺序可以忽略、
> 如果有默认值,更加简化

eg2.# 其中day参数使用关键字参数def display(context = 'Python',*, day = 8):return '我正在学习{},已经学习了{}天了'.format(context,day)program_language = input('你在学什么课程:')duration = int(input('你了几天了:'))print(display(program_language, day=duration))
eg3.li = [1,2,-5, -3]li.sort(key = abs)  # 次数不调用(使用返回值),不能加括号,只函数名

4. 可变参数 (收集参数) --- python特有

---  接收任意数量的位置参数,把参数 以元组的形式存在

(1) 定义

def 函数(* args)

(2)  注意

> args是约定可变参数
> *代表打包操作,即定义时会把位置参数转成一个元组
> 调用函数时,如果传入的是位置参数序列(列表、元组),应该使用*代表拆包
> a = [1,2,3,] 其中a是命名对象,b是匿名对象

eg4. 求平方和def sum(*args):sum = 0for i in args:sum += i ** 2return sum

5. 关键字参数(收集参数)

(1) 格式

def 函数(**kwargs)
#将命名关键字参数打包成字典

#如果以 名 = 值 形式传入,那么把键值对传入kwagrs

 eg5.def register(name, age, **kwargs):passregister('张珊', 20)   

> 收集参数(可变参数,关键字参数)用来扩展函数的功能

> 调用函数时,如果传入的是字典,应该使用**代表拆包

(2)注意:

>   命名关键字参数可变类型参数不能同时使用
> 位置参数最靠前

三、 返回值

> 任何函数都有返回值
> 返回值使用return定义
> return可以是数也可以是表达式
> return = return None = ‘不写’
> return代表函数结束,之后代码不在执行
> 函数的返回值如果有多个,以元组的形式返回
> 如果多个返回值,可以使用 多个参数来接收,但必须一一对应

四、函数注释

1. 定义方法:

def fun():'''传入值函数基本功能介绍:return: 返回值'''

2.访问

方法1: print(fun.__doc__)
方法2: help(fun)

Preparatory Class-Day8------函数相关推荐

  1. c语言函数指针封装函数,C语言之函数指针、回调函数的使用

    一.背景 首先看下如下代码,这个定义是放在头文件的,在程序中tCdrvCallbackFkt也定义了另一个变量,而且括号后面还跟定义了几个变量,不理解这个定义. typedef void (PUBLI ...

  2. 单片机sleep函数的头文件_单片机学习day8—单片机IO扩展

    74HC165芯片-并转串 74HC165中文资料.pdf 267.6K · 百度网盘 8位移位寄存器(并行输入,互补串行输出) 时钟输入端 CLK,CLK INK (上升沿有效) A-H 并行数据输 ...

  3. step1 . day8 C语言基础练习之指针和函数

    今天继续复习指针,还是很深奥的,两点注意事项: 1. int型数据可以强制类型转化赋值给指针变量,然后对该地址赋值(用在裸机上): 2.指针数组是数组,存放的是指针,数组指针是数组的指针,存放的是行指 ...

  4. matlab 绘制符号函数,DAY8 MATLAB学习笔记—simulink入门、MATLAB符号函数的图形绘制...

    如何打开simulink: 启动simulink: 先打开MATLAB软件界面 第一步打开simulink 第二步在command windows输入 simulink然后enter,等待 有很多模块 ...

  5. 从零开始学前端:函数 --- 今天你学习了吗?(JS:Day8)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:九九乘法表.全选反选全不选 - 今天你学习了吗?(JS:Day7) 文章目录 从零开始学前端:程序猿小白也可 ...

  6. OpenCV4每日一练day8:模型投影函数projectPoints()

      OpenCV4中提供了projectPoints()函数用于计算世界坐标系中的三维点投影到像素坐标系中的二维坐标. 例:程序参数来自下述图片 运行结果: 附上例代码: #include <o ...

  7. 文件操作函数java_java中文件的操作

    前言:java的读写操作是学java开发的必经之路,Java.io包中包括许多类提供许多有关文件的各个方面操作.下面就来总结下java的读写操作. 主要内容如下 1.字节流与字符流的区别 2.文件操作 ...

  8. Javascript 笔记(1)----函数

    1.parseInt: >>>parseInt('123dsfsd') 123 >>>parseInt('abc1.33') NaN >>>par ...

  9. day9——函数初识

    函数的定义:将可重复使用的,实现某种功能的代码段组织在一起2.函数的语法: def 函数名(参数): 函数体 return 2.1.函数名是一个变量,因此命名规则需遵守变量命名规则 3.函数的调用 函 ...

  10. excel减法函数_会计小白的EXCEL学习笔记

    随着信息化的发展,原本浑浑噩噩想着混吃等死的二胎妈妈的我,经过这段时间设计合同台账,突然觉得很丧,妥妥的强烈危机感啊~于是乎下定决心得加快提升自己了. 那么对于财会行业,excel是必备技能,一方面可 ...

最新文章

  1. Pytorch和Tensorflow,谁会笑到最后?
  2. 线程或进程绑定到特定的cpu
  3. swift_040(Swift闭包声明与用途)
  4. 第三章:ioctl 函数详解
  5. Android --- This project contains Java compilation errors,which can cause rendering failures for
  6. linux下source命令使用详解
  7. Codeforces Round #323 (Div. 2) C.GCD Table
  8. ACM Fellow发文抨击【同行评审】作弊轻松中顶会
  9. Gstreamer之audio转码(二十三)
  10. POJ2559最大矩形面积——单调栈
  11. Android 6.0 动态权限申请注意事项
  12. 【语音合成】基于matlab比例重叠相加法信号分帧与还原【含Matlab源码 561期】
  13. 微信小程序视频学习教程
  14. cwrsync向linux免密同步,Cwrsync如何使用可以实现Linux与windows下的文件同步详解
  15. 名侦探柯南主线剧情整理
  16. 外汇交易风险有那些?
  17. 月下夜想曲200.6(攻略2)
  18. 共享充电,是雪中送炭还是暗藏危险?——恶意充电宝实验
  19. 大战AV终结者(一)……AV简介
  20. JS获取img图片的原始尺寸高度和宽度

热门文章

  1. 测试人的Java之Java入门
  2. 微信小程序 app.wxss css 不生效
  3. linux防火墙关闭 重启 开启、防火墙开放端口
  4. ipad html阅读器,iPad 超强文档阅读应用(GoodReader)
  5. .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来
  6. easyswoole入门
  7. html5获取我的位置并在百度地图上显示
  8. win7\win10加域的电脑不输入密码直接登录登录电脑桌面
  9. 网站的权重怎么计算以及网站降权的分析处理方法
  10. java程序license验证_基于TrueLicense实现产品License验证功能