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

news2024/11/24 14:42:39

目录

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博客

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

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

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

相关文章

机器学习与人工智能:一场革命性的变革

机器学习与人工智能&#xff1a;一场革命性的变革 人工智能的概述什么是机器学习定义解释 数据集结构机器学习应用场景 人工智能的概述 1956年8月&#xff0c;在美国汉诺斯小镇宁静的达特茅斯学院中&#xff0c;约翰麦卡锡&#xff08;John McCarthy&#xff09;、马文闵斯基&…

SDXL使用animateDiff和hotshot-xl进行文生视频

截至2023.12.8号&#xff0c;目前市面上有两款适用于SDXL的文生视频开源工具&#xff0c;分别是AnimateDiff和hotshot-xl。 一、工具下载链接 &#xff08;1&#xff09;AnimateDiff的webui版本的git链接&#xff1a; GitHub - continue-revolution/sd-webui-animatediff: A…

前端 usbkey navigator.usb 登录检测

前端 usbkey navigator.usb 实现登录 前言调用api 报错总结 前言 navigator.usb 是一个与USB设备交互的API&#xff0c;它允许网页和浏览器扩展程序访问连接到电脑的USB设备。这个API可以让网页直接与USB设备进行数据交换&#xff0c;而无需用户手动安装任何软件。navigator.u…

【计算机网络实验】实验三 IP网络规划与路由设计(头歌)

目录 一、知识点 二、实验任务 三、头歌测试 一、知识点 IP子网掩码的两种表示方法 32位IP子网掩码&#xff0c;特点是从高位开始连续都是1&#xff0c;后面是连续的0&#xff0c;它有以下两种表示方法&#xff1a; 传统表示法&#xff0c;如&#xff1a;255.255.255.0IP前…

四年成长总结

树叶绿了又落下&#xff0c;树叶落下又绿了……季节如此&#xff0c;时间依然。 每到快结束的时候&#xff0c;总是不免的使人伤怀起来&#xff0c;可能是昨天的昨天仍旧使人“忆”&#xff0c;明天的未知使人“追”&#xff0c;不论是昨天亦或是明天&#xff0c;“斯为泰山而…

如何进行落地的数据分析,并提出落地的分析建议?

落地的数据分析是指将数据分析结果应用到实际业务中&#xff0c;以提供有价值的决策支持和改进方案。在进行落地的数据分析前&#xff0c;需要明确分析目标和需求&#xff0c;制定合适的分析方法和步骤&#xff0c;并在分析过程中不断优化和验证分析结果。以下是进行落地的数据…

AI PC行业深度研究报告:AI PC革新端侧AI交互体验

今天分享的人工智能系列深度研究报告&#xff1a;《AI PC行业深度研究报告&#xff1a;AI PC革新端侧AI交互体验》。 &#xff08;报告出品方&#xff1a;华创证券&#xff09; 报告共计&#xff1a;28页 点击添加图片描述&#xff08;最多60个字&#xff09;编辑 一、硬件端…

爬虫 selenium语法 (八)

目录 一、为什么使用selenium 二、selenium语法——元素定位 1.根据 id 找到对象 2.根据标签属性的属性值找到对象 3.根据Xpath语句获取对象 4.根据标签名获取对象 5.使用bs语法获取对象 6.通过链接文本获取对象 三、selenium语法——访问元素信息 1.获取属性的属性值…

Leetcode—228.汇总区间【简单】

2023每日刷题&#xff08;五十六&#xff09; Leetcode—228.汇总区间 解题思路 我们可以用双指针left 和 right找出每个区间的左右端点。 遍历数组&#xff0c;当right 1< n 且 nums[right1]nums[right]1 时&#xff0c;指针right向右移动&#xff0c;否则区间 [left, …

15:00面试,15:06就出来了,问的问题太变态了。。

刚从小厂出来&#xff0c;没想到在另一家公司我又寄了。 在这家公司上班&#xff0c;每天都要加班&#xff0c;但看在钱给的比较多的份上&#xff0c;也就不太计较了。但万万没想到5月一纸通知&#xff0c;所有人不准加班了&#xff0c;不仅加班费没有了&#xff0c;薪资还要降…

成都工业学院Web技术基础(WEB)实验八:BOM、DOM基本操作

写在前面 1、基于2022级计算机大类实验指导书 2、代码仅提供参考&#xff0c;前端变化比较大&#xff0c;按照要求&#xff0c;只能做到像&#xff0c;不能做到一模一样 3、图片和文字仅为示例&#xff0c;需要自行替换 4、如果代码不满足你的要求&#xff0c;请寻求其他的…

c2-C语言--指针

1.用一级指针遍历一维数组 结论 buf[i]<>*(buf i) <> *(p i)<> p[i] #include <stdio.h>int main(){int buf[5] {10,20 ,30 ,40,50}; //buf[0] --- int // buf --&buf[0] ----int *int *p buf;//&buf[0] --- &*(buf0)printf(&quo…

声明式数据建模、定义简单易懂:下一代 ORM 助你效率倍增 | 开源日报 No.102

prisma/prisma Stars: 34.0k License: Apache-2.0 Prisma 是一个下一代 ORM&#xff0c;包括以下工具&#xff1a; Prisma Client&#xff1a;为 Node.js 和 TypeScript 自动生成的类型安全查询构建器Prisma Migrate&#xff1a;声明式数据建模和迁移系统Prisma Studio&#…

【解刊】IEEE(trans),CCF-A,IF7.9,潜力好刊

计算机类 • 好刊解读 今天小编带来IEEE旗下计算机领域高分好刊&#xff0c;CCF-A类推荐的期刊解读&#xff0c;如您有投稿需求&#xff0c;可作为重点关注&#xff01;后文有相关领域真实发表案例&#xff0c;供您投稿参考~ 01 期刊简介 IEEE Transactions on Mobile Compu…

科研试剂2913223-17-1激酶抑制剂 KWCN-41

KWCN-41 激酶抑制剂 2913223-17-1&#xff08;源自星戈瑞&#xff09; EFdA-TP 核苷逆转录酶抑制剂 950913-56-1 (RT) 3-O-Methylviridicatin TNF-α的抑制剂 6152-57-4 Zidebactam sodium salt β-内酰胺酶抑制剂 1706777-46-9 Triacsin C 酰基辅酶A合成酶抑制剂 76896-80…

【lesson4】数据类型之数值类型

文章目录 数据分类数值类型tinyint类型有符号类型测试无符号类型测试 bit类型测试 float类型有符号测试无符号测试 decimal类型测试 数据分类 数值类型 tinyint类型 说明&#xff1a;tinyint 有符号能存储的范围是-128-127&#xff0c;无符号能存储的范围是0~255 有符号类型…

AI 绘画 | Stable Diffusion 艺术二维码制作

前言 这篇文章教会你如果用Stable Diffusion WEB UI制作艺术二维码,什么是艺术二维码呢?就是普通二维码和艺术图片融合后的二维码图片,如下图所示。主要原理还是使用controlNet的control_v1p_sd15_qrcode_monster模型和光影模型control_v1p_sd15_brightness。 教程 准备…

推荐4个优秀的 Python 时间序列分析库

时间序列分析在金融和医疗保健等领域至关重要&#xff0c;在这些领域&#xff0c;理解随时间变化的数据模式至关重要。在本文中&#xff0c;我们将介绍四个主要的Python库——statmodels、tslearn、tssearch和tsfresh——每个库都针对时间序列分析的不同方面进行了定制。这些库…

【每日一题】1631. 最小体力消耗路径-2023.12.11

题目&#xff1a; 1631. 最小体力消耗路径 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) &#xff0c;且你希望去最右下角的格子 (rows-1, column…

太阳能光伏企业网站建设效果如何

光伏行业近些年发展也比较迅速&#xff0c;其服务/产品拓展度较高&#xff0c;对企业来说&#xff0c;合作商较少更需要多地域寻找目标客户及信息承载展示、拓展等&#xff0c;传统线下方式单一且不足&#xff0c;线上成为众商家经营的方向。 1、品牌宣传、信息呈现难 太阳能…