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: aeinstein
 Full name: Albert Einstein
 Location: Princeton
Username: mcurie
 Full name: Marie Curie
 Location: 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博客

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jsonpath:使用Python处理JSON数据

使用Python处理JSON数据 25.1 JSON简介 25.1.1 什么是JSON JSON全称为JavaScript Object Notation&#xff0c;一般翻译为JS标记&#xff0c;是一种轻量级的数据交换格式。是基于ECMAScript的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清…

中国教师未来发展趋势

随着科技的进步和社会的发展&#xff0c;教师的发展趋势尤其引人关注。那么&#xff0c;教师未来的发展趋势又将是什么呢&#xff1f;” 引领未来的教育变革 在快速发展的信息化社会&#xff0c;教育行业正经历着前所未有的变革。中国教师将扮演着引领这场变革的重要角色。未来…

教培管理系统源码 培训管理系统源码

教培管理系统源码 培训管理系统源码 使用教培管理系统可以带来哪些好处&#xff1a; 1. 提高管理效率&#xff1a;教培管理系统可以自动化处理许多管理任务&#xff0c;如学生信息管理、课程管理、成绩管理等&#xff0c;从而减少人工干预&#xff0c;提高管理效率。 2. 提…

Nodejs后端+express框架

前言 基于vue3Node后台管理项目&#xff0c;补充nodejs和express相关知识。 文章目录 一&#xff0c;express 1.官网 Express - 基于 Node.js 平台的 web 应用开发框架 - Express中文文档 | Express中文网 2.安装 npm install express --save 二、MongoDB 特点 非关…

3D摄影棚布光:Set A Light 3D Studio

Set A Light 3D Studio是一款专业的灯光模拟软件&#xff0c;旨在帮助摄影师和电影制片人在电脑上进行虚拟灯光布置和场景模拟&#xff0c;以实现更加精准和高质量的拍摄效果。该软件提供了丰富的灯光和场景模型&#xff0c;支持灵活调整光源位置、强度、颜色和效果等参数&…

stm32学习:stm32f103c8t6+STM32CubeMX+st-link烧录+亮灯

准备材料&#xff1a; stm32f103c8t6开发板st-link烧录器安装stm32cubemx(官网下载就行)安装keil5&#xff08;找找网上有很多破解软件&#xff0c;下载后破解&#xff09;安装st-link驱动&#xff08;下载入口STSW-LINK009 - 为Windows 7、Windows 8、Windows 10签署的ST-LIN…

基于深度学习的yolov7植物病虫害识别及防治系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介简介YOLOv7 系统特性工作流程 二、功能三、系统四. 总结 一项目简介 # YOLOv7植物病虫害识别及防治系统介绍 简介 该系统基于深度学习技术&#xff0c;采…

python+pytest接口自动化(13)-token关联登录

在PC端登录公司的后台管理系统或在手机上登录某个APP时&#xff0c;经常会发现登录成功后&#xff0c;返回参数中会包含token&#xff0c;它的值为一段较长的字符串&#xff0c;而后续去请求的请求头中都需要带上这个token作为参数&#xff0c;否则就提示需要先登录。 这其实就…

ArkUI Button组件

Button 1.声明button组件 Button(label?:ResourceStr) label是按钮上面显示的文字 如果不传入label 则需要在内部嵌套其他组件 内部嵌套其他组件 可以放入icon图标来构建自己想要的样式 按钮类型 按钮使用type(ButtonType.xxx)属性来设置&#xff0c;xxx的类型分为三种 1.…

想知道修改图片dpi会影响清晰度吗?点击这里找答案

很多人都对图片dpi分辨率有不少疑问&#xff0c;比如dpi对图片清晰的影响&#xff0c;还有哪些地方需要修改图片dpi&#xff1f;其实dpi是指每英寸墨点的数量。对同一张图像来说,一般使用300dpi比使用72dpi打印出来的效果要清晰很多 &#xff0c;一般只有在打印照片或者上传证件…

pip指定优先从豆瓣源下载包

对于 Unix/macOS 系统&#xff0c;使用以下命令&#xff1a; pip config set global.index-url https://pypi.douban.com/simple/ 对于 Windows 系统&#xff0c;打开命令提示符或PowerShell&#xff0c;并使用相同的命令&#xff1a; pip config set global.index-url http…

Unity中实现ShaderToy卡通火(一)

文章目录 前言一、准备好我们的后处理基础脚本1、C#&#xff1a;2、Shader&#xff1a; 二、开始逐语句对ShaderToy进行转化1、首先&#xff0c;找到我们的主函数 mainImage2、其余的方法全部都是在 mainImage 函数中调用的方法3、替换后的代码(已经没报错了&#xff0c;都是效…

渲染技术在虚拟仿真中的应用

虚拟仿真&#xff08;Virtual Reality&#xff09;是一种仿真技术&#xff0c;它使用计算机生成一个虚拟世界&#xff0c;用户可以通过各种传感通道与这个虚拟世界进行自然的交互。虚拟仿真技术可以创建和体验虚拟世界&#xff0c;使用户可以像在真实世界中一样进行操作和体验。…

Python将字典列表导出为Excel文件的方法

将如下的字典列表内容导出为Excel表格文件形式&#xff1a; python将字典列表导出为Excel文件的方法&#xff0c;如下所示&#xff1a; 1、安装python官方Excel库------xlwt 直接在终端进行安装即可&#xff1a;pip install xlwt 安装完成后&#xff0c;在程序中引入xlwt的库…

ke14--10章-1数据库JDBC介绍

注册数据库(两种方式),获取连接,通过Connection对象获取Statement对象,使用Statement执行SQL语句。操作ResultSet结果集 ,回收数据库资源. 需要语句: 1Class.forName("DriverName");2Connection conn DriverManager.getConnection(String url, String user, String…

CGAN笔记总结第二弹~

CGAN原理与源码分析 一、复习GAN1.1损失函数1.2判别器源码1.3 生成器源码 二、什么是CGAN&#xff1f;2.1 CGAN原理图2.2条件GAN的损失函数2.3 生成器源码2.4 判别器源码2.5 训练过程1&#xff09;这里的训练顺序2&#xff09;为什么先训练判别器后训练生成器呢&#xff1f; 2.…

Python学习笔记-类

1 定义类 类是函数的集合&#xff0c;class来定义类 pass并没有实际含义&#xff0c;只是为了代码能执行通过&#xff0c;不报错而已&#xff0c;相当于在代码种占一个位置&#xff0c;后续完善 类是对象的加工厂 2.创建对象 carCar()即是创建对象的过程 3、类的成员 3.1 实例…

PC 机与单片机通信(RS232 协议)

PC 机与单片机通信(RS232 协议) 目录&#xff1a; 1、单片机串口通信的应用 2、PC控制单片机IO口输出 3、单片机控制实训指导及综合应用实例 4、单片机给计算机发送数据&#xff1a; [实验任务] 单片机串口通信的应用&#xff0c;通过串口&#xff0c;我们的个人电脑和单…

操作系统大会 openEuler Summit 2023即将召开,亮点不容错过

【12月11日&#xff0c;北京】数字化、智能化浪潮正奔涌而来。操作系统作为数字基础设施的底座&#xff0c;已经成为推动产业数字化、智能化发展的核心力量&#xff0c;为数智未来提供无限可能。12月15-16日&#xff0c;以“崛起数字时代 引领数智未来”为主题的操作系统大会 &…

双向链表(数据结构与算法)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1…