当前位置: 首页 > news >正文

Python基础2

1. python函数定义

函数定义语法:

def 函数名(传入参数):

        函数体

        return 返回值

——————————————

  1. 参数如果不需要,可以省略
  2. 返回值如果不需要,可以省略
  3. 函数必须先定义在使用

注意:当无返回值是,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 列表的常用操作

常用操作有:

  1. 插入元素
  2. 删除元素
  3. 清空元素
  4. 修改元素
  5. 统计元素个数
  • 列表的查询

查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错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 返回值 —————————————— 参数如果不需要,可以省略返回值如果不需要,可以省略函数必须先定义在使用 注意&#xff…...

【项目立项管理】

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

【验证码的识别】—— 极验验证码的识别

前言 (结尾有彩蛋欧) 目前,许多网站采取各种各样的措施来反爬虫,其中一个措施便是使用验证码。随着技术的发展,验证码的花样越来越多。验证码最初是几个数字组合的简单的图形验证码,后来加入了英文字母和混…...

华为OD机试 -旋转骰子(Python) | 机试题算法思路 【2023】

最近更新的博客 华为OD机试 - 卡片组成的最大数字(Python) | 机试题算法思路 华为OD机试 - 网上商城优惠活动(一)(Python) | 机试题算法思路 华为OD机试 - 统计匹配的二元组个数(Python) | 机试题算法思路 华为OD机试 - 找到它(Python) | 机试题算法思路 华为OD机试…...

C生万物 | 模拟实现库函数strcpy之梅开n度

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

家庭理财,轻松记账修改收支记录这样操作

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

河南工程学院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 联合各方巨头 想要推出 字符连续的编码集 这新编码集 具体长什么样 呢&#xff1…...

基于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种设计模式可分为三类:结构型模式(侧重类与对象之间的组合)、行为型模式(侧重…...

Beyond Compare 5密钥生成终极指南:快速激活与完全使用教程

Beyond Compare 5密钥生成终极指南:快速激活与完全使用教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare是一款广受欢迎的文件对比工具,但当30天试用期…...

GitHub个人访问令牌实战:告别密码认证,安全推送代码与创建PR

1. 项目概述与核心痛点如果你刚开始接触开源贡献,或者最近在尝试向GitHub推送代码时,大概率会遇到一个令人困惑的拦路虎:在终端执行git push命令后,系统提示你输入用户名和密码。你很自然地输入了登录GitHub网站用的账号密码&…...

R 和 Python 数据可视化必备库的精华指南

原文:towardsdatascience.com/the-essential-guide-to-r-and-python-libraries-for-data-visualization-33be8511c976 成为某些编程语言的专业人士是每位有志于数据科学的专业人士的目标。在无数语言中达到一定水平是每个人的关键里程碑。 对于数据工程师来说&…...

OpenClaw AVP:构建统一音视频协议栈,实现多协议流媒体处理

1. 项目概述:一个面向音视频处理的协议栈最近在整理一些音视频项目时,又翻到了avp-protocol/openclaw-avp这个仓库。对于从事流媒体、实时通信或者音视频编解码开发的工程师来说,看到avp这个缩写,第一反应多半是 “Audio-Video Pr…...

ARM SCTLR2_EL2寄存器解析与虚拟化安全控制

1. ARM SCTLR2_EL2寄存器架构解析SCTLR2_EL2是ARMv8/v9架构中EL2(Hypervisor)级别的扩展系统控制寄存器,作为标准SCTLR_EL2的补充,它通过掩码位机制实现了对关键系统功能的细粒度控制。这个64位寄存器主要包含两类功能字段&#x…...

大厂4年经验Java面试题深入解析(10道)

大厂 4 年经验 Java 面试题深入解析(10 道) 这篇文章不是面向校招,也不是面向只会背八股的初级候选人,而是针对已经有 4 年左右实际项目经验、准备冲击大厂的 Java 工程师。 大厂面试更看重你是否能把基础原理、线上问题、设计取舍…...

Nix-on-Droid测试与部署最佳实践:确保您的移动环境稳定可靠

Nix-on-Droid测试与部署最佳实践:确保您的移动环境稳定可靠 【免费下载链接】nix-on-droid Nix-enabled environment for your Android device. [maintainerst184256,Gerschtli] 项目地址: https://gitcode.com/gh_mirrors/ni/nix-on-droid 想要在Android设…...

苏峻:一个“产品偏执狂”的20年跨界史,从讲台到造车,他到底在疯什么?icar

苏峻:一个“产品偏执狂”的20年跨界史,从讲台到造车,他到底在疯什么?一个50岁的清华大学设计学博士,当过15年大学老师,做过空气净化器,卖过200万台,现在又跑去造车。有人说他是疯子&…...

量子退火误差缓解:经典阴影与局部虚拟纯化技术

1. 量子退火中的误差挑战与经典阴影方法量子退火(Quantum Annealing, QA)作为量子计算领域的重要算法,在优化问题求解中展现出独特优势。然而,实际硬件实现时面临的退相干问题严重制约了其计算精度。传统量子纠错方案需要大量物理…...

被安排做“脏活累活”怎么办?聪明人把它变成了核心竞争力

在软件测试的职业旅程中,几乎每一位从业者都会遇到这样的时刻:领导把最繁琐的模块分给你,把重复度最高的回归用例交给你,把无人问津的旧系统兼容性测试派给你。这些任务往往技术含量看似不高、耗时巨大且难以在简历上写出亮点&…...