Python:核心知识点整理大全4-笔记

目录

2.6 Python 之禅

2.7 小结

3.1 列表是什么

3.1.1 访问列表元素

3.1.2 索引从 0 而不是 1 开始

3.1.3 使用列表中的各个值

3.2 修改、添加和删除元素

3.2.1 修改列表元素

3.2.2 在列表中添加元素

2. 在列表中插入元素

1. 使用del语句删除元素

1 处的代码使用del删除了列表motorcycles中的第一个元素——'honda':


2.6 Python 之禅

编程语言Perl曾在互联网领域长期占据着统治地位,早期的大多数交互式网站使用的都是 Perl脚本。彼时,“解决问题的办法有多个”被Perl社区奉为座右铭。这种理念一度深受大家的喜 爱,因为这种语言固有的灵活性使得大多数问题都有很多不同的解决之道。在开发项目期间,这 种灵活性是可以接受的,但大家最终认识到,过于强调灵活性会导致大型项目难以维护:要通过 研究代码搞清楚当时解决复杂问题的人是怎么想的,既困难又麻烦,还会耗费大量的时间。

经验丰富的程序员倡导尽可能避繁就简。Python社区的理念都包含在Tim Peters撰写的 “Python之禅”中。要获悉这些有关编写优秀Python代码的指导原则,只需在解释器中执行命令 import this。这里不打算赘述整个“Python之禅”,而只与大家分享其中的几条原则,让你明白 为何它们对Python新手来说至关重要。

>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.

Python程序员笃信代码可以编写得漂亮而优雅。编程是要解决问题的,设计良好、高效而漂 亮的解决方案都会让程序员心生敬意。随着你对Python的认识越来越深入,并使用它来编写越来 越多的代码,有一天也许会有人站在你后面惊呼:“哇,代码编写得真是漂亮!”

Simple is better than complex. 

如果有两个解决方案,一个简单,一个复杂,但都行之有效,就选择简单的解决方案吧。这 样,你编写的代码将更容易维护,你或他人以后改进这些代码时也会更容易。

Complex is better than complicated. 

现实是复杂的,有时候可能没有简单的解决方案。在这种情况下,就选择最简单可行的解决 方案吧。

Readability counts.

即便是复杂的代码,也要让它易于理解。开发的项目涉及复杂代码时,一定要为这些代码编 写有益的注释。

There should be one-- and preferably only one --obvious way to do it.

如果让两名Python程序员去解决同一个问题,他们提供的解决方案应大致相同。这并不是说 编程没有创意空间,而是恰恰相反!然而,大部分编程工作都是使用常见解决方案来解决简单的 小问题,但这些小问题都包含在更庞大、更有创意空间的项目中。在你的程序中,各种具体细节 对其他Python程序员来说都应易于理解。

Now is better than never

你可以将余生都用来学习Python和编程的纷繁难懂之处,但这样你什么项目都完不成。不要 企图编写完美无缺的代码;先编写行之有效的代码,再决定是对其做进一步改进,还是转而去编 写新代码。

2.7 小结

 在本章中,你学习了:如何使用变量;如何创建描述性变量名以及如何消除名称错误和语法 错误;字符串是什么,以及如何使用小写、大写和首字母大写方式显示字符串;使用空白来显示 整洁的输出,以及如何剔除字符串中多余的空白;如何使用整数和浮点数;使用数值数据时需要 注意的意外行为。你还学习了如何编写说明性注释,让代码对你和其他人来说更容易理解。最后, 你了解了让代码尽可能简单的理念。 在第3章,你将学习如何在被称为列表的变量中存储信息集,以及如何通过遍历列表来操作 其中的信息。


3.1 列表是什么

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。 鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是 个不错的主意。

在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。下面是一个简单的 列表示例,这个列表包含几种自行车

bicycles.py

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles) 

 如果你让Python将列表打印出来,Python将打印列表的内部表示,包括方括号:

['trek', 'cannondale', 'redline', 'specialized']

鉴于这不是你要让用户看到的输出,下面来学习如何访问列表元素。

3.1.1 访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。 例如,下面的代码从列表bicycles中提取第一款自行车:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
1 print(bicycles[0])

1处演示了访问列表元素的语法。当你请求获取列表元素时,Python只返回该元素,而不包 括方括号和引号:

trek

这正是你要让用户看到的结果——整洁、干净的输出。 你还可以对任何列表元素调用第2章介绍的字符串方法。例如,可使用方法title()让元素 'trek'的格式更整洁:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title()) 

这个示例的输出与前一个示例相同,只是首字母T是大写的。


3.1.2 索引从 0 而不是 1 开始

在Python中,第一个列表元素的索引为0,而不是1。在大多数编程语言中都是如此,这与列 表操作的底层实现相关。如果结果出乎意料,请看看你是否犯了简单的差一错误。 第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其 位置减1,并将结果作为索引。例如,要访问第四个列表元素,可使用索引3。 下面的代码访问索引1和3处的自行车:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3]) 

这些代码返回列表中的第二个和第四个元素:

cannondale
specialized 

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返 回最后一个列表元素:

print(bicycles[-1]) 

这些代码返回'specialized'。这种语法很有用,因为你经常需要在不知道列表长度的情况 下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素, 索引-3返回倒数第三个列表元素,以此类推。

3.1.3 使用列表中的各个值

可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建 消息。

下面来尝试从列表中提取第一款自行车,并使用这个值来创建一条消息:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
1 message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)

我们使用bicycles[0]的值生成了一个句子,并将其存储在变量message中(见)。输出是一 个简单的句子,其中包含列表中的第一款自行车:

My first bicycle was a Trek.

3.2 修改、添加和删除元素

你创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。例如,你创建一个游戏,要求玩家射杀从天而降的外星人;为此,可在开始时将一些外星人存储在 列表中,然后每当有外星人被射杀时,都将其从列表中删除,而每次有新的外星人出现在屏幕上 时,都将其添加到列表中。在整个游戏运行期间,外星人列表的长度将不断变化。

3.2.1 修改列表元素

修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改 的元素的索引,再指定该元素的新值。 例如,

假设有一个摩托车列表,其中的第一个元素为'honda',如何修改它的值呢?

motorcycles.py

1 motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
2 motorcycles[0] = 'ducati'
print(motorcycles)

我们首先定义一个摩托车列表,其中的第一个元素为'honda'(见)。接下来,我们将第一 个元素的值改为'ducati'(见)。输出表明,第一个元素的值确实变了,但其他列表元素的值 没变:

['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']

你可以修改任何列表元素的值,而不仅仅是第一个元素的值。

3.2.2 在列表中添加元素

你可能出于众多原因要在列表中添加新元素,例如,你可能希望游戏中出现新的外星人、添 加可视化数据或给网站添加新注册的用户。Python提供了多种在既有列表中添加新数据的方式。

1. 在列表末尾添加元素 在列表中添加新元素时,最简单的方式是将元素附加到列表末尾。给列表附加元素时,它将 添加到列表末尾。继续使用前一个示例中的列表,在其末尾添加新元素'ducati':

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
1 motorcycles.append('ducati')
print(motorcycles)

方法append()将元素'ducati'添加到了列表末尾(见1),而不影响列表中的其他所有元素:

['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']

方法append()让动态地创建列表易如反掌,例如,你可以先创建一个空列表,再使用一系列的 append()语句添加元素。下面来创建一个空列表,再在其中添加元素'honda'、'yamaha'和'suzuki':

motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)

最终的列表与前述示例中的列表完全相同

['honda', 'yamaha', 'suzuki'] 

这种创建列表的方式极其常见,因为经常要等程序运行后,你才知道用户要在程序中存储哪 些数据。为控制用户,可首先创建一个空列表,用于存储用户将要输入的值,然后将用户提供的 每个新值附加到列表中。


2. 在列表中插入元素

使用方法insert()可在列表的任何位置添加新元素。为此,你需要指定新元素的索引和值。

motorcycles = ['honda', 'yamaha', 'suzuki']
1 motorcycles.insert(0, 'ducati')
print(motorcycles)

在这个示例中,值'ducati'被插入到了列表开头(见1);方法insert()在索引0处添加空间, 并将值'ducati'存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置:

1. 使用del语句删除元素

如果知道要删除的元素在列表中的位置,可使用del语句。

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
1 del motorcycles[0]
print(motorcycles)
1 处的代码使用del删除了列表motorcycles中的第一个元素——'honda':
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki'] 

使用del可删除任何位置处的列表元素,条件是知道其索引。下例演示了如何删除前述列表 中的第二个元素——'yamaha':

motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[1]
print(motorcycles)

下面的输出表明,已经将第二款摩托车从列表中删除了:

['honda', 'yamaha', 'suzuki']
['honda', 'suzuki'] 

在这两个示例中,使用del语句将值从列表中删除后,你就无法再访问它了。


Python:核心知识点整理大全3-笔记-CSDN博客

Python:核心知识点整理大全2-笔记-CSDN博客

Python:核心知识点整理大全1-笔记-CSDN博客

往期快速传送门👆(在文章最后):

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

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

相关文章

指定分隔符对字符串进行分割 numpy.char.split()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定分隔符对字符串进行分割 numpy.char.split() 选择题 请问下列程序运行的的结果是: import numpy as np print("【执行】np.char.split(I.Love.China, sep .)") p…

【Flink on k8s】- 11 - 使用 Flink kubernetes operator 运行 Flink 作业

目录 1、创建本地镜像库 1.1 拉取私人仓库镜像 1.2 运行 1.3 本地浏览器访问 5000 端口

Linux进程解析(冯诺依曼体系结构,操作系统,进程初步解析)

冯诺依曼体系结构: 我们常见的计算机,如笔记本。我们常见的计算机,服务器,大部分都遵守冯诺依曼体系。 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成: 中央处理器(CPU)&am…

Linux socket编程(12):Unix套接字之socketpair、sendmsg和recvmsg详解

在上一篇文章Unix套接字编程及通信例子中,我们对Unix套接字编程有一个基本的了解。但在Unix套接字编程的领域中,有一组特殊而强大的工具:socketpair、sendmsg 和 recvmsg,它们为实现本地进程间通信提供了便捷的方式。 文章目录 1 …

Pandas 打开有密码的Excel

安装包 pip isntall msoffcrypto-tool msoffcrypto库的简单介绍 msoffcrypto提供了对Microsoft Office文件进行加密和解密的功能。它支持对Word、Excel和PowerPoint文件进行加密和解密操作。 msoffcrypto的原理是利用Microsoft Office文件的加密算法对文件进行加密和解密。它能…

绝地求生:NH究极天命圈惊险吃鸡,17斩获单日积分第一,4AM梦游暂居倒数

绝地求生PGC小组赛B组第一轮的比赛即将结束,在刚刚那场决赛圈中NH和17给我们上演了非常精彩的较量,双方战至最后一人,最终由NH击败17收获一鸡,这两支PCL老牌强队总分都超过了40分,晋级胜者组对他们来说压力不大了。新队…

【FPGA图像处理实战】- FPGA图像处理仿真测试工程(读写BMP图片)

FPGA开发过程中“行为功能仿真”是非常必要的一个过程,如果仿真都没通过,则上板测试必定失败。 FPGA图像处理需要读写大量的图像数据,单看这些图像数据实际是没有规则的,如果直接上板测试,调试起来非常困难&#xff0…

看图学源码之— HashMap源码分析

简介: 是基于 哈希表 实现的,存放 k-v 键值对,非同步的方式(未加 synchronized )非线程安全的,hashmap 无序的数据结构: 数组 链表 > 数组 链表 红黑树「链表 和 链表 红黑树 都是为了解…

vue中字典的使用

1.引入字典 dicts: [order_status,product_type],2.表单中使用 select下拉 <el-form-item label"订单状态" prop"orderStatus"><el-select v-model"form.orderStatus" clearable placeholder"请输入订单状态" :disabled"…

新版Win10通过netplwiz设置自动登录时找不到“要使用本计算机,用户必须输入用户名和密码”选项的解决方法

众所周知&#xff0c;Windows系统有个传统艺能&#xff0c;就是通过“netplwiz”或者“control userpasswords2”设置免密码自动登录。前段时间在调整一台虚拟机的配置时&#xff0c;突然惊奇的发现&#xff0c;在设置免密码登录的时候居然找不到需要去掉勾选的复选框了。如下图…

QT+Unity3D 超详细(将unity3D与QT进行连接,并实现信息传递)

QTUnity3D连接 在QT中连接unity3D&#xff0c;首先要有一个unity.exe执行文件。在这里不提供unity执行文件的编写&#xff0c;只提供QT这边与unity3D连接和信息传递。 创建项目 创建一个新的项目&#xff0c;我创建的项目名称如下。 下图是我建立新项目的文件。APP文件就是…

Metasploit的安全防御和逃逸

预计更新 第一章 Metasploit的使用和配置 1.1 安装和配置Metasploit 1.2 Metasploit的基础命令和选项 1.3 高级选项和配置 第二章 渗透测试的漏洞利用和攻击方法 1.1 渗透测试中常见的漏洞类型和利用方法 1.2 Metasploit的漏洞利用模块和选项 1.3 模块编写和自定义 第三章 Me…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux文件管理(1)》(25)

《Linux操作系统原理分析之Linux文件管理&#xff08;1&#xff09;》&#xff08;25&#xff09; 8 Linux文件管理8.1 Linux 文件系统概述8.2 EXT2 文件系统8.2.1 EXT2 文件系统的构造8.2.2 EXT2 超级块&#xff08;super block&#xff09;8.2.3 组描述符8.2.4 块位图 8.3 EX…

智能优化算法应用:基于社交网络算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于社交网络算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于社交网络算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社交网络算法4.实验参数设定5.算法结果6.参考…

[ffmpeg] avcodec_alloc_context3 解析

背景 ffmpeg 通过 avcodec_alloc_context3 解析编码器&#xff0c;本文主要来解析一下&#xff0c;这个函数主要做了什么。 具体代码分析 主要是创建了 AVCodecContext ,并给结构体参数赋予初值。 初值设置主要分成两块&#xff0c;1. 所有编码器都相同的部分&#xff1b;2.…

用23种设计模式打造一个cocos creator的游戏框架----(七)代理模式

1、模式标准 模式名称&#xff1a;代理模式 模式分类&#xff1a;结构型 模式意图&#xff1a;为其他对象提供一种代理以控制对这个对象的访问。 结构图&#xff1a; ​ 适用于&#xff1a; 远程代理&#xff1a;也称为大使&#xff0c;这是最常见的类型&#xff0c;在分…

2022年第十一届数学建模国际赛小美赛C题人类活动分类解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 C题 人类活动分类 原题再现&#xff1a; 人类行为理解的一个重要方面是对日常活动的识别和监控。可穿戴式活动识别系统可以改善许多关键领域的生活质量&#xff0c;如动态监测、家庭康复和跌倒检测。基于惯性传感器的活动识别系统用于通过…

Vue3计算属性与监听属性和生命周期

文章目录 一、计算属性与监视1、computed函数2、watch函数3、watchEffect函数 二、生命周期1、与 2.x 版本生命周期相对应的组合式 API2、新增的钩子函数3、代码实例 一、计算属性与监视 1、computed函数 与computed配置功能一致只有getter有getter和setter 2、watch函数 与…

Kubernetes入门笔记——(2)k8s设计文档

​k8s最初源自谷歌的Brog项目&#xff0c;架构与其类似&#xff0c;主要包括etcd、api server、controller manager、scheduler、kubelet和kube-proxy等组件 etcd&#xff1a;分布式存储&#xff0c;保存k8s集群的状态 api server&#xff1a;资源操作的唯一入口&#xff0c;…

Kafka 的消息格式:了解消息结构与序列化

Kafka 作为一款高性能的消息中间件系统&#xff0c;其消息格式对于消息的生产、传输和消费起着至关重要的作用。本篇博客将深入讨论 Kafka 的消息格式&#xff0c;包括消息的结构、序列化与反序列化&#xff0c;以及一些常用的消息格式选项。通过更丰富的示例代码和深入的解析&…