day13:函数基本使用

news2024/11/27 18:42:35

1、什么是函数

函数就相当于具备某一功能的工具
函数的使用必须遵循一个原则:
    先定义
    后调用

2、为何要用函数

1、组织结构不清晰,可读性差
2、代码冗余
3、可维护性、扩展性差

3、如何用函数

    先定义
        三种定义方式
    后调用
        三种调用方式
    返回值
        三种返回值的形式

一、先定义

定义的语法

def 函数名(参数1,参数2,...):
    """文档描述"""
    函数体
    return

形式一:无参函数

 def func():
     # x
     # print(
     print('哈哈哈')
     print('哈哈哈')
     print('哈哈哈')

①定义函数发生的事情

1、申请内存空间保存函数体代码
2、将上述内存地址绑定函数名func
3、定义函数不会执行函数体代码,但是会检测函数体语法

②调用函数发生的事情

1、通过函数名找到函数的内存地址
2、然后加括号就是在触发函数体代码的执行

'''1,定义函数后没有调用函数,函数体里面即使有变量,也不会报错'''
def func():
    x
    # print(
    print('哈哈哈')
'''2,定义函数时有语法错误时,即使没有调用函数,但会检查函数体的语法问题'''
def func():
    x
    # print(
    print('哈哈哈')

在这里插入图片描述

'''3,函数名指向函数体的内存地址&加括号()表示触发函数体的执行'''
 def func():
     # x
     # print(
     print('哈哈哈')
     print('哈哈哈')
     print('哈哈哈')
 print(func)   #结果:<function func at 0x0000019A81C83E20>,func函数的内存地址
 func()      #调用执行func函数体代码

在这里插入图片描述

③>>示范1<<

def bar(): # bar=函数的内存地址
    print('from bar')

def foo():
    # print(bar)
    bar()
    print('from foo')

foo()

在这里插入图片描述

④>>示范2<<

def foo():
    # print(bar)
    bar()
    print('from foo')

def bar():  # bar=函数的内存地址
    print('from bar')

foo()

在这里插入图片描述

③>>示范3<<

def foo():
    # print(bar)
    bar()
    print('from foo')

foo()

def bar():  # bar=函数的内存地址
    print('from bar')

在这里插入图片描述

形式二:有参函数

def func(x,y): # x=1  y=2
    print(x,y)
func(1,2)

形式三:空函数,函数体代码为pass

def func(x, y):
    pass

二、 三种定义方式各用在何处

1、无参函数的应用场景

'''当要实现某种功能,需要多次使用该功能,只需要多次该工具,这里interactive调用了4次'''
def interactive():
    name=input('username>>: ')
    age=input('age>>: ')
    gender=input('gender>>: ')
    msg='名字:{} 年龄:{} 性别'.format(name,age,gender)
    print(msg)

interactive()
interactive()
interactive()
interactive()

2、有参函数的应用场景

'''1.可以将x,y参数当作工厂的原材料'''
'''2.直接在工厂中完成产品的输出'''
'''3.这里提供定义函数的方法:先写出要干的时,如x=20,y=30,要实现20+30或其他数字的加法,那么直接将需要实现加法的两个数作为原材料,作为形式参数,传到工厂即可'''

def add(x,y): # 参数-》原材料
    # x=20
    # y=30
    res=x + y   #产品加工
    print(res)  #产品输出

# add(10,2)
res=add(20,30)
# print(res)

3、空函数的应用场景(作用:构思代码)

'''空函数的主要作用:代码的构思'''

def auth_user():
    """user authentication function"""
    pass

def download_file():
    """download file function"""
    pass

def upload_file():
    """upload file function"""
    pass

def ls():
    """list contents function"""
    pass

def cd():
    """change directory"""
    pass

三、调用函数

1、语句的形式:只加括号调用函数

interactive()
add(1,2)

2、表达式形式: 赋值&数学表达式

def add(x,y): # 参数-》原材料
    res=x + y
    return res # 返回值-》产品

赋值表达式

res=add(1,2)
print(res)

数学表达式

res=add(1,2)*10   #调用函数体,然后继续进行惩罚操作
print(res)

3、函数调用可以当做参数

res=add(add(1,2),10)
print(res)

四、函数返回值

1、return是函数结束的标志,即函数体代码一旦运行到return会立刻
2、终止函数的运行,并且会将return后的值当做本次运行的结果返回:

1、return返回None

函数体内没有return

'''写法:'''
 return
 return None

2、return返回一个值

def func():
    return 10

res=func()
print(res)

3、return返回多个值

用逗号分隔开多个值,会被return返回成元组

def func():
    return 10, 'aa', [1, 2]

res = func()
print(res, type(res))

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

醒醒,别睡了...讲《数据分析pandas库》了—/—<6>

一、 1、长宽格式转换 基于多重索引&#xff0c;Pandas 可以很容易地完成长型、宽型数据格式的相互转换。 1.1 转换为最简格式 stack&#xff08;&#xff09;其使用法如下&#xff1a; stack函数用于将DataFrame中的列转换为行&#xff0c;即将宽格式数据转换为长格式数据。…

【python】PyQt5中QToolButton的详细用法教学与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

jeecguniapp开发小结

一、问题:app发行后图片不显示 解决:绝对路径改成相对路径 另外&#xff1a;避免发行上线图片变形要给到图标或图片具体宽高 //绝对路径 <img src"/static/home/128/wendang.png" style"width:90rpx;height:90rpx;"/> //相对路径 <img src"…

Anaconda环境迁移方法

前言 当我们需要将在一个新电脑上配置Anaconda的环境时&#xff0c;联网的情况下是需要在Anaconda Prompt上安装python环境以及一堆库&#xff1b;离线的情况下则需要用wheel文件一个一个装&#xff0c;十分麻烦。因此方便起见&#xff0c;我们可以将当前电脑上已有的Anaconda…

预测元器件温度的十大技巧——高级操作指南

元器件温度预测为什么很重要&#xff1f; 元器件温度预测在很多方面都有重要意义。一直以来&#xff0c;元器件温度关系到可靠性&#xff0c;早期研究认为现场故障率与稳态元器件温度相关。近来&#xff0c;基于物理学的可靠性预测将电子组件的故障率与工作周期&#xff08;开…

“论大数据处理架构及其应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面&#xff0c;旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构&#xff0c;它是一种将批处理和流…

apache2和httpd web服务器

apache2和httpd web服务器 apache2和httpd web服务器是啥apache是软件基金会apache2是一个web服务httpd和apache2是同一个东西&#xff0c;但是不同linux发行版中叫法不一样。就是同一个东西&#xff0c;但是看上去有一些不一样。 apache2和httpd web服务器是啥 apache是软件基…

使用chainlit快速构建类似OPEN AI一样的对话网页

快速开始 创建一个文件&#xff0c;例如“chainlit_chat” mkdir chainlit_chat进入 chainlit_chat文件夹下&#xff0c;执行命令创建python 虚拟环境空间(需要提前安装好python sdk。 Chainlit 需要python>3.8。,具体操作&#xff0c;由于文章长度问题就不在叙述&#xf…

CUDA编程之grid和block详解

CUDA 文章目录 CUDAgrid和block基本的理解1维 遍历2维 遍历3维 遍历3维 打印对应的thread grid和block基本的理解 Kernel&#xff1a;Kernel不是CPU&#xff0c;而是在GPU上运行的特殊函数。你可以把Kernel想象成GPU上并行执行的任务。当你从主机&#xff08;CPU&#xff09;调…

谈一谈数据库中的死锁问题

文章目录 死锁是什么&#xff1f;死锁的四个必要条件避免死锁的策略 本篇文章是基于《MySQL45讲》来写的个人理解与感悟。 死锁是什么&#xff1f; 死锁是指两个或两个以上的进程在执行过程中&#xff0c;由于竞争资源或者由于彼此通信而造成的一种阻塞的现象。若无外力作用&a…

Linux--Socket 编程 TCP(Echo Server)

目录 1.认识TCP接口 2.Echo Server 2.1添加的日志系统&#xff08;代码&#xff09; 2.2解析网络地址 2.3 服务端逻辑 &#xff08;代码&#xff09; 2.4客户端逻辑&#xff08;代码&#xff09; 2.5代码测试 1.认识TCP接口 下面介绍程序中用到的 socket API,这些函数都在…

“简源共生“:融合乔布斯与埃隆·马斯克智慧之光的设计思维在产品开发中的应用

在科技创新的浩瀚星空中&#xff0c;史蒂夫乔布斯&#xff08;Steve Jobs&#xff09;与埃隆马斯克&#xff08;Elon Musk&#xff09;无疑是两颗璀璨的明星&#xff0c;他们以独特的设计思维引领了时代的潮流&#xff0c;塑造了无数颠覆性产品。本文旨在深入剖析这两位巨匠的设…

文本编辑三剑客(grep)

目录 正则表达式 元字符 grep 案例 我在编写脚本的时候发现&#xff0c;三个文本编辑的命令&#xff08;grep、sed、awk&#xff0c;被称为文本编辑三剑客&#xff0c;我习惯叫它三巨头&#xff09;用的还挺多的&#xff0c;说实话我一开始学的时候也有些懵&#xff0c;主要…

深入分析 Android ContentProvider (八)

文章目录 深入分析 Android ContentProvider (八)ContentProvider 高级使用及最佳实践案例分析&#xff08;续&#xff09;1. 深入了解跨应用数据共享示例&#xff1a;跨应用数据共享的完整实现1. 定义权限2. 定义 ContentProvider3. ContentProvider 实现 2. 实践案例&#xf…

UG NX2406 安装教程

软件介绍 UG是一个交互式CAD/CAM(计算机辅助设计与计算机辅助制造)系统&#xff0c;它功能强大&#xff0c;可以轻松实现各种复杂实体及造型的建构。 它在诞生之初主要基于工作站&#xff0c;但随着PC硬件的发展和个人用户的迅速增长&#xff0c;在PC上的应用取得了迅猛的增长…

用TypeScript完成的贪吃蛇小游戏

食物类Fod // 定义 class Food {// 定义一个属性表示食物所对应的元素element:HTMLElement;constructor(){//加个&#xff01;表示不能为空,非空断言操作符 //获取页面中的food元素并将其赋值给element this.elementdocument.getElementById(food)!;}// 定义一个获取食物x轴坐…

【C++】c++语法基础

引入&#xff0c;第一个c程序 这是用c写的helloworld程序 #include<iostream> using namespace std; int main() {cout << "hello,world\n" << endl;return 0;} 接下来我们将根据上述的代码来学习c的基本语法。 命名空间&#xff08;namespace…

PHP:连接钉钉接口-钉钉回调事件,本地测试数据

前置数据参考 数据说明:参见官方文档回调事件消息体加解密 - 钉钉开放平台 (dingtalk.com) URL后面带的参数: signature=5a65ceeef9aab2d149439f82dc191dd6c5cbe2c0&timestamp=1445827045067&nonce=nEXhMP4r Post参数: { "encrypt":"1a3NB…

日常开发记录分享——C#控件ToolTip实现分栏显示内容

文章目录 需求来源实现思路实施请看VCR等等别走&#xff0c;有优化 需求来源 需要在鼠标浮动到指定位置后提示出详细的信息&#xff0c;一开始使用的tooltip实现&#xff0c;但是里面的内容效果并不理想&#xff0c;需要有条理性&#xff0c;于是就想到能不能将展示的东西分列…

邮件推送API如何集成到现有系统发送邮件?

邮件推送API安全性策略&#xff1f;如何选择邮件推送API服务商&#xff1f; 在当今数字化时代&#xff0c;邮件通信是企业和个人交流的重要方式之一。集成邮件推送API到现有系统可以大大提升通信效率和自动化程度。AokSend将介绍如何将邮件推送API集成到现有系统中&#xff0c…