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

目录

6.4.3 在字典中存储字典

6.5 小结

第7章

用户输入和while循环

7.1 函数 input()的工作原理

7.1.1 编写清晰的程序

7.1.2 使用 int()来获取数值输入

7.1.3 求模运算符

7.1.4 在 Python 2.7 中获取输入

7.2 while 循环简介

7.2.1 使用 while 循环

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


6.4.3 在字典中存储字典

可在字典中嵌套字典,但这样做时,代码可能很快复杂起来。例如,如果有多个网站用户, 每个都有独特的用户名,可在字典中将用户名作为键,然后将每位用户的信息存储在一个字典中, 并将该字典作为与用户名相关联的值。在下面的程序中,对于每位用户,我们都存储了其三项信 息:名、姓和居住地;为访问这些信息,我们遍历所有的用户名,并访问与每个用户名相关联的 信息字典:

many_users.py

users = {'aeinstein': {'first': 'albert','last': 'einstein','location': 'princeton',},'mcurie': {'first': 'marie','last': 'curie','location': 'paris',},}
1 for username, user_info in users.items():
2 print("\nUsername: " + username)
3 full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
4 print("\tFull name: " + full_name.title())print("\tLocation: " + location.title()) 

我们首先定义了一个名为users的字典,其中包含两个键:用户名'aeinstein'和'mcurie'; 与每个键相关联的值都是一个字典,其中包含用户的名、姓和居住地。在1处,我们遍历字典 users,让Python依次将每个键存储在变量username中,并依次将与当前键相关联的字典存储在变 量user_info中。在主循环内部的2处,我们将用户名打印出来。

在3处,我们开始访问内部的字典。变量user_info包含用户信息字典,而该字典包含三个键: 'first'、'last'和'location';对于每位用户,我们都使用这些键来生成整洁的姓名和居住地, 然后打印有关用户的简要信息(见4):

Username: aeinsteinFull name: Albert EinsteinLocation: Princeton
Username: mcurieFull name: Marie CurieLocation: Paris 

请注意,表示每位用户的字典的结构都相同,虽然Python并没有这样的要求,但这使得嵌 套的字典处理起来更容易。倘若表示每位用户的字典都包含不同的键,for循环内部的代码将 更复杂。

6.5 小结

在本章中,你学习了:如何定义字典,以及如何使用存储在字典中的信息;如何访问和修改 字典中的元素,以及如何遍历字典中的所有信息;如何遍历字典中所有的键值对、所有的键和 所有的值;如何在列表中嵌套字典、在字典中嵌套列表以及在字典中嵌套字典。

在下一章中,你将学习while循环以及如何从用户那里获取输入。这是激动人心的一章,让 你知道如何将程序变成交互性的——能够对用户输入作出响应。

第7章

用户输入和while循环

7.1 函数 input()的工作原理

函数input()让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在 一个变量中,以方便你使用。 例如,下面的程序让用户输入一些文本,再将这些文本呈现给用户:

parrot.py

message = input("Tell me something, and I will repeat it back to you: ")
print(message)

函数input()接受一个参数:即要向用户显示的提示或说明,让用户知道该如何做。在这个 示例中,Python运行第1行代码时,用户将看到提示Tell me something, and I will repeat it back to you:。程序等待用户输入,并在用户按回车键后继续运行。输入存储在变量message中,接下 来的print(message)将输入呈现给用户:

Tell me something, and I will repeat it back to you: Hello everyone!
Hello everyone! 

注意 Sublime Text不能运行提示用户输入的程序。你可以使用Sublime Text来编写提示用户输入 的程序,但必须从终端运行它们。详情请参阅1.4节。


7.1.1 编写清晰的程序

每当你使用函数input()时,都应指定清晰而易于明白的提示,准确地指出你希望用户提供 什么样的信息——指出用户该输入任何信息的提示都行,如下所示:

greeter.py

name = input("Please enter your name: ")
print("Hello, " + name + "!") 

通过在提示末尾(这里是冒号后面)包含一个空格,可将提示与用户输入分开,让用户清楚 地知道其输入始于何处,如下所示:

Please enter your name: Eric
Hello, Eric!

有时候,提示可能超过一行,例如,你可能需要指出获取特定输入的原因。在这种情况下, 可将提示存储在一个变量中,再将该变量传递给函数input()。这样,即便提示超过一行,input() 语句也非常清晰。

greeter.py

prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name? "
name = input(prompt)
print("\nHello, " + name + "!")

这个示例演示了一种创建多行字符串的方式。第1行将消息的前半部分存储在变量prompt中; 在第2行中,运算符+=在存储在prompt中的字符串末尾附加一个字符串。 最终的提示横跨两行,并在问号后面包含一个空格,这也是出于清晰考虑:

If you tell us who you are, we can personalize the messages you see.
What is your first name? Eric
Hello, Eric!

7.1.2 使用 int()来获取数值输入

使用函数input()时,Python将用户输入解读为字符串。请看下面让用户输入其年龄的解释器 会话:

>>> age = input("How old are you? ")
How old are you? 21
>>> age
'21'

用户输入的是数字21,但我们请求Python提供变量age的值时,它返回的是'21'——用户输入 的数值的字符串表示。我们怎么知道Python将输入解读成了字符串呢?因为这个数字用引号括起 了。如果我们只想打印输入,这一点问题都没有;但如果你试图将输入作为数字使用,就会引发 错误:

>>> age = input("How old are you? ")
How old are you? 21
1 >>> age >= 18
Traceback (most recent call last):File "<stdin>", line 1, in <module>
2 TypeError: unorderable types: str() >= int()

你试图将输入用于数值比较时(见),Python会引发错误,因为它无法将字符串和整数进 行比较:不能将存储在age中的字符串'21'与数值18进行比较(见)。 为解决这个问题,可使用函数int(),它让Python将输入视为数值。函数int()将数字的字符 串表示转换为数值表示,如下所示:

>>> age = input("How old are you? ")
How old are you? 21
1 >>> age = int(age)
>>> age >= 18
True

在这个示例中,我们在提示时输入21后,Python将这个数字解读为字符串,但随后int()将这 个字符串转换成了数值表示(见)。这样Python就能运行条件测试了:将变量age(它现在包含 数值21)同18进行比较,看它是否大于或等于18。测试结果为True。 如何在实际程序中使用函数int()呢?请看下面的程序,它判断一个人是否满足坐过山车的 身高要求: rollercoaster.py

height = input("How tall are you, in inches? ")
height = int(height)
if height >= 36:print("\nYou're tall enough to ride!")
else: print("\nYou'll be able to ride when you're a little older.") 

在这个程序中,为何可以将height同36进行比较呢?因为在比较前,height = int(height) 将输入转换成了数值表示。如果输入的数字大于或等于36,我们就告诉用户他满足身高条件:

How tall are you, in inches? 71
You're tall enough to ride!

将数值输入用于计算和比较前,务必将其转换为数值表示。

7.1.3 求模运算符

处理数值信息时,求模运算符(%)是一个很有用的工具,它将两个数相除并返回余数:

>>> 4 % 3
1
>>> 5 % 3
2
>>> 6 % 3
0
>>> 7 % 3
1 

求模运算符不会指出一个数是另一个数的多少倍,而只指出余数是多少。 如果一个数可被另一个数整除,余数就为0,因此求模运算符将返回0。你可利用这一点来判 断一个数是奇数还是偶数:

even_or_odd.py

number = input("Enter a number, and I'll tell you if it's even or odd: ")
number = int(number)
if number % 2 == 0:print("\nThe number " + str(number) + " is even.")
else:print("\nThe number " + str(number) + " is odd.")

偶数都能被2整除,因此对一个数(number)和2执行求模运算的结果为零,即number % 2 == 0,那么这个数就是偶数;否则就是奇数。

Enter a number, and I'll tell you if it's even or odd: 42
The number 42 is even. 

7.1.4 在 Python 2.7 中获取输入

如果你使用的是Python 2.7,应使用函数raw_input()来提示用户输入。这个函数与Python 3 中的input()一样,也将输入解读为字符串。 Python 2.7也包含函数input(),但它将用户输入解读为Python代码,并尝试运行它们。因此, 最好的结果是出现错误,指出Python不明白输入的代码;而最糟的结果是,将运行你原本无意运 行的代码。如果你使用的是Python 2.7,请使用raw_input()而不是input()来获取输入。

7.2 while 循环简介

for循环用于针对集合中的每个元素都一个代码块,而while循环不断地运行,直到指定的条 件不满足为止。

7.2.1 使用 while 循环

你可以使用while循环来数数,例如,下面的while循环从1数到5:

counting.py

current_number = 1
while current_number <= 5:print(current_number)current_number += 1 

在第1行,我们将current_number设置为1,从而指定从1开始数。接下来的while循环被设置 成这样:只要current_number小于或等于5,就接着运行这个循环。循环中的代码打印 current_number的值,再使用代码current_number += 1(代码current_number = current_number + 1的简写)将其值加1。 只要满足条件current_number <= 5,Python就接着运行这个循环。由于1小于5,因此Python 打印1,并将current_number加1,使其为2;由于2小于5,因此Python打印2,并将current_number 加1,使其为3,以此类推。一旦current_number大于5,循环将停止,整个程序也将到此结束:

1
2
3
4
5 

你每天使用的程序很可能就包含while循环。例如,游戏使用while循环,确保在玩家想玩时 不断运行,并在玩家想退出时停止运行。如果程序在用户没有让它停止时停止运行,或者在用户 要退出时还继续运行,那就太没有意思了;有鉴于此,while循环很有用。


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

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

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

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

相关文章

SPI 通信-stm32入门

本节我们将继续学习下一个通信协议 SPI&#xff0c;SPI 通信和我们刚学完的 I2C 通信差不多。两个协议的设计目的都一样&#xff0c;都是实现主控芯片和各种外挂芯片之间的数据交流&#xff0c;有了数据交流的能力&#xff0c;我们主控芯片就可以挂载并操纵各式各样的外部芯片&…

gpu版本的GNN的demo

1、当涉及到在GPU上运行图神经网络&#xff08;GNN&#xff09;时&#xff0c;通常使用深度学习框架&#xff0c;如PyTorch或TensorFlow。在这里&#xff0c;我将为您提供一个使用PyTorch Geometric库实现GNN的简单示例。 首先&#xff0c;确保您已经安装了PyTorch和PyTorch G…

第 375 场 LeetCode 周赛题解

A 统计已测试设备 模拟&#xff1a;记录当前已测试设备数量 class Solution { public:int countTestedDevices(vector<int> &batteryPercentages) {int res 0;int s 0;for (auto x: batteryPercentages) {if (x - s > 0) {res;s;}}return res;} };B 双模幂运算 …

【无线网络技术】——无线城域网(学习笔记)

&#x1f4d6; 前言&#xff1a;无线城域网&#xff08;WMAN&#xff09;是指在地域上覆盖城市及其郊区范围的分布节点之间传输信息的本地分配无线网络。能实现语音、数据、图像、多媒体、IP等多业务的接入服务。其覆盖范围的典型值为3~5km&#xff0c;点到点链路的覆盖可以高达…

少儿编程考级:激发孩子逻辑思维能力的关键

在当今信息化时代&#xff0c;少儿编程已经成为孩子们不可或缺的一项技能。而少儿编程考级&#xff0c;则是检验孩子们在这一技能上所取得的成就的重要途径。少儿编程考级不仅能够激发孩子们的逻辑思维能力&#xff0c;还能够提高他们的动手能力和创造力。6547网将详细介绍少儿…

电源模块测试系统测试LED电源项目的优势

LED电源测试是电源在设计、生产过程中的关键环节&#xff0c;也是确保LED照明产品可靠性和稳定性的重要步骤。LED电源测试一般包括电压、电流、效率、稳定性等。电源模块测试系统测试LED电源&#xff0c;实现自动化测试&#xff0c;保证测试结果的可靠性。 LED电源测试项目及方…

实现加盐加密方法以及MappedByteBuffer,RandomAccess

目录 自己实现 Spring Security MappedByteBuffer RandomAccess 加盐加密的实现 自己实现 传统MD5可通过彩虹表暴力破解&#xff0c; 加盐加密算法是一种常用的密码保护方法&#xff0c;它将一个随机字符串&#xff08;盐&#xff09;添加到原始密码中&#xff0c;然后再进…

力扣17. 电话号码的字母组合(java 回溯法)

Problem: 17. 电话号码的字母组合 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 题目给定一串数字&#xff0c;要求我们找出所有可能的字母组合&#xff0c;即我们可以穷举出所有可能的结果&#xff0c;而涉及到穷举我们自然可以想到利用回溯来解决问题&#xff0c…

无线且列窄图片如何转excel?

写此文原因&#xff1a;图片要转excel&#xff0c;这放以前&#xff0c;是不能实现的功能&#xff0c;但随着人工智能的蓬勃发展&#xff0c;人们已克服了这一难题&#xff0c;但是&#xff0c;我们知道&#xff0c;要将图片识别成excel&#xff0c;识别程序首先要先识别图片中…

如何在小米路由器4A千兆版刷入OpenWRT并通过内网穿透工具实现公网远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

交易历史记录20231206 记录

昨日回顾&#xff1a; select top 10000 * from dbo.CODEINFO A left join dbo.全部&#xff21;股20231206010101 B ON A.CODE B.代码 left join dbo.全部&#xff21;股20231206CONF D on A.CODED.代码left join dbo.全部&#xff21;股20231206 G on A.CODEG.代码 left…

Kafka-快速实战

Kafka介绍 ChatGPT对于Apache Kafka的介绍&#xff1a; Apache Kafka是一个分布式流处理平台&#xff0c;最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。 Kafka是一个分布式的发布-订阅消息系统&#xff0c;可以快速地处理高吞吐…

阿里云国际基于CentOS系统镜像快速部署Apache服务

阿里云轻量应用服务器提供了Windows Server系统镜像和主流的Linux系统镜像&#xff0c;您可以通过该类镜像创建纯净、安全、稳定的运行环境。本文以CentOS 7.6系统镜像为例&#xff0c;介绍如何快速配置Apache服务。 背景信息 注意&#xff0c;阿里云国际通过corebyt注册并充…

使用rawpy.imread读取.RAW格式数据和.dng格式数据(附代码)

.dng格式是一个更兼容、更高效的RAW格式。如果需要在不同软件之间交换RAW文件&#xff0c;或者需要在软件中进行大量编辑&#xff0c;那么.dng格式是一个不错的选择。 目录 一、 .dng格式数据和.RAW格式数据二、 .dng格式数据和.RAW格式数据区别三、安装rawpy包四、读取.dng格式…

Flask应用基础入门总结

【1】使用migrate方式进行数据库连接 使用migrate方式进行数据库连接需要在终端分别运行三行代码&#xff1a; #init&#xff08;运行一次即可&#xff09;&#xff08;此db为自己设置的连接数据库的对象,可以修改&#xff09; flask db init #&#xff08;将orm模型生成迁移…

从零开始搭建企业管理系统(四):集成 Knife4j

集成 Knife4j 前言Knife4j是什么集成 Knife4j引入 pom 依赖添加基础配置启动程序测试完善文档信息编写配置类修改 UserController修改 UserEntity修改 BaseEntity 文档效果图swagger 界面knife4j 界面 前言 前面一小节我们使用postman来进行接口的调试&#xff0c;如果接口一多…

游戏王的题解

目录 原题&#xff1a; 时间&#xff1a;1s 空间&#xff1a;256M 题目描述 输入格式 输出格式 样例输入 样例输出 题目大意&#xff1a; 主要思路&#xff1a; dp转移&#xff1a; dp初始化&#xff1a; 代码&#xff1a; 原题&#xff1a; 时间&#xff1a;1s …

springboot集成knife4j详细教程

使用原生的swagger作为接口文档&#xff0c;功能不够强大&#xff0c;并且默认的ui比较简陋&#xff0c;不符合大众审美。所以实际开发中推荐使用knife4j对swagger进行增强。knife4j的地址&#xff1a;https://gitee.com/xiaoym/knife4j 基本使用 想要使用knife4j非常简单&…

深入学习Redis:从入门到实战

Redis快速入门 1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Redis桌面客户端1.4.1.R…