Python基础2
1. python函数定义
函数定义语法:
def 函数名(传入参数):
函数体
return 返回值
——————————————
- 参数如果不需要,可以省略
- 返回值如果不需要,可以省略
- 函数必须先定义在使用
注意:当无返回值是,python实际上返回了一个参数:None。
2. global关键字
使用global关键字可以在函数内部声明变量为全局变量,如下所示:
3. python数据容器
数据容器根据特点不同,如:
- 是否支持重复元素
- 是否可以修改
- 是否有序
分为了五类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)。
3.1 数据容器:list(列表)
3.1.1 列表的定义
变量名称 = [元素一,元素二,元素三,元素四,。。。]
定义空列表:
变量名称 = []
变量名称 = list()
列表内的每一个数据,称之为元素
- 以【】作为标识
- 列表内每一个元素之间用“,”逗号隔开
3.1.2 列表的下标索引
如图,列表中的每一个元素都有其位置上的下标索引,从前向后,从0开始依次递增。
或者也可以反向索引,也就是从后向前,从-1开始依次递减(-1,-2,-3,。。。)
如果列表是嵌套列表,同样可以进行下标索引:
例子如下:
3.1.3 列表的常用操作
常用操作有:
- 插入元素
- 删除元素
- 清空元素
- 修改元素
- 统计元素个数
- 列表的查询
查找某元素的下标
功能:查找指定元素在列表的下标,如果找不到,报错ValueError
语法:列表.index(元素)
- 列表的修改
修改特定位置(索引)的元素值:
语法:列表【下标】= 值
- 列表插入元素
语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素。
- 列表元素的追加
语法:列表.append(元素),将指定元素追加到列表的尾部。
另外,列表除了能追加单个元素,还可以追加一批元素:
语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部。
- 列表元素删除
语法1:del 列表【下标】
语法2:列表.pop(下标)
此外,python还可以删除某元素在列表中的第一个匹配项
语法:列表.remove(元素)
- 清空列表内容
语法:列表.clear()
- 统计某一个元素在列表中的数量
语法:列表.count(元素)
- 列表长度
语法:len(列表)
——————————————————
3.2 数据容器:tuple(元组)
由于列表可以修改,当我们需要不可修改的数据容器是,元组就出现了。
元组一旦定义完成,就不可修改。
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不用的数据类型。
定义:tuple = (元素1,元素2,元素3,元素4,。。。)
注意:当元组只有一个数据,这个数据后面要添加逗号
3.2.1 下标查找
语法:元组.index()
3.2.2 统计某元素个数
语法:count()
3.2.3 统计长度len()
语法:len()
特例:我们知道元组的内容不可修改,但如果在元组内嵌套了list,那么list内的内容就可以修改。
3.3 数据容器:str(字符串)
字符串是字符的容器,一个字符串可以存放任意量的字符。
同时,字符串也支持下标,每一个字符都占有一个下标索引。
同元组一样,字符串也是一个不可修改的数据容器。所以:
- 修改指定下标的字符
- 移除指定下标的字符
- 追加字符
以上操作均无法完成,如果必须要修改,只能在创建一个新的字符串。
- 查找特定字符串的下标索引值
语法:字符串.index(字符串)
- 字符串的替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串1内的全部替换为字符串2。
注意:不是修改字符串本身,而是得到一个新的字符串。
- 字符串的分割
语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串用逗号划分为多个字符串,并存入列表对象中。
注意:字符串本身不变,而是得到了一个列表对象。
- 字符串去除前后空格
语法:字符串.strip()
- 字符串去除前后指定字符串
语法:字符串.strip(字符串)
- 统计字符串某字符串出现次数
语法:字符串.count(字符串)
- 统计字符串长度
语法:len(字符串)
3.4 数据容器的切片
序列:序列是指内容连续有序,可使用下标索引的一类数据容器。
切片:从一个序列中,取出一个子序列。
语法:序列【起始下标:结束下标:步长】
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列。
起始下标表示从何处开始,可以留空,留空表示从头开始
结束下标(不包含)表示从何处结束,可以留空,留空表示取到结尾
步长表示,依次取出元素的间隔:
- 步长1表示:一个一个取元素
- 步长2表示:每次跳过1个元素
- 步长n表示:每次跳过n-1个元素
- 步长为负数表示:反向取(注意,起始下标和结束下标也要反向标记)
注意:此操作不会影响序列本身,而是得到一个新的序列
3.5 数据容器:set(集合)
前面说的列表、元组、字符串的局限性在于:他们都支持重复元素。
如果实际情况需要对内容进行去重处理,就需要用集合了。
集合:不支持元素的重复(自带去重功能),并且内容无序。集合使用{}
定义:集合 = {元素,元素,元素,。。。}
3.5.1 集合修改
由于集合是无序的,所以集合不支持下标索引访问数据。
但是集合和列表一样,是允许修改的。
- 添加新元素
语法:集合.add(元素)
- 移除元素
语法:集合.remove(元素)
- 随机取出元素
语法:集合.pop()
结果:会得到一个元素的结果,同时集合被修改,元素被移除。
- 清空集合
语法:集合.clear()
- 取出两个集合差集
语法:集合1.difference(集合2)
功能:取出集合1有而集合二没有的元素,得到一个新集合
- 消除两个集合的差集
语法:集合1.difference_update(集合2)
功能:在集合1内,删除和集合2相同的元素。集合1被修改,集合2不变。
- 两个集合合并
语法:集合1.union(集合2)
功能:将集合1和集合2组合成新集合,得到一个新集合,集合1和集合2不变。
- len()
统计集合元素数量。
——————————————————
集合不支持下标索引,所以不能用while循环,可以用for循环。
3.6 数据容器:dict(字典)
3.6.1 字典的定义
python中的字典:key->value
字典的定义:同集合一样使用{},存储的元素是键值对。
字典 = {key:value,key:value,。。。}
同时,字典的key不可重复。如果重复,程序存储最后一个key。
- 字典取数据
字典同样可以嵌套。
3.6.2 字典的常用操作
- 新增元素
语法:字典【key】 = value。
- 更新元素
语法:字典【key】 = value。
- 删除元素
语法:字典.pop(key)。
- 清空字典
语法:字典.clear()
- 获取全部key
语法:字典.keys()
- 遍历字典
语法:字典同样不可用while循环,可用for循环:for key in 字典.keys()
- 计算字典内全部元素(键值对)数量
语法:len(字典)
3.7 数据容器对比
3.8 数据容器通用操作
- len(容器):求元素个数
- max(容器):求最大元素
- min(容器):求最小元素
- list(容器):将指定容器转换为列表
- str(容器):将指定容器转换为字符串
- tuple(容器):将指定容器转换为元组
- set(容器):将指定容器转换为集合
- sorted(容器,【erverse = True】):将指定容器进行排序,排序后都会得到一个list对象。
相关文章:

Python基础2
1. python函数定义 函数定义语法: def 函数名(传入参数): 函数体 return 返回值 —————————————— 参数如果不需要,可以省略返回值如果不需要,可以省略函数必须先定义在使用 注意ÿ…...

【项目立项管理】
项目立项管理 很杂,可以根据左边的列表查看自己不会的 。。。 立项管理主要是解决项目的组织战略符合性问题 开发所需的成本和资源属于经济可行性 承建方组织资源和项目的匹配程度 内部立项目的: 为项目进行资源分配,确定项目绩效目标&am…...

【验证码的识别】—— 极验验证码的识别
前言 (结尾有彩蛋欧) 目前,许多网站采取各种各样的措施来反爬虫,其中一个措施便是使用验证码。随着技术的发展,验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码,后来加入了英文字母和混…...
华为OD机试 -旋转骰子(Python) | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 卡片组成的最大数字(Python) | 机试题算法思路 华为OD机试 - 网上商城优惠活动(一)(Python) | 机试题算法思路 华为OD机试 - 统计匹配的二元组个数(Python) | 机试题算法思路 华为OD机试 - 找到它(Python) | 机试题算法思路 华为OD机试…...

C生万物 | 模拟实现库函数strcpy之梅开n度
文章目录【梅开一度】:观察库函数strcpy()的实现【梅开二度】:模仿实现strcpy()【梅开三度】:优化简练代码【梅开四度】:assert()断言拦截【梅开五度】:const修饰常量指针【梅开六度】:还可以有返回值哦&am…...

家庭理财,轻松记账修改收支记录这样操作
我们在记账的时候难免会出现记错或者想修改的地方,又或者是想将之前太久没有用的记账记录删除掉,今天,小编就教大家如何修改收支记录,一起接着往下看吧! 第一步,运行【晨曦记账本】在软件主界面中ÿ…...

河南工程学院2.17蓝桥杯培训
乘法口诀数列:https://www.acwing.com/problem/content/3466/ 剪绳子:https://www.acwing.com/problem/content/68Sin SinSine之舞:http://lx.lanqiao.cn/problem.page?gpidD5272 数列:https://www.acwing.com/problem/content/…...

【JavaSE】数据类型与变量
JAVA之父:詹姆斯高斯林 (James Gosling) 前言: 大家好,我是程序猿爱打拳。今天我给大家讲解的是Java基础中的数据类型。主要讲解的是各个类型的应用场景以及注意事项。 目录 1.数据类型 2.常量与变量 2.1常量 2.2变…...

生成模型技术发展过程
生成模型生成模型和判别模型的差异生成模型的目标是在给定了数据集D,并且假设这个数据集的底层分布(underlying distribution)是Pdata,我们希望够近似出这个数据分布。如果我们能够学习到一个好的生成模型,我们就能用这个生成模型为下游任务做…...

计算机网络第2章(物理层)学习笔记
❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…...
4564: 保留尾部*
描述规定输入的字符串中只包含字母和*号,除了尾部的*号之外,请将字符串中其他*号全部删除。输入输入数据包括一串字符串,只包含字母和*,总长度不超过80。输出输出按要求删除*后的字符串。样例输入*******A*BC*DEF*G****样例输出AB…...

安卓项目搭建grpc环境
本篇文章使用的IDE是Android Studio。这里先吐槽一句,安卓项目搭建grpc环境,不管是引入插件还是引入第三方库,对于版本的要求都极为苛刻,一旦版本不匹配就会报错,所以对于版本的搭配一定要注意。 下面介绍的这个版本搭…...

Flink01: 基本介绍
一、什么是Flink 1. Flink是一个开源的分布式,高性能,高可用,准确的流处理框架 (1)分布式:表示flink程序可以运行在很多台机器上, (2)高性能:表示Flink处理性…...
设计模式之单例模式
文章の目录一、什么是单例模式二、如何实现单例模式1、利用JavaScript中的全局对象2、静态成员改造参考写在最后一、什么是单例模式 单例模式也称为单体模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。 举个栗子:一个班级只有一…...

[oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
编码进化 回忆上次内容 上次 回顾了 字符编码的新陈代谢 ibm 曾经的EBCDIC 由于 字符不连续导致 后续 出现无数问题 随着 网络的发展 数据交换的 需要原来的小隐患现在 产生了 巨大问题 Bemer 联合各方巨头 想要推出 字符连续的编码集 这新编码集 具体长什么样 呢࿱…...

基于FFmpeg实现的无声音屏幕录制
UI自动化测试时,有时需要进行录屏操作,这时我们是不需要声音的,我们可以通过FFmpeg进行简单的录制工作。 以下是在windows10环境下,基于FFmpeg实现的简单录制: Ffmpeg简介: 功能:有非常强大的…...

【项目精选】基于JSP物流信息网(论文+源码+视频)
点击下载源码 近年来,随着时代的进步,社会随之不断发展,经济也快速发展起来了,人民的消费水平在不断地提高,平常的实体店消费已经不能满足人们的需求;在者,互联网技术的不断发展也为电子商务的兴…...

linux异步IO编程实例分析
在Direct IO模式下,异步是非常有必要的(因为绕过了pagecache,直接和磁盘交互)。linux Native AIO正是基于这种场景设计的,具体的介绍见:KernelAsynchronousI/O (AIO)SupportforLinux。下面我们就来分析一下…...
日常英语口语练习-情景交际场景25(三)
登山踏青m: hey Carol, what are you doing this weekend?o: im going hiking /haikiŋ/登山with my husband and our hiking clubm: you have a hiking culb?o: yes, we do, we have 30 to 40 people of all ages and skill levelsm: thats great, do you gus do…...

Qt 工程师进阶技术23种设计模式
Qt 工程师进阶技术23种设计模式【1】23种设计模式【1】23种设计模式 设计模式是解决特定问题的一系列套路,这套方案提高代码可复用性、可读性、稳健性、可维护性及安全性。 23种设计模式可分为三类:结构型模式(侧重类与对象之间的组合)、行为型模式(侧重…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...