一、函数的定义以及分类:

  1.   什么是函数:函数是可以重复调用来完成特定功能的代码块。-----(重复利用的工具)

    """
    1 什么是函数?重复利用的工具————可以完成特定功能的代码块
    2 为什么要用函数?
    3 函数的分类:内置函数与自定义函数
    #1、内置函数
    为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()
    ps:我们将会在最后详细介绍常用的内置函数。 #2、自定义函数
    很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可。例如
    复制代码 4 如何自定义函数:函数在定义阶段只检测语法,不执行代码,代码逻辑错误只会在执行时才知道的
    语法 def 函数名(参数1,参数2,参数3,...):
    '''注释'''
    函数体
    return 返回的值 #函数名要能反映其意义
    定义函数的三种方式:(*****)
    定义有参数函数,及有参函数的应用场景
    定义无参数函数,及无参函数的应用场景
    定义空函数,及空函数的应用场景

    2、函数的组成部分:

    1.   def :是声明函数的关键词
    2.   函数名(fn):函数的名称作为函数在被调用依据(注:函数名需要反映函数的意义)
    3. ():参数列表,参数个数可以是0到n个,但是()在整个函数中紧随函数名后面一定不能少。
    4. 函数体:作为函数的核心,是完成某项特定功能的代码块。
    5. return:返回函数的值(函数的返回值也称之为函数值,就是函数执行结束后的结果,可以用变量接受 | 可以直接打印 | 可以直接使用)

# 函数执行的本质:执行函数体,得到函数返回值

def fn():
print('')
print('')
return '函数返回值'
# 写在return 下方的代码,不能执行
# 但是可以在另外分支逻辑下 执行其他代码

   3.  从函数参数列表分类定义函数的方式:

    1.   定义有参函数
def fn(money):
print('你付了%s元钱' % money)
print('函数的一行代码')
print('函数的二行代码')
return '冰红茶'
# fn直接打印,只能看到函数存放代码的地址
print(fn, id(fn))

       2.  定义无参函数

# 无参函数:函数体运行不需要外界提供参数
def print_msg():
print("欢迎大家")

     4.从函数体进行分类:

       1.       定义空函数  

      

# 空函数:项目之初,知道项目有哪些功能,但还没有明确功能体,可以用pass进行函数体填充
def computed():
pass

       2.      定义非空函数:

# 非空函数:用函数体
def add_num(n1, n2):
''' 函数的注释
:param n1: 第一个数
:param n2: 第二个数
:return: 两个数之和
'''
return n1 + n2 res = add_num(10, 20)
print(res) a = 50
b = 100
print(add_num(a, b))

   5.从函数返回值分类:

    1. 没有 return的函数
    2. 空 return 的函数
    3. 空返回
'''
1. 没有return的函数
2. 空return
# 空返回 3. return一个值
4. return多个值
# 值返回
''' # 空返回 # def fn1():
# print('fn1 run!!!')
#
# res = fn1()
# print('没有return关键字的返回值:%s' % res) # None # def fn2():
# print('fn2 run!!!')
# # return
# # return None # res = fn2()
# print('空return关键字的返回值:%s' % res) # None # 无return函数与空return函数的区别
# 空return:可以根据具体情况主动退出函数(像break结束循环一样)
# def fn3(msg):
# print('fn3 第一行逻辑')
#
# # msg信息不正常:'' | None
# if msg == '' or msg is None:
# # 结束函数
# return
#
# print('msg信息正常: %s' % msg)
#
# msg = input('msg: ')
# fn3(msg) # 值返回
# 一个值的返回
def add_num(n1, n2):
return n1 + n2
print(add_num(10, 15)) def computed(n1, n2):
# 返回四则运算的结果
r1 = n1 + n2
r2 = n1 - n2
r3 = n1 / n2
r4 = n1 * n2
return [r1, r2, r3, r4] a, b, c, d = computed(50, 25)
print(a, b, c, d) # 多个值的返回: 本质就是返回装有多个值的元组
def computed_sup(n1, n2):
# 返回四则运算的结果
r1 = n1 + n2
r2 = n1 - n2
r3 = n1 // n2
r4 = n1 ** n2
return r1, r2, r3, r4 a, b, c, d = computed_sup(50, 25)
print(a, b, c, d) res = computed_sup(50, 25) # 得到的是装有所有结果的元组
print(res)

二、函数调用以及嵌套调用:

  1. 调用函数(先定义后调用)
    1. 如何调用函数
    2. 函数的调用:函数名加括号(先找到名字,根据名字调用函数)
  2. 函数的返回值
    1. 无return->None
    2. return 1个值->返回1个值
    3. return 逗号分隔多个值->元组
  3. 函数的嵌套调用:  就是在一个函数体内调用另外一个函数体(函数在解释时候不执行函数体,只有函数被调用的时候才执行函数体)
def fn1():
print('fn1 run')
fn2() def fn2():
print('fn2 run')
fn3() def fn3():
print('fn3 run') # 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后
fn1()
# 案例:用函数实现获取两个数的最大值
def max_2(n1, n2):
if n1 > n2:
return n1
return n2 print(max_2(200, 30)) # 获取三个数的最大值
# def max_3(n1, n2, n3):
# if n1 > n2 and n1 > n3:
# return n1
# if n2 > n1 and n2 > n3:
# return n2
# return n3
def max_3(n1, n2, n3):
m2 = max_2(n1, n2)
return max_2(m2, n3) print(max_3(300, 30, 30)) # 四个数呢?
def max_4(n1, n2, n3, n4):
m2 = max_2(n1, n2)
return max_3(m2, n3, n4)
print(max_4(10,30,20,0))

day09--函数的定义分类以及其使用(1)的更多相关文章

  1. python—day9 函数的定义、操作使用方法、函数的分类、函数的嵌套调用

    一.函数的定义 函数的四个组成部分: 函数名. 函数体. 函数返回值. 函数参数 1.概念:重复利用的工具,可以完成特定功能的代码块,函数是存放代码块的容器 2.定义: def:声明函数的关键词 函数 ...

  2. python27期day09:函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数、作业题。

    1.函数的作用:封装代码.大量的减少了重复的代码. 2.全局空间:顶行写的就是全局空间. 图解 : 3.函数的定义: def 是一个关键字.申明要定义一个函数 my_len 函数的名字.遵循变量命名的 ...

  3. Python基础--函数的定义和调用

    一.函数的作用: 提高代码的可读性,减少代码的冗余,方便调用和修改,组织结构清晰 二.函数的定义:函数遵循先定义后调用的原则 1.无参函数 def funcname(): #def 是关键字,后跟函数 ...

  4. day10 函数的定义及函数语法详解

    """ 今日内容: (1)函数的定义及特点 (2)函数的语法及函数的四部分 (3)函数的分类 (4)函数的调用 (5)函数的return详解 一.函数的定义 1.什么是函 ...

  5. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  6. python第三十四课——1.匿名函数的定义和使用

    演示匿名函数的定义和使用 # 定义无参有返回值的有名函数: def func(): return True # 定义无参有返回值的匿名函数 f=lambda : True # 调用有名函数执行 pri ...

  7. Python基础入门(5)- 函数的定义与使用

    定义函数 函数的定义 函数的分类 函数的创建方法 函数的返回return 函数的定义 将一件事情的步骤封装在一起并得到最终结果 函数名代表了这个函数要做的事情 函数体是实现函数功能的流程 函数可以帮助 ...

  8. dll导入导出宏定义,出现“不允许 dllimport 函数 的定义”的问题分析

    建立dll项目后,在头文件中,定义API宏 #ifndef API_S_H #define API_S_H ...... #ifndef DLL_S_20160424 #define API _dec ...

  9. C++ 回调函数的定义与用法

    一回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理.用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函 ...

随机推荐

  1. K8s helm 创建自定义Chart

    # 删除之前创建的 chart helm list helm delete --purge redis1 # 创建自定义 chart myapp cd ~/helm helm create myapp ...

  2. Dynamics AX 2012 性能优化之 SQL Server 复制

    Dynamics AX 2012 性能优化之 SQL Server 复制 分析数据滞后 在博文 Dynamics AX 2012 在BI分析中建立数据仓库的必要性 里,Reinhard 阐述了在 AX ...

  3. Android为TV端助力 比较完善json请求格式

    public static String getHttpText(String url) { if (MyApplication.FOR_DEBUG) { Log.i(TAG, "[getH ...

  4. pyinstaller打包错误 UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 160:

    注:我的博客原本在CSDN,现转到博客园,图片采用以前的图片,并没有盗图. 在将.py文件打包时,出现了下列错误 >>C:\Users\小呆\PycharmProjects\pycharm ...

  5. Scala并发编程【进阶】

    package com.dingxin.entrance import java.text.SimpleDateFormat import java.util.Date import scala.ac ...

  6. MSSQL sqlserver系统函数教程分享

    摘要: 下文收集了sqlserver函数教程,为每一个函数都进行了相关举例说明, 如下所示: sqlserver聚合函数教程: mssql sqlserver avg聚合函数使用简介 mssql sq ...

  7. 前后端分离djangorestframework——路由组件

    在文章前后端分离djangorestframework——视图组件 中,见识了DRF的视图组件强大,其实里面那个url也是可以自动生成的,就是这么屌 DefaultRouter urls文件作如下调整 ...

  8. [C#]关于路径的几则笔记

    测试环境 本文基于windows下的操作 windows 7 x64 unity 5.3.7p4 获取文件的路径 比如一个文件的路径为:e:\3d\client\trunk\Product\Apps\ ...

  9. 第十四届智能车培训 PLL锁相环

    什么是锁相环? PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使高频器件正常工作,如内存的存取资料等.PLL用于振荡器中的反馈技术. 许多电子设备要正常工作 ...

  10. ASP.NET -- WebForm -- 页面生命周期

    ASP.NET -- WebForm --  页面生命周期 ASP.NET 页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化.实例化控件.还原和维护状态.运行事件 ...