0919课堂小结

目录

  • 函数的定义
  • 函数定义的三种方式
    • 空函数
    • 有参函数
    • 无参函数
  • 函数的返回值
    • return的特性:
  • 函数的三种调用方式
  • 函数的参数
    • 形参
    • 实参
  • 可变长参数
    • 可变长形参*
    • 可变长实参*

函数的定义

函数就是工具, 定义函数方式为

def func():   # def 函数名():
    pass            # 代码块

函数定义的特性: 函数定义过程, 只检测语法, 不会执行代码, 只有调用时才会执行代码

函数定义的三种方式

空函数

空函数顾名思义就是一个空的函数, 什么代码都没有,它的作用就是占个位置, 在大项目构思整体框架的时候 会用到

def func():
    pass   #没有代码块时  必须写一个pass

有参函数

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

在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。

如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。

def guess1(x,y):
    """给定两个数,打印较大的数"""
    if x > y:
        print(x)
    else:
        print(y)

guess1(50,20)   # 传入参数, 函数调用

无参函数

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

在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。

def guess2():
    """给定两个数,打印较大的数"""
    x = 30   #直接定义计算的数值
    y = 20

    if x > y:
        print(x)
    else:
        print(y)

guess2()  # 直接调用

函数的返回值

return是函数的返回值,可以拿到函数的最后结果, 然后在函数外进行其他运算

return的特性:

  • return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。
  • return的返回值可以返回任意数据类型
  • return的返回值无个数限制,即可以使用逗号隔开返回多个值
    • 0个:返回None 即如果函数没有直接定义, 函数默认返回none
    • 1个:返回值是该值本身
    • 多个:返回值是元组

函数的三种调用方式

def max_self(x, y):
    if x > y:
        return x
    else:
        return y

# 1. 直接调用
print(max_self(1, 2))       #2

# 2. 得到返回结果后 再处理
res = max_self(1, 2) * 12
print(res)                    #24

# 3. 调用两次函数
print(max_self(max_self(20000, 30000), 40000))    #40000

函数的参数

形参

在函数定义阶段括号内定义的参数, 称之为形式参数 , 简称形参 , 本质就是变量名

位置形参

在函数定义阶段, 按照从左到右的顺序依次定义的形参 , 称之为位置形参

特点 : 按照位置定义的形参 , 都必须被传值 , 不能多一个少一个

默认形参

在定义阶段, 就已经被赋值 在调用的时候 可以不为它传值

def func(x, y=10):   # y 就是默认形参
    print(x)
    print(y)

func(2)  # 2传给x  在调用的时候 可以不为y传值

注意:

  • 位置形参必须放在默认形参的左边。
  • 如果不传值,使用默认值;如果调用的时候传值,使用传入的值
  • 默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了。
  • 默认参数的值通常应该是不可变类型。

实参

在函数调用阶段括号内传入的参数 , 称之为实际参数 , 简称实参 , 本质就是变量的值

位置实参

在函数调用阶段 , 按照从左到右的顺序依次定义的实参 , 称之为位置实参

特点 : 按照位置为对应的形参依次传值 , 从左到右传值, 不能多一个也不能少一个

关键字实参

在调用函数时 , 按照key=value的形式为指定的参数传值 , 称之为关键字实参func(num1 = 2 , num2 = 3)

特点 : 可以打破位置 从左到右的限制 , 可以为指定的形参传值

注意:

  • 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
  • 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
func(x, y=2)
func(y=2, x)  # 报错 SyntaxError: positional argument follows keyword argument
func(x, x=1)  # 报错 NameError: name 'x' is not defined

可变长参数

可变长形参*

形参中的* 会将溢出的位置实参全部接收 , 存储为元组的形式 , 然后把元组赋值给*后的参数

def sum_self(*args):
    res = 0
    for num in args:
        res += num
    return res

res = sum_self(1, 2, 3, 4)
print(res)   # 10

可变长实参*

实参中的 * ,* 会将* 后参数的值循环取出,打散成位置实参 , 然后传值给形参。以后但凡碰到实参中带*的,它就是位置实参,应该马上打散成位置实参去看。

def func(x, y, z, *args):
    print(x, y, z, args)

func(1, *(1, 2), 3, 4)

# 1 1 2 (3, 4)

原文地址:https://www.cnblogs.com/faye12/p/11549979.html

时间: 2024-10-14 03:33:29

0919课堂小结的相关文章

2015-12-03IOS课堂小结

一.①int age = 20 如上int命名规范,int(大小写字符,数字,下划线)= ()  /括号里面的内容必须由字母开头 当有多个单词组成的变量名中,第一个单词小写,第二个单词首字母大写(往后的单词首字母大写),比如numberOfPeople,同时要见名知义. ②scanf :从终端接收输入 必须严格按照scanf的格式  scanf("   ",&参数):  参数必须是变量的地址,&表示取地址.引号之间不要轻易的区添加空格 get char:从终端一次接收一

0929课堂小结

目录 random模块 numpy模块 创建numpy数组 numpy数组的常用属性 获取numpy二数组行列数 切割numpy数组 numpy数组元素替换 numpy数组的合并 numpy常用函数 matplotlib模块 基本的核心使用方法 条形图 直方图 折线图 散点图+直线图 pandas模块 random模块 常用于生成随机数 import random # 大于0且小于1之间的小数 print(random.random()) # 0.9704044132949314 # 大于等于1

1009课堂小结

什么是面向对象 面向对象指的是一门编程思想. # 面向过程编程 核心是"过程"二字,过程指的是做事情的步骤,即先做什么再做什么 基于该编程思想编写程序,就好比一条工厂流水线,一种机械式的思维方式. 优点: 逻辑清晰,复杂的问题流程化,进而简单化. 缺点: 可扩展性差. 面向对象编程 核心是"对象"二字,对象指的是特征与技能的结合体. 基于该编程思想编写程序,就好比在创造世界,一种上帝式的思维方式. 优点: 可扩展性高. 缺点: 编写程序的复杂程度要远高于面向过程编程

1031课堂小结

目录 python 操作mysql 安装pymysql 模块 sql注入问题 产生的原因 解决的方法 连接 查 增 修 删 索引 使用索引的作用 索引的本质 索引的底层原理 索引的种类 索引的创建 主键索引 唯一索引 普通索引 索引的优缺点 不会命中索引的情况 慢查询日志 查看慢SQL的相关变量 配置慢SQL的变量 python 操作mysql 安装pymysql 模块 pip install pymysql sql注入问题 输入用户名:qaa ' or 1=1 # 输入密码:dasdasdsa

1104课堂小结

exec exec是什么 exec 是一个python的内置模块 exec的作用 可以把'字符串形式'的python代码,添加到全局或者局部名称空间中 exec的使用方法 参数一:字符串形式的python代码 参数二:全局名称空间字典 参数三:局部名称空间字典 调用exec() 元类 什么是元类 元类就是类的类,Chinese类的类是type,type是所有类的类,所以type就是一个元类 元类的作用 元类可以帮我们控制类的创建和调用 怎么自定义创建元类 自定义一个元类,继承type,派生出自己

1115课堂小结

目录 JavaScript 注释 js的引入方式 js里面的变量 js变量的命名规范 js常量 js中的数据类型 运算符 算数运算符 比较运算符 逻辑运算符 赋值运算符 三元运算符 流程控制 if-else if-else else-if switch for while 函数 无参函数 有参函数 匿名函数 立即执行函数 箭头函数 函数的全局变量和局部变量 自定义对象 Date对象 json对象 RegExp对象 JavaScript 是前端的一门编程语言 注释 // 单行注释 /* 多行注释1

1217课堂小结

目录 一.表单指令 二.条件指令 条件指令案例(重点) 三.循环指令 循环指令案例: 四.分隔符 五.过滤器 六.计算属性 七.监听属性 八.冒泡排序 九.斗篷指令 一.表单指令 语法:v-model = "变量",v-model绑定的变量控制的是表单元素的value值. 普通表单元素:用v-model直接绑定变量控制value值. 单选框:以name进行分组,绑定的值为单选框的value值. 单一复选框:v-model绑定的值为true或false. 多个复选框:v-model绑定的

软件项目管理与素质拓展-2.3项目管理是残缺的美

2.3.1 路易10世的地牢 课堂讨论2?1 路易10世的地牢 你是路易10世的俘虏.他要给自己的城堡增加三个新地牢,让你做一个规划.干得好就释放,干不好就终生监禁. 小地牢很难设计,要12周,但容易建成,1周即可: 中地牢设计要5周,施工要6周: 大地牢设计只要1周,但建造要用9周: 每种地牢必须设计全部完成后才能着手建造: 你有远道而来的一个设计师和一个建筑师: 设计师不会建造而建筑师不会设计. 问:要建好这三个地牢,你该如何规划? 首先,我们认真分析下地牢建造中的“项目三角形”有什么特点,

金蝶K3商业智能免费版财务分析(下)课程系列开课了

上周刚听完奥威Powerbi的金蝶K3商业智能免费版针对财务分析的课程还意犹未尽的同学,这节课精彩继续!讲师为我们带来基于金蝶K3商业智能免费版的数据分析教学下篇——资产负债分析和利润分析. 资产负债表和利润表,两个财务报表中最重要的报表,在Power-BI平台上也能分析自如?这种技能又该怎么实现?这节课讲师为你详细解读. 讲师介绍:黄沛霓 现任奥威软件BI实施顾问,擅长SqlServers.ETL和数据建模,熟悉各大主流ERP软件.财务高级指标的计算和分析. 直播时间:2017年3月15日晚上