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.hqwc.cn/news/265423.html

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

相关文章

四川大学携手和鲸打造课内workshop,趣味实践教学助力数据思维培养

“通过描述性统计我们可以看到&#xff0c;学生们对第二食堂的倾慕之心真是苍天可鉴&#xff01;” “综合上述分析&#xff0c;贫困人口有较大概率集中在性别为女&#xff0c;专业为理工科&#xff0c;日常消费次数、消费金额以及卡内盈余都较低的学生之中。” “有些学生长…

Leetcode—198.打家劫舍【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—198.打家劫舍 算法思想 具体思路 首先&#xff0c;我们从上面的题目描述中抽象出题意。 ● 从一个非负整数数组中找到一个子序列&#xff0c;并且该子序列的和最大 ● 子序列中每个数的位置不能够相邻。举例来讲&…

基于conda环境使用mamba/conda安装配置QIIME 2 2023.9 Amplicon扩增子分析环境,q2cli主要功能模块介绍及使用

QIIME 2 2023.9 Amplicon Distribution介绍&#xff1a; 概述 qiime团队专门针对高通量扩增子序列分析退出的conda集成环境&#xff0c;包括了主要和常见的扩增子分析模块&#xff0c;用户可以单独使用各个模块&#xff0c;也可以使用各模块组成不同的分析流程。从2023.09版本…

JAVA安全之Spring参数绑定漏洞CVE-2022-22965

前言 在介绍这个漏洞前&#xff0c;介绍下在spring下的参数绑定 在Spring框架中&#xff0c;参数绑定是一种常见的操作&#xff0c;用于将HTTP请求的参数值绑定到Controller方法的参数上。下面是一些示例&#xff0c;展示了如何在Spring中进行参数绑定&#xff1a; 示例1&am…

代码片段管理器 SnippetsLab激活中文 for Mac

SnippetsLab Mac是Mac平台非常不错的代码片段管理器软件&#xff0c;无需使用鼠标即可快速搜索&#xff0c;预览&#xff0c;打开或复制您的代码段&#xff0c;非常简单方便。SnippetsLab使用嵌套文件夹&#xff0c;标签和智能组支持在一个地方管理所有有价值的代码片段变得简单…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion简介

Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如

6.H3C命令行简介

6.H3C命令行简介 [H3C]:用户视图模式,仅能做基本参数配置,权限较小<H3C>:系统视图模式,可做高级配置system-view:切换到系统视图模式 quit:退出当前模式 sysname XXX:给系统命名,必须在系统视图模式下操作 display this 查看当前配置dis this int gi 0/0 :进入接口gi0…

UE5像素流实现

1.下载像素流插件(Pixel Streaming),勾选之后重启UE 2.设置额外启动参数&#xff08;-AudioMixer -PixelStreamingIPlocalhost -PixelStreamingPort8888&#xff09; 3.项目打包 4.创建项目启动快捷方式(Alt鼠标左键按住XXX.exe文件拖动) 5.快捷方式文件 配置项目运行文件参数(…

JVM虚拟机系统性学习-运行时数据区(方法区、程序计数器、直接内存)

方法区 方法区本质上是 Java 编译后代码的存储区域&#xff0c;存储了每一个类的结构信息&#xff0c;如&#xff1a;运行时常量池、成员变量、方法、构造方法和普通方法的字节码指令等内容 方法区主要存储的数据如下&#xff1a; Class 类型信息&#xff0c;如该 Class 为 …

Linux:环境变量

目录 1.基本变量 2.通过代码获取环境变量 2.1 main传参 2.2 全局变量environ 2.3 系统调用getenv() 3.在脚本文件中添加环境变量 4.环境变量通常是具有全局属性 1.基本变量 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数…

vuepress-----22、其他评论方案

vuepress 支持评论 本文讲述 vuepress 站点如何集成评论系统&#xff0c;选型是 valineleancloud, 支持匿名评论&#xff0c;缺点是数据没有存储在自己手里。市面上也有其他的方案, 如 gitalk,vssue 等, 但需要用户登录 github 才能发表评论, 但 github 经常无法连接,导致体验…

指针,函数指针,二级指针,指针传参,回调函数,指针步长

文章目录 指针是什么&#xff1f;指针的定义指针的大小 指针类型指针有哪些类型&#xff1f;指针类型有什么意义&#xff1f;代码演示&#xff1a;(偏移)代码演示(指针解引用时取出的字节数)其他例子 野指针野指针的成因如何避免野指针 指针运算指针整数指针-指针指针的关系运算…