python----函数、文件、以及高级特性

news2024/11/19 3:31:06

文章目录

  • 前言
  • 一、函数的基本概念
  • 二、文件
    • OS模块
    • json模块
  • 高级特性
    • 生成式
    • 生成器
    • 闭包
    • 装饰器

前言

一、函数的基本概念

**全局变量:**在函数外边定义的变量,全局生效
**局部变量:**在函数里边定义的变量,局部生效
如果要在函数中修改全局变量,不能直接修改;需要用global关键字声明修改的变量是全局变量;主要是不可变数据类型,对于可变数据类型,不需要声明

在这里插入图片描述

形参实参
常见的四种形参:
必选参数,默认参数,可变参数,关键字参数
在这里插入图片描述
关键字参数:
可以传递key,value
def enroll(name,age=18,**kwargs):\

匿名函数:
lambda
递归函数:
函数在内部调用自己本身

二、文件

mode:
r:只能读文件
w:只能写入(而且会清空之前的文件内容)
a+:读写(文件追加写入内容)
with语句:
一般情况下我们打开文件进行读写操作之后都需要关闭文件,防止占用资源,但是这样会很麻烦,所以我们引入with语句,这样在执行玩with语句中的内容之后,会自动关闭文件释放空间
with open(‘doc/test.txt’,‘w+’)as f:
f.wirte(‘hello world\n’)
f.seek(0,0) 移动指针到文件最开始
f.seek(0,2) 移动指针到文件末尾
print(f.read()) 读取文件内容

OS模块

获取主机名以及主机信息
在这里插入图片描述

try:可能会出现报错的代码
except:如果出现异常,执行的内容
finally:是否有异常都会执行的内容
获取环境变量:
envs = os.environ
print(envs)
目录名和文件名的拼接:
os.path.dirname 获取某个文件对应的目录名
file 当前文件
join 拼接,将目录名和文件名拼接起来
在这里插入图片描述

json模块

json是一种轻量级的数据交换格式
将python对象编码成json字符串
在这里插入图片描述
将json字符串解码成python对象
在这里插入图片描述
将字典形式的数据转换为excel形式
在这里插入图片描述
小练习
在这里插入图片描述
在这里插入图片描述

高级特性

生成式

可以用列表生成式来优化我们的代码
在这里插入图片描述
但是列表生成式的使用也要根据具体情况而定
在这里插入图片描述 集合生成式、字典生成式
在这里插入图片描述

生成器

一边循环一边计算的机制

1、如何创建生成器:列表生成式的改写:将[]改为()
2、yield关键字
在这里插入图片描述
生成器的特点:减少内存占用,不会堆积在内存中,一边循环一边计算。在yield处中断,不会过于占cpu

闭包

闭包:
1、函数里边嵌套函数
2、外部函数的返回值是内部函数的引用
3、内部函数可以使用外部函数的变量
在这里插入图片描述

装饰器

装饰器就是用来装饰函数的工具
功能:在不改变源代码的情况下,添加额外功能
如何实现装饰器:基于闭包
在这里插入图片描述
含参的装饰器
在这里插入图片描述
存在多个装饰器的时候,执行装饰的内容是从上到下,被装饰的顺序是从下到上

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

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

相关文章

【BL808】缘起:M1s开发板的第一个示例-LVGL

一、sipeed M1s介绍 1.1 M1s开发板介绍 1.1.1 开发板特性 板载两个USB口(一个用于USB-TTL,一个用于通过模拟U盘的方式烧录c906的固件)板载1.69 inch的触摸屏和摄像头接口板载MIC、LED和TF卡座板载一个BL702做成的集USB-TTL和JTAG的调试器。…

面试收集汇总

最近的工作情况,难度比较大的项目。 http servlet生命周期,在springmvc对原生servlet做了一个怎么样的包装来实现一个自己的mvc能力的? 1.加载和实例化。Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检…

[附源码]JAVA毕业设计养老院老人日常生活管理系统(系统+LW)

[附源码]JAVA毕业设计养老院老人日常生活管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

尝试使用CubeMX做stm32开发之十五:FatFs的移植方法

一、数据类型 FatFs使用的数据类型在ff.h中定义,适用于绝大多数平台: BYTE 8-bit无符号整形数据,范围0~28-1 WORD 16-bit无符号整形数据,范围0~216-1 DWORD 32-bit无符号整形数据,范围0~232-1 QWORD 64-bit无符…

【C#基础学习】第十八章、接口

目录 接口 1.接口 1.1 声明接口 1.2 实现接口&调用接口 1.2.1 显式接口实现方式 1.2.2 显式接口实现&隐式接口实现的使用场景 1.3 as运算符 2.接口继承接口 接口 1.接口 接口的意义:C#的继承不支持一个子类拥有多个父类。而接口的存在就是为了弥补这…

C# 数组的声明与分配空间

一 数组的概述 数组是多个相同类型数据的组合;数组属引用类型; 1 一维数组声明 一维数组的声明方式: int[] a1;注意方括号写到变量名的签名; double [] b mydate[] c; C# 语言中声明的数组时不能指定其长度(数组中元素的个数)…

【RPA进阶】 一文了解使用Visual Studio扩展UiPath Activity Creator创建自定义Activity

🐋作者简介:博主是一位.Net开发者,同时也是RPA和低代码平台的践行者。 🐬个人主页:会敲键盘的肘子 🐰系列专栏:UiPath 🦀专栏简介:UiPath在传统的RPA(Robotic…

Dockerfile构建Springboot镜像

Dockerfile构建Springboot镜像 文章目录Dockerfile构建Springboot镜像简介实例演示前期准备Docker环境Springboot项目Dockerfile文件Windows要求构建镜像启动测试Linux要求构建镜像启动测试简介 容器技术大流行的时代,也是docker大流行的时代。 此文章以一个简单的实…

无线网卡收包流程

环境 x86_64 Linux, AR9462 无线网卡,PCIe 接口 ath9k 驱动 收包过程 ① 无线网卡从空气中捕获到无线数据包 【物理层】 ② 无线网卡把帧 DMA 到内存的 Ring Buffer ③ 无线网卡向 CPU 发起中断请求 ④ CPU 响应中断,执行 ISR,…

fatfs相关宏定义说明

fat16文件系统DBR 宏定义如下: #define BS_JmpBoot 0 //跳转指令。3字节。/* x86 jump instruction (3-byte) */ #define BS_OEMName 3 //OEM名称。8字节。/* OEM name (8-byte) */ #define BPB_BytsPerSec 11 //扇区字节数。2字节。/* Sector size [byte…

Python学习基础笔记四十五——包

C:\Program Files\Python310\Lib 1、 包的概念:把解决同一类问题的模块放在同一个文件夹里,我们就称为包。 2、在PyCharm中创建一个包: 文件夹中会有一个init.py文件。 在Python3中没有这个__init__.py文件也没有问题。 3、在包A和包B下有同…

Go设计与实现 -- map哈希表

Go语言中的哈希表有它自己的一套实现方式。和Java的哈希表还是有些不同的,但是为了保证知识体系的完整性,我还是准备从头开始说起。 哈希表设计原理 哈希表的读写时间复杂度是O(1),因为它提供了键值之间的映射。要实现一个性能优异的哈希表…

spring——AOP面向切面编程——基于XML的AspectJ AOP开发(转载)

我们可以在 Spring 项目中通过 XML 配置,对切面(Aspect 或 Advisor)、切点(PointCut)以及通知(Advice)进行定义和管理,以实现基于 AspectJ 的 AOP 开发。Spring 提供了基于 XML 的 AOP 支持,并提供了一个名为“aop”的命名空间,该…

Docker笔记--使用Docker部署MySQL

1--Docker部署MySQL ① 搜索MySQL镜像 docker search mysql ② 拉取MySQL镜像 docker pull mysql:latest ③ 创建MySQL容器 首先在宿主机创建MySQL的映射目录,即数据卷: cd /home mkdir mysql cd mysql 之后在当前目录创建MySQL容器($PW…

【事故复盘】吐血整理一场线上事故——CPU飙升200%

🔍 经验使你在第二次犯相同错误时及时发现。 —— 琼斯 🔖 事故时间:12.7日 17:43 ~ 21:03 🔖 事故影响:服务接口查询慢,用户查看数据转圈 🔖 事故过程: 那是一个宛如平静的下午&…

128-150-mysql-高级篇-索引及调优篇

115-mysql-高级篇-索引及调优篇: 索引及调优篇 1、索引的创建与设计原则 1. 索引的声明与使用 1.1 索引的分类 从功能逻辑上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。按照物理实现方式,索引可以分…

BUUCTF Web1

[极客大挑战 2019]EasySQL 试了个万能密码就能上去了 flag: flag{8e685472-02e4-440a-b04e-b0d9b6d9c27f} [HCTF 2018]WarmUp 看源码有个source.php <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source&qu…

Mysql 创建存储过程和函数及各种例子

Mysql 创建存储过程和函数及各种例子1. Mysql 创建存储过程1.1 前言知识1.1.1 语法结构1.1.2 简单解释1.2 创建存储过程入门例子1.2.1 无参存储过程1.2.1.1 不带变量1.2.1.2 带变量1.2.2 有入参的存储过程1.2.3 有出参的存储过程1.2.4 有入参和存储的存储过程1.2.5 inout的存储…

如何将镜像上传至阿里云?如何从阿里云中拉取自己的镜像?

目录 如何将制作好的镜像上传至阿里云&#xff1f; 一、前期准备 1、注册阿里云账户 2、登录账号 3、配置Docker加速器 4、创建镜像仓库的命名空间&#xff08;私有的&#xff09; 5.创建镜像仓库(创建镜像仓库时要绑定一个代码托管网站&#xff0c;例如&#xff1a;githu…

Zookeeper集群搭建

文章目录前言Zookeeper集群搭建&#xff08;一&#xff09;LeaderFollower模式&#xff08;二&#xff09;下载zookeeeper的压缩包&#xff08;三&#xff09;解压&#xff08;四&#xff09;修改配置文件&#xff08;五&#xff09;添加myid配置&#xff08;六&#xff09;安装…