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

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

目录

5.4 使用 if 语句处理列表

5.4.1 检查特殊元素

toppings.py

5.4.2 确定列表不是空的

5.4.3 使用多个列表

5.5 设置 if 语句的格式

5.6 小结

第6章

字 典

6.1 一个简单的字典

alien.py

6.2 使用字典

6.2.1 访问字典中的值

6.2.2 添加键—值对

6.2.3 先创建一个空字典

有时候,在空字典中添加键—值对是为了方便,而有时候必须这样做。为此,可先使用一对 空的花括号定义一个字典,再分行添加各个键—值对。例如,下例演示了如何以这种方式创建字 典alien_0:

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


5.4 使用 if 语句处理列表

通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;高 效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都将按预期那 样运行。

5.4.1 检查特殊元素

本章开头通过一个简单示例演示了如何处理特殊值'bmw'——它需要采用不同的格式进行打 印。既然你对条件测试和if语句有了大致的认识,下面来进一步研究如何检查列表中的特殊值, 并对其做合适的处理。

继续使用前面的比萨店示例。这家比萨店在制作比萨时,每添加一种配料都打印一条消息。 通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到比萨中的配料,可 以以极高的效率编写这样的代码:

toppings.py

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!")

输出很简单,因为上述代码不过是一个简单的for循环:

Adding mushrooms.
Adding green peppers.
Adding extra cheese.
Finished making your pizza!

然而,如果比萨店的青椒用完了,该如何处理呢?为妥善地处理这种情况,可在for循环中 包含一条if语句:

requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
for requested_topping in requested_toppings:
1 if requested_topping == 'green peppers':print("Sorry, we are out of green peppers right now.")
2 else:print("Adding " + requested_topping + ".")
print("\nFinished making your pizza!") 

这里在比萨中添加每种配料前都进行检查。1处的代码检查顾客点的是否是青椒,如果是, 就显示一条消息,指出不能点青椒的原因。2处的else代码块确保其他配料都将添加到比萨中。 输出表明,妥善地处理了顾客点的每种配料:

Adding mushrooms.
Sorry, we are out of green peppers right now.
Adding extra cheese.
Finished making your pizza!

5.4.2 确定列表不是空的

到目前为止,对于处理的每个列表都做了一个简单的假设,即假设它们都至少包含一个元素。 我们马上就要让用户来提供存储在列表中的信息,因此不能再假设循环运行时列表不是空的。有 鉴于此,在运行for循环前确定列表是否为空很重要。

下面在制作比萨前检查顾客点的配料列表是否为空。如果列表是空的,就向顾客确认他是否 要点普通比萨;如果列表不为空,就像前面的示例那样制作比萨:

1 requested_toppings = []
2 if requested_toppings:for requested_topping in requested_toppings:print("Adding " + requested_topping + ".")print("\nFinished making your pizza!")
3 else:print("Are you sure you want a plain pizza?")

在这里,我们首先创建了一个空列表,其中不包含任何配料(见1)。在2处我们进行了简 单检查,而不是直接执行for循环。在if语句中将列表名用在条件表达式中时,Python将在列表 至少包含一个元素时返回True,并在列表为空时返回False。如果requested_toppings不为空,就 运行与前一个示例相同的for循环;否则,就打印一条消息,询问顾客是否确实要点不加任何配 料的普通比萨(见3)。

在这里,这个列表为空,因此输出如下——询问顾客是否确实要点普通比萨:

Are you sure you want a plain pizza?

如果这个列表不为空,将显示在比萨中添加的各种配料的输出。

5.4.3 使用多个列表

顾客的要求往往五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条,该 怎么办呢?可使用列表和if语句来确定能否满足顾客的要求。

来看看在制作比萨前如何拒绝怪异的配料要求。下面的示例定义了两个列表,其中第一个列 表包含比萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的 每个元素,都检查它是否是比萨店供应的配料,再决定是否在比萨中添加它:

1 available_toppings = ['mushrooms', 'olives', 'green peppers','pepperoni', 'pineapple', 'extra cheese']
2 requested_toppings = ['mushrooms', 'french fries', 'extra cheese']
3 for requested_topping in requested_toppings:
4 if requested_topping in available_toppings:print("Adding " + requested_topping + ".")
5 else:print("Sorry, we don't have " + requested_topping + ".")
print("\nFinished making your pizza!")

在1处,我们定义了一个列表,其中包含比萨店供应的配料。请注意,如果比萨店供应的配 料是固定的,也可使用一个元组来存储它们。在2处,我们又创建了一个列表,其中包含顾客点 的配料,请注意那个不同寻常的配料——'french fries'。在3处,我们遍历顾客点的配料列表。 在这个循环中,对于顾客点的每种配料,我们都检查它是否包含在供应的配料列表中(见4); 如果答案是肯定的,就将其加入到比萨中,否则将运行else代码块(见5):打印一条消息,告 诉顾客不供应这种配料。

这些代码的输出整洁而详实:

Adding mushrooms.
Sorry, we don't have french fries.
Adding extra cheese.
Finished making your pizza! 

通过为数不多的几行代码,我们高效地处理了一种真实的情形!

5.5 设置 if 语句的格式

本章的每个示例都展示了良好的格式设置习惯。在条件测试的格式设置方面,PEP 8提供的唯一 建议是,在诸如==、>=和<=等比较运算符两边各添加一个空格,例如,if age < 4:要比if age<4:好。 这样的空格不会影响Python对代码的解读,而只是让代码阅读起来更容易。

5.6 小结

在本章中,你学习了如何编写结果要么为Ture要么为False的条件测试。你学习了如何编写 简单的if语句、if-else语句和if-elif-else结构。在程序中,你使用了这些结构来测试特定的条 件,以确定这些条件是否满足。你学习了如何在利用高效的for循环的同时,以不同于其他元素 的方式对特定的列表元素进行处理。你还再次学习了Python就代码格式方面提出的建议,这可确 保即便你编写的程序越来越复杂,其代码依然易于阅读和理解。

在第6章,你将学习Python字典。字典类似于列表,但让你能够将不同的信息关联起来。你 将学习如何创建和遍历字典,以及如何将字典同列表和if语句结合起来使用。学习字典让你能够 模拟更多现实世界的情形。

第6章

字 典

6.1 一个简单的字典

来看一个游戏,其中包含一些外星人,这些外星人的颜色和点数各不相同。下面是一个简单 的字典,存储了有关特定外星人的信息:

alien.py

alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])

字典alien_0存储了外星人的颜色和点数。使用两条print语句来访问并打印这些信息,如 下所示:

green
5 

与大多数编程概念一样,要熟练使用字典,也需要一段时间的练习。使用字典一段时间后, 你就会明白为何它们能够高效地模拟现实世界中的情形。

6.2 使用字典

在Python中,字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之 相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对 象用作字典中的值。

在Python中,字典用放在花括号{}中的一系列键—值对表示,如前面的示例所示:

alien_0 = {'color': 'green', 'points': 5} 

键—值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号 分隔,而键—值对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。

最简单的字典只有一个键—值对,如下述修改后的字典alien_0所示:

alien_0 = {'color': 'green'} 

这个字典只存储了一项有关alien_0的信息,具体地说是这个外星人的颜色。在这个字典中, 字符串'color'是一个键,与之相关联的值为'green'。

6.2.1 访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:

alien_0 = {'color': 'green'}
print(alien_0['color']) 

这将返回字典alien_0中与键'color'相关联的值:

green

字典中可包含任意数量的键—值对。例如,下面是最初的字典alien_0,其中包含两个键— 值对:

alien_0 = {'color': 'green', 'points': 5} 

现在,你可以访问外星人alien_0的颜色和点数。如果玩家射杀了这个外星人,你就可以使 用下面的代码来确定玩家应获得多少个点:

alien_0 = {'color': 'green', 'points': 5}
1 new_points = alien_0['points']
2 print("You just earned " + str(new_points) + " points!")

上述代码首先定义了一个字典,然后从这个字典中获取与键'points'相关联的值(见1), 并将这个值存储在变量new_points中。接下来,将这个整数转换为字符串,并打印一条消息,指出玩家获得了多少个点(见2):

You just earned 5 points

如果你在有外星人被射杀时都运行这段代码,就会获取该外星人的点数。

6.2.2 添加键—值对

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用 方括号括起的键和相关联的值。

下面在字典alien_0中添加两项信息:外星人的x坐标和y坐标,让我们能够在屏幕的特定位 置显示该外星人。我们将这个外星人放在屏幕左边缘,且离屏幕上边缘25像素的地方。由于屏幕 坐标系的原点通常为左上角,因此要将该外星人放在屏幕左边缘,可将x坐标设置为0;要将该外 星人放在离屏幕顶部25像素的地方,可将y坐标设置为25,如下所示:

alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
1 alien_0['x_position'] = 0
2 alien_0['y_position'] = 25
print(alien_0)

我们首先定义了前面一直在使用的字典,然后打印这个字典,以显示其信息快照。在处, 我们在这个字典中新增了一个键—值对,其中的键为'x_position',而值为0。在处,我们重 复这样的操作,但使用的键为'y_position'。打印修改后的字典时,将看到这两个新增的键— 值对:

{'color': 'green', 'points': 5}
{'color': 'green', 'points': 5, 'y_position': 25, 'x_position': 0} 

这个字典的最终版本包含四个键—值对,其中原来的两个指定外星人的颜色和点数,而新增 的两个指定位置。注意,键—值对的排列顺序与添加顺序不同。Python不关心键—值对的添加顺序, 而只关心键和值之间的关联关系。

6.2.3 先创建一个空字典

有时候,在空字典中添加键—值对是为了方便,而有时候必须这样做。为此,可先使用一对 空的花括号定义一个字典,再分行添加各个键—值对。例如,下例演示了如何以这种方式创建字 典alien_0:

alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)

这里首先定义了空字典alien_0,再在其中添加颜色和点数,得到前述示例一直在使用的 字典:

{'color': 'green', 'points': 5} 

使用字典来存储用户提供的数据或在编写能自动生成大量键—值对的代码时,通常都需要先 定义一个空字典。


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

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

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

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

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

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

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

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

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

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

相关文章:

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

目录 5.4 使用 if 语句处理列表 5.4.1 检查特殊元素 toppings.py 5.4.2 确定列表不是空的 5.4.3 使用多个列表 5.5 设置 if 语句的格式 5.6 小结 第6章 字 典 6.1 一个简单的字典 alien.py 6.2 使用字典 6.2.1 访问字典中的值 6.2.2 添加键—值对 6.2.3 先创建一…...

Hive数据库系列--Hive数据类型/Hive字段类型/Hive类型转换

文章目录 一、Hive数据类型1.1、数值类型1.2、字符类型1.3、日期时间类型1.4、其他类型1.5、集合数据类型1.5.1、Struct举例1.5.2、Array举例1.5.3、Map举例 二、数据类型转换2.1、隐式转换2.2、显示转换 三、字段类型的使用3.1、DECIMAL(precision&#xff0c;scale) 本章主要…...

在Spring Cloud中使用组件Ribbon和Feign,并分别创建子模块注册到Eureka中去

ok&#xff0c;在上篇文章中我们讲了在Spring cloud中使用Zuul网关&#xff0c;这篇文章我们将Spring Cloud的五大核心组件的Ribbon和Feign分别创建一个微服务模块。 题外话&#xff0c;本篇博客就是配置子模块&#xff0c;或者说是微服务&#xff0c;然后将微服务正式启动之前…...

(JAVA)-缓冲流

缓冲流能高效的读取数据 缓冲流底层自带了8192的缓冲区提高性能&#xff0c;他在原有的流上进行了包装&#xff0c;加上了缓冲效果 原理&#xff1a; 读入时首先会将内存中缓冲区大小的数据读入缓冲区中&#xff0c;接着下次读取直接从缓冲区中读取数据&#xff0c;当缓冲区…...

Autosar UDS-CAN诊断开发02-1(CAN诊断帧格式类型详解、CANFD诊断帧格式类型详解、15765-2(CANTP层)的意义)

目录 前言 CANTP层&#xff08;15765-2协议&#xff09;存在的意义 CANTP层&#xff08;15765-2协议&#xff09;帧类型详细解读&#xff08;普通CAN格式&#xff09; 四种诊断报文类型 单帧SingleFrame(SF) 首帧&#xff1a;FirstFrame(FF) 流控帧&#xff1a;FlowCont…...

swing快速入门(三)

解答一下上一篇关于留下的关于布局管理器的疑问 上一篇 几种常见的布局管理器 看不懂&#xff1f;看不懂没关系&#xff0c;这篇是概念篇&#xff0c;大概了解一下就行~ 1.FlowLayout&#xff08;流式布局&#xff09;&#xff1a;按照从左到右、从上到下的顺序依次排列组件。…...

Swagger PHP Thinkphp 接口文档

安装 1. 安装依赖 composer require zircote/swagger-php 2. 下载Swagger UI git clone https://github.com/swagger-api/swagger-ui.git 3. 复制下载好的Swagger UI 中的dist目录到public目录中&#xff0c;修改目录名称 cp -rf swagger-ui/dist /home/htdocs/public/ m…...

12.9每日一题(备战蓝桥杯循环结构)

12.9每日一题&#xff08;备战蓝桥杯循环结构&#xff09; 题目 2165: 求平均年龄题目描述输入输出样例输入样例输出来源/分类 题解 2165: 求平均年龄题目 2166: 均值题目描述输入输出样例输入样例输出来源/分类 题解 2166: 均值题目 2167: 求整数的和与均值题目描述输入输出样…...

与时代共进退

还记得当初自己为什么选择计算机&#xff1f; 当初你问我为什么选择计算机&#xff0c;我笑着回答&#xff1a;“因为我梦想成为神奇的码农&#xff01;我想像编织魔法一样编写程序&#xff0c;创造出炫酷的虚拟世界&#xff01;”谁知道&#xff0c;我刚入门的那天&#xff0…...

Python 云服务器应用,Https,定时重启

Python 云服务器应用,Https,定时重启 环境搭建Python模块模块导入生成Flask实例GET处理启动服务器打开网页验证 GET接入证书 支持https申请证书下载证书保留 xxx.crt 和 xxx.key文件就可以了 copy到python项目目录ssl_context 配置 宝塔面板操作在www目录下新建python工作目录在…...

pytorch 笔记:dist 和 cdist

1 dist 1.1 基本使用方法 torch.dist(input, other, p2) 计算两个Tensor之间的p-范数 1.2 主要参数 input输入张量other另一个输入张量p范数 input 和 other的形状需要是可广播的 1.3 举例 import torchxtorch.randn(4) x #tensor([ 1.2698, -0.1209, 0.0462, -1.3271…...

Java的List中的各种浅拷贝和深拷贝问题

先来看一组代码 public class Temp{public static void main(String[] args) {List<Integer> list new ArrayList<>();list.add(1);list.add(2);list.add(3);List<Integer> temp list;list.add(4);System.out.println(list.toString());System.out.print…...

20231207_最新已测_Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066

以前安装的太模糊了,干脆重新写一个: 1.首先下载对应的nginx-1.24.0.tar.gz安装文件 2.然后: 去执行命令 安装依赖 yum install -y gcc yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 3.然后:去解压 tar -zxvf ngi…...

前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件

如果想在React中想要像Vue一样把css和js写到一个文件中&#xff0c;可以使用CSS-in-JS。 使用CSS-in-JS 下载 npm i styled-components使用 就像写scss一样&#xff0c;不过需要声明元素的类型 基本语法及展示如下 import styled from "styled-components"expor…...

Photoshop Circular Text

Ctrl N 新增 现学现卖...

深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正确使用

文章目录 1. 引言2. PathVariable&#xff1a;处理路径变量2.1 简介2.2 使用示例 3. RequestParam&#xff1a;处理请求参数3.1 简介3.2 使用示例 4. RequestBody&#xff1a;处理请求体4.1 简介4.2 使用示例 5. 多个注解的组合使用6. 参数绑定的原理6.1 HandlerMethodArgument…...

Qt Location中加载地图对象

在Qt Location中加载地图对象&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1&#xff0c;首先&#xff0c;确保你已经安装了Qt Location模块&#xff0c;并在项目中包含了相应的头文件。在项目文件&#xff08;.pro&#xff09;中添加以下行&#xff1a; QT locatio…...

4-Docker命令之docker ps

1.docker ps介绍 docker ps命令是用来列出容器的相关信息 2.docker ps用法 docker ps [参数] [rootcentos79 ~]# docker ps --helpUsage: docker ps [OPTIONS]List containersAliases:docker container ls, docker container list, docker container ps, docker psOptions…...

你在地铁上修过bug吗?

作为技术人员&#xff0c;有没有遇到下班路上收到老板电话&#xff0c;系统故障&#xff0c;然后地铁上掏出电脑&#xff0c;修bug的场景。自己负责的业务线上出现问题&#xff0c;负责人心里是很慌的&#xff0c;在这种心理状态下做事很容易二次犯错&#xff0c;造成更大的问题…...

CPU、MCU、MPU、DSP、FPGA各是什么?有什么区别?

1、CPU 中央处理器&#xff0c;简称 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;中央处理器主要包括两个部分&#xff0c;即控制器、运算器&#xff0c;其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。 电子计算机三大核心部件就是CPU…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...