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

No. 34 笔记 | Python知识架构与数据类型相关内容 | 实操

在今天的Python学习中,我对Python的知识架构有了更深入的理解,同时也对Python的数据类型及其操作有了全面的认识和实践。

一、Python知识架构理解

在这里插入图片描述

Python是一门功能强大且应用广泛的编程语言,其知识架构可以从多个层面来理解。

从整体结构上看,Python程序由模块组成,模块是组织代码的基本单位,它将相关的功能和代码封装在一起,便于管理和复用。模块中包含语句,语句是执行具体操作的指令,比如变量赋值、函数调用等。而语句又由表达式构成,表达式是产生值或结果的代码片段,例如数值运算、逻辑判断等。

从语言特性方面来说,Python具有简洁清晰的语法,使得代码易于编写和阅读。它支持多种编程范式,包括面向过程、面向对象和函数式编程,这使得开发者可以根据不同的需求和场景选择合适的编程方式。Python还拥有丰富的标准库和第三方库,涵盖了从文件操作、网络通信到数据分析、机器学习等众多领域,极大地提高了开发效率,降低了开发难度。

此外,Python的解释型特性使得代码可以在不同的平台上快速运行和调试,无需进行复杂的编译过程。其动态类型系统允许变量在运行时根据赋值的对象自动确定类型,这在一定程度上增加了代码的灵活性,但也需要开发者在编写代码时更加注意类型相关的问题,以避免潜在的错误。

二、Python的数据类型及操作

Python的数据类型丰富多样,每种类型都有其独特的特点和用途,以下是详细介绍及相关操作:

(一)数值类型

Python的数值类型主要包括整数(int)和浮点数(float)。

  • 四则运算
    • 加法:例如3 + 5,结果为8
    • 减法:7 - 2,结果是5
    • 乘法:4 * 6,得到24
    • 除法:9 / 3,结果为3.0(在Python 3中,整数除法默认返回浮点数)。
    • 取整除法:9 // 3,结果为3,只取商的整数部分。
    • 取余运算:10 % 3,结果是1,即10除以3的余数。
    • 幂运算:2 ** 3,表示2的3次方,结果为8
      在这里插入图片描述
(二)列表(List)

列表是Python中常用的有序集合,可以包含不同类型的元素,并且元素可以修改。

  • 索引访问
    • 正向索引:从0开始,例如my_list = [10, 20, 30, 40]my_list[0]获取到第一个元素10my_list[2]获取到第三个元素30
      在这里插入图片描述

    • 反向索引:从-1开始,my_list[-1]获取到最后一个元素40my_list[-2]获取到倒数第二个元素30

在这里插入图片描述

  • 高级语法操作
    • 切片:my_list[1:3]获取从索引1(包含)到索引3(不包含)的子列表,即[20, 30]my_list[:3]表示从开头到索引3(不包含),结果为[10, 20, 30]my_list[2:]表示从索引2(包含)到末尾,结果是[30, 40]
      在这里插入图片描述

    • 列表推导式:例如[i ** 2 for i in range(5)],会生成一个包含0到4的平方数的列表[0, 1, 4, 9, 16]

在这里插入图片描述

- 添加元素:`my_list.append(50)`,在列表末尾添加元素`50`。`my_list.insert(2, 25)`,在索引2的位置插入元素`25`。

在这里插入图片描述

- 删除元素:`my_list.remove(30)`,删除列表中第一个值为`30`的元素。`del my_list[1]`,删除索引为1的元素。

在这里插入图片描述

(三)元组(Tuple)

元组与列表类似,但元素不可修改,一旦创建,其内容就不能改变。

  • 索引访问

    • 同样支持正向和反向索引,例如my_tuple = (100, 200, 300)my_tuple[0]获取到100my_tuple[-1]获取到300
      在这里插入图片描述
  • 高级语法操作

  • 在这里插入图片描述

    • 虽然元组本身不可变,但如果元组中的元素是可变类型(如列表),则可以修改该可变元素。例如my_tuple = (100, [200, 300], 400),可以通过my_tuple[1].append(500)来修改元组中列表元素的值,此时元组变为(100, [200, 300, 500], 400),但元组的结构(元素个数和位置)并未改变。

    • 元组也支持切片操作,用法与列表相同,如my_tuple[1:3]

(四)字典(Dictionary)

字典是一种无序的键值对集合,通过键(key)来访问值(value),键必须是唯一的,而值可以重复。

# 字典的创建和键访问
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict['name'])  
print(my_dict['age'])  # 添加键值对
my_dict['gender'] = 'female'
print(my_dict)  # 修改值
my_dict['age'] = 26
print(my_dict)  # 删除键值对
del my_dict['city']
print(my_dict)  # 遍历字典的键
for key in my_dict.keys():print(key)# 遍历字典的值
for value in my_dict.values():print(value)# 遍历字典的键值对
for key, value in my_dict.items():print(key, value)
  • key访问

    • 例如my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'},通过my_dict['name']可以获取到值'Alice'my_dict['age']获取到25
  • 高级语法操作

    • 添加键值对:my_dict['gender'] = 'female',向字典中添加一个新的键值对。
    • 修改值:my_dict['age'] = 26,将age对应的值修改为26
    • 删除键值对:del my_dict['city'],删除指定键的键值对。
    • 遍历字典:
      • 遍历键:for key in my_dict.keys(): print(key),会依次输出字典的所有键。
      • 遍历值:for value in my_dict.values(): print(value),会依次输出字典的所有值。
      • 遍历键值对:for key, value in my_dict.items(): print(key, value),会依次输出字典的每个键值对。

在这里插入图片描述

三、列表、元组、字典的区分

列表、元组和字典虽然都用于存储数据,但它们在以下几个方面存在明显区别:

  • 可变性

    • 列表是可变的,这意味着可以在列表创建后添加、删除或修改元素。
    • 元组是不可变的,一旦创建,其元素就不能被修改(除非元素本身是可变类型,如列表,但这种修改不改变元组的结构)。
    • 字典的键是不可变的,但值是可变的,可以添加、删除或修改键值对。
  • 数据结构

    • 列表和元组是有序的序列,元素按照插入的顺序排列,并且可以通过索引访问。
    • 字典是无序的键值对集合,通过键来快速查找对应的值,而不是通过索引。
  • 使用场景

    • 当需要存储一组有序且可能会经常变动的数据时,列表是一个很好的选择,例如存储学生的成绩列表,可能会随时添加或修改成绩。

    • 元组适用于存储一些不希望被修改的数据,例如表示一个点的坐标(x, y),或者函数返回多个固定值时,使用元组可以保证数据的完整性和不可变性。

    • 字典常用于存储具有映射关系的数据,例如学生的姓名和成绩的对应关系,通过姓名(键)可以快速找到对应的成绩(值),方便数据的查找和管理。

通过对Python知识架构的梳理以及对数据类型的深入学习和操作,我对Python的理解和应用能力得到了进一步提升,为后续更深入的学习和实际项目开发奠定了坚实的基础。

相关文章:

No. 34 笔记 | Python知识架构与数据类型相关内容 | 实操

在今天的Python学习中,我对Python的知识架构有了更深入的理解,同时也对Python的数据类型及其操作有了全面的认识和实践。 一、Python知识架构理解 Python是一门功能强大且应用广泛的编程语言,其知识架构可以从多个层面来理解。 从整体结构上…...

【2024年华为OD机试】 (B卷,100分)- 字符串分割(Java JS PythonC/C++)

一、问题描述 题目解析 问题描述 给定一个非空字符串 s,要求将该字符串分割成若干子串,使得每个子串的 ASCII 码值之和均为“水仙花数”。具体要求如下: 若分割不成功,则返回 0;若分割成功且分割结果不唯一,则返回 -1;若分割成功且分割结果唯一,则返回分割后子串的数…...

Pix2Pix :用于图像到图像转换的条件生成对抗网络

1. 背景与问题 图像到图像的转换(Image-to-Image Translation)是计算机视觉中的一个重要任务,指的是在输入一张图像的情况下,生成一张风格、内容或其他条件不同但语义一致的图像。随着深度学习的发展,尤其是生成对抗网…...

基于VSCODE+GDB+GDBSERVER远程单步调试设备篇(可视化界面)

目录 说明 配置方法 1)VSCODE必备插件 2)配置launch.json文件,用于GDB调试 调试步骤 ​​​​​​目标板运行程序 1)已启动程序,通过attach方式进入调试 2)通过gdbserver启动时加载程序(程序路径根据实际情…...

CamemBERT:一款出色的法语语言模型

摘要 预训练语言模型在自然语言处理中已无处不在。尽管这些模型取得了成功,但大多数可用模型要么是在英语数据上训练的,要么是在多种语言数据拼接的基础上训练的。这使得这些模型在除英语以外的所有语言中的实际应用非常有限。本文探讨了为其他语言训练…...

0基础跟德姆(dom)一起学AI 自然语言处理18-解码器部分实现

1 解码器介绍 解码器部分: 由N个解码器层堆叠而成每个解码器层由三个子层连接结构组成第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接第三个子层连接结构包括一个前馈全连接子层…...

我的创作纪念日——我与CSDN一起走过的365天

目录 一、机缘:旅程的开始 二、收获:沿路的花朵 三、日常:不断前行中 四、成就:一点小确幸 五、憧憬:梦中的重点 一、机缘:旅程的开始 最开始开始写博客是在今年一二月份的时候,也就是上一…...

C++:bfs解决多源最短路与拓扑排序问题习题

1. 多源最短路 其实就是将所有源头都加入队列, 01矩阵 LCR 107. 01 矩阵 - 力扣(LeetCode) 思路 求每个元素到离其最近0的距离如果我们将1当做源头加入队列的话,无法处理多个连续1的距离存储,我们反其道而行之&…...

【面试题】JVM部分[2025/1/13 ~ 2025/1/19]

JVM部分[2025/1/13 ~ 2025/1/19] 1. JVM 由哪些部分组成?2. Java 的类加载过程是怎样的?3. 请你介绍下 JVM 内存模型,分为哪些区域?各区域的作用是什么?4. JVM 垃圾回收调优的主要目标是什么?5. 如何对 Jav…...

文献综述相关ChatGPT提示词分享

文献综述 ChatGPT 可以帮助提高文献综述的有效性和全面性。ChatGPT可以高效搜索和审查与宝子们课题研究相关的文献资料来源。一些给力的插件工具还可以帮助您总结复杂的研究论文并提取信息以更快更好地消化信息。合理的运用ChatGPT和GPTs可以提高文献综述的清晰度和质量&#…...

Excel 技巧14 - 如何批量删除表格中的空行(★)

本文讲如何批量删除表格中的空行。 1,如何批量删除表格中的空行 要点就是按下F5,然后选择空值条件以定位所有空行,然后删除即可。 按下F5 点 定位条件 选 空值,点确认 这样就选中了空行 然后点右键,选 删除 选中 下方…...

图片生成Prompt编写技巧

1. 图片情绪(场景氛围) 一张图片一般都会有一个情绪基调,因为作画本质上也是在传达一些情绪,一般都会借助图片的氛围去转达。例如:比如家庭聚会一般是欢乐、喜乐融融。断壁残垣一般是悲凉。还有萧瑟、孤寂等。 2.补充细…...

【STM32-学习笔记-4-】PWM、输入捕获(PWMI)

文章目录 1、PWMPWM配置 2、输入捕获配置3、编码器 1、PWM PWM配置 配置时基单元配置输出比较单元配置输出PWM波的端口 #include "stm32f10x.h" // Device headervoid PWM_Init(void) { //**配置输出PWM波的端口**********************************…...

TOSUN同星TsMaster使用入门——3、使用系统变量及c小程序结合panel面板发送报文

本篇内容将介绍TsMaster中常用的Panel面板控件以及使用Panel控件通过系统变量以及c小程序来修改信号的值,控制报文的发送等。 目录 一、常用的Panel控件介绍 1.1系统——启动停止按钮 1.2 显示控件——文本框 1.3 显示控件——分组框 1.4 读写控件——按钮 1.…...

【Web】2025-SUCTF个人wp

目录 SU_blog SU_photogallery SU_POP SU_blog 先是注册功能覆盖admin账号 以admin身份登录,拿到读文件的权限 ./article?filearticles/..././..././..././..././..././..././etc/passwd ./article?filearticles/..././..././..././..././..././..././proc/1…...

React进阶之react.js、jsx模板语法及babel编译

React React介绍React官网初识React学习MVCMVVM JSX外部的元素props和内部的状态statepropsstate 生命周期constructorgetDerivedStateFromPropsrendercomponentDidMount()shouldComponentUpdategetSnapshotBeforeUpdate(prevProps, prevState) 创建项目CRA:create-…...

在Linux上如何让ollama在GPU上运行模型

之前一直在 Mac 上使用 ollama 所以没注意,最近在 Ubuntu 上运行发现一直在 CPU 上跑。我一开始以为是超显存了,因为 Mac 上如果超内存的话,那么就只用 CPU,但是我发现 Llama3.2 3B 只占用 3GB,这远没有超。看了一下命…...

R 语言科研绘图第 20 期 --- 箱线图-配对

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

suctf2025

Suctf2025 --2标识为看的wp,没环境复现了 所有参考资料将在文本末尾标明 WEB SU_photogallery 思路👇 构造一个压缩包,解压出我们想解压的部分,然后其他部分是损坏的,这样是不是就可以让整个解压过程是出错的从而…...

Quinlan C4.5剪枝U(0,6)U(1,16)等置信上限如何计算?

之前看到Quinlan中关于C4.5决策树算法剪枝环节中,关于错误率e置信区间估计,为啥 当E=0时,U(0,1)=0.75,U(0,6)=0.206,U(0,9)=0.143? 而当E不为0时,比如U(1,16)=0.157,如图: 关于C4.5决策树,Quinlan写了一本书,如下: J. Ross Quinlan (Auth.) - C4.5. Programs f…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...