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

  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. CSS制作镂空字体

    1.效果图 2.html内容: <!doctype html><html lang="en"><head> <meta charset=& ...

  2. HTML琐碎知识点(持续补充)

    一.table标签 <table> <thead> <tr> <th>111</th> </tr> </thead> ...

  3. Android JNI中C调用Java方法

    背景需求 我们需要在JNI的C代码调用Java代码.实现原理:使用JNI提供的反射借口来反射得到Java方法,进行调用. JNI关键方法讲解. 1. 在同一个类中,调用其他方法 JNIEXPORT v ...

  4. 2步安装1个hive docker运行环境[centos7]

    1 构建基础容器 基于centos环境docker环境快速搭建,执行步骤 docker build -t cenosbase7 . 执行此步骤就可以构建1个基础的centos基础运行环境 相关的文件如 ...

  5. JSON基础知识点

    一.介绍: JSON是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成. 二.数据格式: 1.JSON建构于两种数据格式: “名称/值”对(键值对)的集合,不同的语言中,它被理解为 ...

  6. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问

    在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...

  7. linux下objdump应用

    <a href="http://www.maomao365.com/?p=952" > linux命令objdump的用法  http://www.maomao365. ...

  8. Uvision4创建工程

    创建工程 创建好工程会出现如下的界面 创建文件( .asm 或 .c ) 选择菜单栏中的File->New- 按 Ctrl+S 保存文件并填写文件名 添加到之前创建的工程中 选择Target1- ...

  9. Linux环境下执行java -jar xxx.jar命令如何让springboot项目在后台运行

    段落引用> 由于springboot内置了tomcat容器,我们通常会把项目打成jar或者war后直接使用java -jar xxx.jar命令去运行程序,但是当前ssh窗口被锁定或者按下ctr ...

  10. go语言打造个人博客系统(一)

    go语言打造个人博客系统(一) 为什么选择go语言?   听说go语言是在几年前,但真正深入了解他却是在2017年,因为当时作为讲师 ,需要准备go语言的课程,结果稍一接触立刻就喜欢上这门语言了,作为 ...