函数

函数的基本概念

  1. 函数: 函数就是具备某一功能的工具

  2. 定义函数: 事先准备工具的阶段就是函数的定义

  3. 调用函数: 遇到应用场景拿来就用就是函数的调用

为何使用函数

  1. 程序冗长
  2. 程序的扩展性差
  3. 程序的可读性差

定义函数

什么是参数(形参,parameter)

定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名

定义函数的三种形式

无参函数

# 函数括号内没有参数
def func():
print('无参函数')

有参函数

# x, y即为函数的参数
def sum(x, y):
res = x + y
print(res)

空函数

# 空函数没有任何功能
def func():
pass

函数的参数

形参和实参(parameter & argument)

# 形参: 定义函数时候括号内设置的参数, x, y即为形参 (变量名)
def sum(x, y):
res = x + y
print(res) # 实参: 函数调用时传入的具体的值, 1, 2即为实参 (变量值)
sum(1, 2)

位置参数

# 位置形参: 定义函数阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
def sum(x, y):
res = x + y
print(res) # 位置实参: 调用函数阶段,按照从左到右的顺序依次传入的实参,称之为位置实参
sum(1, 2) # 注意: 实参按照位置为对应的形参依次传值,且每个形参,都必须被传值,多一个不行,少一个也不行

默认形参

# 参数在定义阶段,就已经被赋值
def sum(x, y = 2):
res = x + y
print(res) # 注意: 1.默认参数必须在位置参数的后面
# 2.默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定

关键字实参

def sum(x, y):
res = x + y
print(res) # 在函数调用阶段, 按照key = value的形式为函数传值
sum(x = 1, y = 2) # 特点: 可以打破位置的限制,任能对制定的形参传值
# 注意: 1.可以和位置实参混用,但关键字实参必须在位置实参后面 sum(1, y = 2)
# 2.可以和位置实参混用, 但同一个形参不能被多次传值 sum(1, x = 1)(报错)

Day 09 函数的更多相关文章

  1. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  2. Day 09 函数基础

    函数初级 简介 # 函数是一系列代码的集合,用来完成某项特定的功能 优点 '''1. 避免代码的冗余2. 让程序代码结构更加清晰3. 让代码具有复用性,便于维护''' 函数四部分 '''1. 函数名: ...

  3. day 09 函数的进阶

    01 动态参数 *args **kwargs 在函数的定义时,* ** 代表聚合. def func(**kwargs): print(kwargs) func(**{"name" ...

  4. python 基础篇 09 函数初识

    <<<<<<<<<<<<<<<------------------------------函         ...

  5. python day - 09 函数

    函数 1.函数的定义,引用. 定义:函数是对功能和代码块的封装和定义. 函数用 def关键字来表示. 格式: def  函数名(): 函数体 eg: return(返回值) 在函数中遇到return ...

  6. python 09 函数

    目录 函数初识 1. 函数定义: 2. 函数调用: 3. 函数的返回值: 4. () 4.1 位置传参: 4.2 关键字传参: 4.3 混合传参: 函数初识 1. 函数定义: def 函数名(): 函 ...

  7. C++学习笔记:09 函数模板与类模板

    课程<C++语言程序设计进阶>清华大学 郑莉老师) 引入 考虑一个求绝对值函数myabs,对于int,double,float等数据类型需要重载多次,编写多个函数体.函数体逻辑代码完全一致 ...

  8. [函数] Firemonkey Windows 重新计算 Font Baseline

    计算字型 Baseline 是一个不常用的函数,但如果想要显示不同大小文字下方对齐,就得用它来计算字型的 Baseline 才行,如果计算不准,显示的文字就会高高低低不整齐. 在 Firemonkey ...

  9. python全栈开发 * 09知识点汇总 * 1806011

    09 函数初识一 函数的的定义# 函数: 对代码块和功能的封装和定义# 引入 回家过程 未用函数# print("步行")# print("坐地铁")# pri ...

随机推荐

  1. nyoj 21-三个水杯(BFS)

    21-三个水杯 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:7 submit:18 题目描述: 给出三个水杯,大小不一,并且只有最大的水杯的水是装 ...

  2. 安卓JNI精细化讲解,让你彻底了解JNI(一):环境搭建与HelloWord

    目录 1.基础概念 ├──1.1.JNI ├──1.2.NDK ├──1.3.CMake与ndk-build 2.环境搭建 3.Native C++ 项目(HelloWord案例) ├── 3.1.项 ...

  3. 力扣(LeetCode)买卖股票的最佳时机 个人题解

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票. 示例 ...

  4. 反汇编objc分析__block

    "You can specify that an imported variable be mutable—that is, read-write— by applying the __bl ...

  5. 报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题。

    问题: 在写windows服务时,发布后日志报错:尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 ...

  6. 20191107-3 beta week 2/2 Scrum立会报告+燃尽图 02

    此作业要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/9955] 一.小组情况 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 ...

  7. webpack4打包的一些坑

    1.安装webPack看官方文档就可以了,主要是打包,我安装的是4+以上的 官网中文教程:https://www.webpackjs.com/guides/installation/ 2.我是在php ...

  8. 1像素border的实现(vue.js)

  9. VS Code实现markdown画流程图

    安装最新的vscode编辑器,原生支持markdown语法.不会markdow的人可以去好好学下,写文档神器!!! 1.安装Markdown Preview Enhanced插件 2.本地新建test ...

  10. 【Android - IPC】之Serializable和Parcelable序列化

    1.序列化的目的 (1)永久的保存对象数据(将对象数据保存到文件或磁盘中): (2)通过序列化操作将对象数据在网络上进行传输(由于网络传输是以字节流的方式对数据进行传输的,因此序列化的目的是将对象数据 ...