定义函数

函数不会改变某一个功能的代码, 函数只是将这个功能的代码封装起来, 方便后续调用.

# 基本结构
def 函数名(参数):
'''文档注释, 函数功能的描述'''
代码块 # 需要注意的是函数定义阶段, 只检测语法, 不执行代码 def max_2():
'''给定两个数, 打印较大的数'''
x = 10
y = 20
if x > y:
print(x)
else:
print(y) # 函数名.__doc__方法可查看函数的文档注释
print(max_2.__doc__) # 给定两个数, 打印较大的数

定义函数的三种形式

空函数

def func():
pass

有参函数

def max_2(x, y):
'''打印较大的数'''
if x > y:
print(x)
else:
print(y)

无参函数

def max_2():
'''给定两个数, 打印较大的数'''
x = 10
y = 20
if x > y:
print(x)
else:
print(y)

函数的调用

def max_2(x, y):
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) # 使用函数名加括号即可调用函数
# 有参函数调用时必须传入相应数量的参数
max_2(20, 10) # 20

函数的返回值

def max_2(x, y):
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) retur = max_2(20, 10)
print(retur) # None # 注意, 原函数只进行了结果打印, 函数本身并未返回任何值, 因此我们打印retur结果为None def max_2(x, y):
'''打印和返回较大的数'''
if x > y:
print(x)
return x
else:
print(y)
return y retur = max_2(20, 10)
print(retur) # 20 # 我们将原函数进行简单的改造, 加入return, 现在我们打印retur会显示函数的返回值 # return有如下几个特性:
# 1. return可以返回一个个值, 没有返回值则返回None
# 2. 没有return则返回None
# 3. return会终止函数, 不会运行下面的代码
# 4. return可以返回多个值(通过逗号隔开), 返回值以元祖的形式接受

函数的参数

形参 (parameter)

函数定义阶段时括号内设置的参数, 相当于一个变量名, 可以接收被传入的值

实参(argument)

实参是在函数调用阶段传给函数(形参)的一个具体的值, 相当于变量值, 可以为所有数据类型

# 函数定义
def max_2(x, y): # x, y 即为形参
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) # 函数调用
max_2(10, 20) # 10, 20 即为实参

位置形参与位置实参

当函数定义阶段时设置了多个形参时, 则调用函数时也必须依次传入对应数量的实参, 我们把按照从左到右的排列, 一一对应的形参和实参称为位置形参和位置实参

# 函数定义
def max_2(x, y): # x, y 即为位置形参
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) # 函数调用
max_2(10, 20) # 10, 20 即为位置实参

默认形参

默认形参既在函数定义阶段就已经给形参设定了一个默认值

def max_2(x, y = 10):  # y 即为默认形参, 默认形参必须在位置形参的后面
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) # 函数调用阶段仍能给默认形参传值, 如果没有给默认形参传值,即为默认值
max_2(20) # y = 10
max_2(20, 30) # y = 30

关键字实参

关键字实参即为在函数调用阶段, 按照形参名(关键字)给形参传值

def max_2(x, y):
'''打印较大的数'''
if x > y:
print(x)
else:
print(y) # 函数调用
max_2(y=10, x=20)
max_2(10, y=20) # 关键字实参必须在位置实参的后面, 否则会报错
max_2(10, x=20) # 报错,x被多次赋值

Python3 函数基础1的更多相关文章

  1. Python3 函数基础2

    目录 可变长参数 可变长形参: *args 可变长实参: *容器类 可变长形参: **kwargs 可变长实参: **字典 函数对象 引用 当做容器类型元素 当做参数传给一个函数 当做函数的返回值 函 ...

  2. Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  3. python开发基础之字符编码、文件处理和函数基础

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  4. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  5. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  6. JavaScript 函数基础

    1. JavaScript 函数基础 1. 定义方法 2. 函数的调用方法 3. 函数方法 apply : 将函数作为数组的方法来调用 将参数以数组形式传递给该方法 call   : 将函数作为对象的 ...

  7. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  8. 【2017-03-05】函数基础、函数四种结构、ref和out参数、递归

    一.函数基础 1.函数/方法:非常抽象独立完成某项功能的一个个体 2.函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 3.分类 固定功能函数高度抽象函数 4.函数四要素:输入, ...

  9. PHP基础入门(三)---PHP函数基础

    PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...

随机推荐

  1. Java自动生成数据

    最近在造数据库中的表数据,写了些数据生成类 可以随机生成姓名.性别,民族,出生日期,身份证号,手机号,邮箱,身高,文化程度,地址,单位,日期时间,编码等 package com.util.create ...

  2. Bran的内核开发教程(bkerndev)-08 中断服务程序(ISR)

    中断服务程序(ISR)   中断服务程序(ISR)用于保存当前处理器的状态, 并在调用内核的C级中断处理程序之前正确设置内核模式所需的段寄存器.而工作只需要15到20行汇编代码来处理, 包括调用C中的 ...

  3. Docker从入门到实践(4-1)

    使用 Docker 镜像 在之前的介绍中,我们知道镜像是 Docker 的三大组件之一. Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像. ...

  4. 【Oracle】Oracle数据库基本指标查看

    目录 1.查看表空间 2.查看用户 3.查看数据库内存 4.查看数据库版本 5.oracle归档情况 6.查看redo log日志位置 7.查看数据库的控制文件 8.查看RMAN的备份情况 9.FRA ...

  5. PostGIS 结合Openlayers以及Geoserver实现最短路径分析(一)

    环境: Win10 ArcMap10.4(用于数据处理) postgresql9.4 postgis2.2.3 pgRouting2.3(postgresql插件) ##附上本文配套素材下载地址:ht ...

  6. PHP中Redis扩展无法加载问题

    问题: 在重启php-fpm的过程中,发生了如下的错误,redis.so无法载入 1 2 3 4 [root@brand009 modules]# /usr/sbin/php-fpm /usr/sbi ...

  7. CentOS 7下配置ISO镜像文件为本地yum源

    环境限制外网怎么办?离线环境怎么解决依赖?yum源配起来,可以解决大部分包的安装^_^ 环境: 虚拟机:VMware Workstation Pro 12.x Linux系统版本:CentOS-7-x ...

  8. python3基础之 字符串切片

    一.python3中,可迭代对象有:列表.元组.字典.字符串:常结合for循环使用:均可使用索引切片 实例: str = ' #str[start:stop:step] 遵循[左闭右开]规则 prin ...

  9. day 41 css固定位置 以及小米商城项目

    .如何让一个绝对定位的盒子居中 left:%; margin-left:- 宽度的一半 .固定定位 position: fixed; ()脱标 参考点:浏览器的左上角 作用:固定导航栏 返回顶部 小广 ...

  10. 数据降维-LDA线性降维

    1.什么是LDA? LDA线性判别分析也是一种经典的降维方法,LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的.这点和PCA不同.PCA是不考虑样本类别输出的无监督降维技术. ...