定义函数

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

# 基本结构
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. nyoj 243-交换输出 (swap)

    243-交换输出 内存限制:64MB 时间限制:3000ms 特判: No 通过数:16 提交数:39 难度:1 题目描述: 输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输 ...

  2. C语言|博客作业03

    这个作业属于哪个课程 C程序语言设计 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/8654 我在这个课程的目标是 ...

  3. 开始逆向objc基础准备(二)我的平台是simulator-x86_64

    建项目运行中断调试,lldb中显示寄存器看到有rax-r15, stm0-stm7, xmm0-xmm15, ymm0-ymm15,即为x64体系支持sse4. 再在lldb中查看寄存器别名得到以下对 ...

  4. ReadWriteLock: 读写锁

    ReadWriteLock: 读写锁 ReadWriteLock: JDK1.5提供的读写分离锁,采用读写锁分离可以有效帮助减少锁竞争. 特点: 1).使用读写锁.当线程只进行读操作时,可以允许多个线 ...

  5. robatframework+jenkins+email集成部署方案

    准备工作: 1.jenkins.war包 下载地址:https://jenkins.io/zh/download/ 2.Jdk1.8 下载地址:http://www.oracle.com/techne ...

  6. [FPGA]Verilog利用PWM调制巧妙完成RGB三色彩虹呼吸灯(给简约的题目以美妙的解答)

    概述 实现彩虹呼吸灯 题目就是这么简短,但这是目前我碰到的最有意思的一道题目,因为他有无数种解决方法,并且每一种都是那么高级或者巧妙,比如 可以利用3路不同初相的PWM调制信号驱动三颗RGB灯重叠呼吸 ...

  7. Redis系列(二):Redis高可用集群

    一.集群模式 Redis集群是一个由多个主从节点组成的高可用集群,它具有复制.高可用和分片等特性 二.集群部署 1.环境 3台主机分别是: 192.168.160.146 192.168.160.15 ...

  8. Scala学习系列一

    一 scala介绍 Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言. 1)  Scala 是一门多范式 (multi-parad ...

  9. 和SharpDX坑爹的Variant刚正面

    和SharpDX坑爹的Variant刚正面 几个月前我写了和篇文章<.NET中生成动态验证码>文章,其实里面藏着一个大坑.运行里面的代码,会发现运行的gif图片并没有循环播放: 细心的网友 ...

  10. 针对可变类型的for遍历

    针对可变类型的for遍历 举个例子 lis = [1,6,1, 2, 3,3, 4, 5] for i in lis: lis.remove(i) print(lis) [6, 1, 2, 3, 3, ...