Python(六)函数

news2024/11/19 15:16:38

函数是一个工具,在输入和输出之间构造一个关系;使用函数方便了代码的复用,避免重新造轮子;

目录

函数的分类

内置函数

自定义函数

函数几种格式对比

无参数,无返回值

有参数,无返回值

无参数,有返回值

有参数,有返回值

局部函数

变量作用域

局部变量

全局变量

方式一:在函数体外定义的变量

方式二:在函数体内定义全局变量,使用 global 关键字对变量进行修饰后,该变量就会变为全局变量


函数的分类

内置函数:python自身带有的,实践中使用非常频繁的一些函数;

自定义函数:通常指程序员自己定义自己使用的函数;

模块函数:把一些函数,单独地放在被成为模块的文件中,这些函数就被称为模块函数。这些函数可能是python自带的,也可能是由第三方开发的一些函数;

 

内置函数

python内置函数有哪些?整理到了7大分类48个函数,都是工作中常用的函数 - 知乎

 

自定义函数

def 函数名(参数):#参数可选

    函数体

    [return 返回值]       #可选

函数几种格式对比

通过案例了解自定义函数的几种情况:半径为10,计算圆面积

如果没有return返回值,直接调用函数;如果有return返回值,函数的运行结果作为一个值使用;

如果没有参数,只能计算半径为10的情况;如果有参数,通过修改参数可以计算不同半径;

无参数,无返回值

def area1():
    print(3.14*10*10)

area1()                 #314.0

有参数,无返回值

def area1(r):
    print(3.14*r*r)

area1(10)                 #314.0

无参数,有返回值

def area1():
    return 3.14*10*10

print(area1())                #314.0

有参数,有返回值

def area1(r):
    return 3.14*r*r

print(area1(10))                #314.0

局部函数

Python 支持在函数内部定义函数,此类函数又称为局部函数,默认情况下局部函数只能在其所在函数的作用域内使用。

def jisuan(type,n):
    def add(n):
        return n+n
    def double(n):
        return n*3
    def el(n):
        return n

    if type == 'add':
        return add(n)
    elif type == 'double':
        return double(n)
    else:
        return el(n)

print(jisuan('add',20))     #40
print(jisuan('double',20))  #60
print(jisuan('addd',20))    #20

变量作用域

Python变量作用域(全局变量和局部变量)

一个程序的所有的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的

局部变量

在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能使用了,我们将这样的变量称为局部变量(Local Variable)。

当函数被执行时,Python 会为其分配一块临时的存储空间,所有在函数内部定义的变量,都会存储在这块空间中。而在函数执行完毕后,这块临时存储空间随即会被释放并回收,该空间中存储的变量自然也就无法再被使用。

全局变量

除了在函数内部定义变量,Python 还允许在所有函数的外部定义变量,这样的变量称为全局变量(Global Variable)。

和局部变量不同,全局变量的默认作用域是整个程序,即全局变量既可以在各个函数的外部使用,也可以在各函数内部使用。

方式一:在函数体外定义的变量
x = '认识全局变量'

def str1():
    x = '认识局部变量'
    print(x)

print(x)     #认识全局变量
str1()       #认识局部变量
print(x)     #认识全局变量
方式二:在函数体内定义全局变量,使用 global 关键字对变量进行修饰后,该变量就会变为全局变量
x = '认识全局变量'

def str1():
    global x
    x = '认识局部变量'
    print(x)

print(x)     #认识全局变量
str1()       #认识局部变量
print(x)     #认识局部变量

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

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

相关文章

ElasticSearch——地理坐标查询

Elasticsearch 语雀(完整笔记) 所谓的地理坐标查询,其实就是根据经纬度查询,官方文档:Geo queries | Elasticsearch Guide [8.8] | Elastic 常见的使用场景包括: 携程:搜索我附近的酒店滴滴…

Linux服务器Jenkins部署打包Flutter

程序猿日常 记Jenkins部署打包Flutter参考Linux服务器Jenkins部署打包Flutter 安装Flutter环境 Flutter SDK 下载地址 配置服务器Flutter环境变量 创建任务 #!/bin/bash -ilex source /etc/profileflutter clean flutter pub get flutter build apk

8.OpenCV-识别身份证号码(Python)

需求描述: 通过OpenCV识别身份证照片上的身份证号码(仅识别身份证号码) 实现思路: 1.将身份证号中的0,1,2,3,4,5,6,7,8,9作为模板,与身份证照片中的身份证号码区域进行模板匹配。 2.先要制作一个身份证号码模板&am…

坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第1期培训

中国邮政储蓄银行金融科技前沿技术发展与应用场景第1期培训圆满结束 中国邮政储蓄银行拥有优良的资产质量和显著的成长潜力,是中国领先的大型零售银行。2016年9月在香港联交所挂牌上市,2019年12月在上交所挂牌上市。中国邮政储蓄银行拥有近4万个营业网点…

基于java+swing+mysql图书管理系统V6.0

基于javaswingmysql图书管理系统V6.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.登陆界面5.管理员-读者注册6、管理员-书籍入库7、管理员-书籍更新8、管理员-书库管理9、管理员-读者更新10、用户-还书11、用户-借书 四、其它1.其他系统实现五.获取源码 一、系统…

【3Ds Max】常用的基本初始化设置

目录 一、单位设置 二、首选项设置 2.1 撤销次数设置 2.2 设置保存时压缩 2.3 设置自动保存时间间隔 2.4 选中模型时高亮显示 一、单位设置 我们以设置毫米单位为例 在 “自定义-》单位设置” 中进行设置 点击“系统单位设置”按钮 如下设置就表示:1个单位长度…

Jmeter_响应数据为空以及中文乱码

目录 一、响应数据为空 解决方法 二、响应中文乱码 产生原因 解决方法 一、响应数据为空 最近做测试接口,使用同样的请求方式、地址、参数和header,在postman中能正常响应,接收数据的也正常,但是在Jmeter中,虽然…

FPGA-DFPGL22学习4-仿真平台学习

文章目录 前言一、仿真的步骤二、使用步骤1.PDS编译仿真库2.编写仿真tb文件3.选择行为仿真4.查看观察窗口5.修改代码后重新编译 总结 前言 和原子哥一起学习FPGA 开发环境:正点原子 ATK-DFPGL22G 开发板 参考书籍: 《ATK-DFPGL22G之FPGA开发指南_V1.1…

OSPF故障定位没思路?照这篇抄就行

我的网工朋友大家好。 好久没聊OSPF技术了,相关基础且经典的内容,公众号陆陆续续分享过一些,趣味科普,面试考题,实验操作,都有涉及。 按照惯例,先给你整一波优质的往期内容: 《 5个…

考研算法30天:堆排序 【堆排序】

原先自己写过这道题的题解,但是当时水平有限所以这次重写一次。 (1条消息) 堆的创建(题目:堆排序)_空が笑っています的博客-CSDN博客 算法介绍 我在上陈越姥姥的课程之后我学会了如何用数组表示一个堆(堆其实就是根节点大于或者…

本地已安装Git。 但是VSCode提示:未找到 Git。点击Git侧边栏选项,按钮都是灰的

问题: 解决方案: 1、点击设置 2、在输入框中输入git.path,然后点击“在settings.json中编辑”, 打开settings.json文件,进行git.path配置; 3、配置git.path,下面两种格式都可以,设…

Google Hacking爬虫修改版

这里是个演示 项目是根据这个项目进行修改的 修改了哪些东西: 新增个模式,一个Request,一个Selenium原版只能读第一页,修改成可以自动判断添加了更多的搜索摸板输出csv,url标题域名 针对第三点: 添加了一…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第十三章 网络应用安全上)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、网络攻击的步骤1、搜集初始信息2、搜确定攻击目标的IP地址范围3、扫描存活主机开放的端口4、分析目标系统 二、口令安全1、口令破解2、口令破解方法3、设置安全的口令4、…

【pycharm】 Anaconda3 和 pycharm 安装配置1

anaconda3 下载地址 Anaconda3-2023.03-1-Windows-x86_64.exeC:\ProgramData\anaconda3 安装路径解释器默认是从online下载 或者3.10 实际上我在tbuild下有python3.9

python spider 爬虫 之 解析 xpath 、jsonpath、BeautifulSoup (二)

Jsonpath 安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jsonpath 使用:jsonpath 只能解析本地文件,跟xpath不一样 objjson.load(open(‘json文件’,‘r’, encoding‘utf-8’)) json.load(是文件,…

关于云服务器CentOS7.6版本安装宝塔面板后,点击终端无响应解决方案

问题再现: 下面是我沟通宝塔客服后,给的解决方案。 我在百般无奈的情况下、卸载了宝塔后,最终躺平,选择了问宝塔官方客服 1、从华为提供的远程登录方式选一种 二、输入服务器密码通过ssh远程登录 服务器 二、执行宝塔官方提供的 命令执…

centos7 配置jenkins run docker

本机环境已有jdk11 一、安装配置maven环境 1、下载maven wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz 2、解压 tar -zxvf apache-maven-3.9.3-bin.tar.gz 3、移动位置 mv apache-maven-3.9.3 /usr/local/ 4、加入环境变…

Nvidia官方视频编解码性能

NVIDIA VIDEO CODEC SDK | NVIDIA Developer 1080P解码性能: 720P解码性能: 详细的参见官方的链接地址,对于GPU的解码fps能力,可以作为评估参照!

Intellij IDEA 插件开发 | 京东云技术团队

写在前面 很多idea插件文档更多的是介绍如何创建一个简单的idea插件,本篇文章从开发环境、demo、生态组件、添加依赖包、源码解读、网络请求、渲染数据、页面交互等方面介绍,是一篇能够满足基本的插件开发工程要求的文章。 如有疏漏欢迎指正&#xff0…

汇编端口

输出年月日 时分秒 assume cs:code , ds:data data segmentdb 0 data ends code segment start:mov ax,datamov ds,axmov cx,3mov di,100mov bl,0mov ah,0mov byte ptr ds:[0],0 st1:mov al,blout 70h,alin al,71hcall showptrsub di,2add bl,2add byte ptr ds:[0],1loop st1mo…