关于“Python”的核心知识点整理大全8
创始人
2024-09-24 19:37:36
0

目录

​编辑

4.5 元组

4.5.1 定义元组

dimensions.py

4.5.2 遍历元组中的所有值

4.5.3 修改元组变量

4.6 设置代码格式

4.6.1 格式设置指南

4.6.2 缩进

4.6.3 行长

4.6.4 空行

4.6.5 其他格式设置指南

4.7 小结

第5章

if语句

5.1 一个简单示例

cars.py

5.2 条件测试

5.2.1 检查是否相等

5.2.2 检查是否相等时不考虑大小写

5.2.3 检查是否不相等

toppings.py

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


4.5 元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网 站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素, 元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

4.5.1 定义元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来 访问其元素,就像访问列表元素一样。

例如,如果有一个大小不应改变的矩形,可将其长度和宽度存储在一个元组中,从而确保它 们是不能修改的:

dimensions.py
1 dimensions = (200, 50) 2 print(dimensions[0]) print(dimensions[1])

我们首先定义了元组dimensions(见1),为此我们使用了圆括号而不是方括号。接下来,我 们分别打印该元组的各个元素,使用的语法与访问列表元素时使用的语法相同(见2):

200 50

下面来尝试修改元组dimensions中的一个元素,看看结果如何:

dimensions = (200, 50) 1 dimensions[0] = 250

1处的代码试图修改第一个元素的值,导致Python返回类型错误消息。由于试图修改元组的 操作是被禁止的,因此Python指出不能给元组的元素赋值:

Traceback (most recent call last):  File "dimensions.py", line 3, in   dimensions[0] = 250 TypeError: 'tuple' object does not support item assignment

代码试图修改矩形的尺寸时,Python报告错误,这很好,因为这正是我们希望的。

4.5.2 遍历元组中的所有值

像列表一样,也可以使用for循环来遍历元组中的所有值:

dimensions = (200, 50) for dimension in dimensions:  print(dimension)

就像遍历列表时一样,Python返回元组中所有的元素:

200 50

4.5.3 修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺 寸,可重新定义整个元组:

1 dimensions = (200, 50) print("Original dimensions:") for dimension in dimensions:  print(dimension) 2 dimensions = (400, 100) 3 print("\nModified dimensions:") for dimension in dimensions:  print(dimension) 

我们首先定义了一个元组,并将其存储的尺寸打印了出来(见1);接下来,将一个新元组 存储到变量dimensions中(见);然后,打印新的尺寸(见3)。这次,Python不会报告任何错 误,因为给元组变量赋值是合法的:

Original dimensions: 200 50 Modified dimensions: 400 100 

相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都 不变,可使用元组。

4.6 设置代码格式

随着你编写的程序越来越长,有必要了解一些代码格式设置约定。请花时间让你的代码尽可 能易于阅读;让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码。

为确保所有人编写的代码的结构都大致一致,Python程序员都遵循一些格式设置约定。学会 编写整洁的Python后,就能明白他人编写的Python代码的整体结构——只要他们和你遵循相同的 指南。要成为专业程序员,应从现在开始就遵循这些指南,以养成良好的习惯。

4.6.1 格式设置指南

若要提出Python语言修改建议,需要编写Python改进提案(Python Enhancement Proposal, PEP)。PEP 8是最古老的PEP之一,它向Python程序员提供了代码格式设置指南。PEP 8的篇幅很 长,但大都与复杂的编码结构相关。

Python格式设置指南的编写者深知,代码被阅读的次数比编写的次数多。代码编写出来后, 调试时你需要阅读它;给程序添加新功能时,需要花很长的时间阅读代码;与其他程序员分享代 码时,这些程序员也将阅读它们。

如果一定要在让代码易于编写和易于阅读之间做出选择,Python程序员几乎总是会选择后 者。下面的指南可帮助你从一开始就编写出清晰的代码。

4.6.2 缩进

PEP 8建议每级缩进都使用四个空格,这既可提高可读性,又留下了足够的多级缩进空间。 在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的 效果很好,但混合使用制表符和空格会让Python解释器感到迷惑。每款文本编辑器都提供了一种 设置,可将输入的制表符转换为指定数量的空格。你在编写代码时应该使用制表符键,但一定要 对编辑器进行设置,使其在文档中插入空格而不是制表符。

在程序中混合使用制表符和空格可能导致极难解决的问题。如果你混合使用了制表符和空 格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这样的功能。

4.6.3 行长

很多Python程序员都建议每行不超过80字符。最初制定这样的指南时,在大多数计算机中, 终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的字符数多得多,为何还要使用79 字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标 准行长可以让他们在屏幕上并排打开两三个文件时能同时看到各个文件的完整行。

PEP 8还建议 注释的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加 格式化字符。 PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,你不用过多地考虑代码的行长,但别忘了,协作编写程序时,大家几乎都遵守PEP 8指南。 在大多数编辑器中,都可设置一个视觉标志——通常是一条竖线,让你知道不能越过的界线在什 么地方。


注意 附录B介绍了如何配置文本编辑器,以使其:在你按制表符键时插入四个空格;显示一条 垂直参考线,帮助你遵守行长不能超过79字符的约定。


4.6.4 空行

要将程序的不同部分分开,可使用空行。你应该使用空行来组织程序文件,但也不能滥用; 只要按本书的示例展示的那样做,就能掌握其中的平衡。例如,如果你有5行创建列表的代码, 还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,你不应使用三四 个空行将它们隔开。

空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读 代码,但不关心垂直间距。

4.6.5 其他格式设置指南

PEP 8还有很多其他的格式设置建议,但这些指南针对的程序大都比目前为止本书提到的程 序复杂。等介绍更复杂的Python结构时,我们再来分享相关的PEP 8指南。

4.7 小结

在本章中,你学习了:如何高效地处理列表中的元素;如何使用for循环遍历列表,Python 如何根据缩进来确定程序的结构以及如何避免一些常见的缩进错误;如何创建简单的数字列表, 以及可对数字列表执行的一些操作;如何通过切片来使用列表的一部分和复制列表。你还学习了 元组(它对不应变化的值提供了一定程度的保护),以及在代码变得越来越复杂时如何设置格式, 使其易于阅读。

在第5章中,你将学习如何使用if语句在不同的条件下采取不同的措施;学习如何将一组较 复杂的条件测试组合起来,并在满足特定条件时采取相应的措施。你还将学习如何在遍历列表时, 通过使用if语句对特定元素采取特定的措施。

第5章

if语句

5.1 一个简单示例

下面是一个简短的示例,演示了如何使用if语句来正确地处理特殊情形。假设你有一个汽车 列表,并想将其中每辆汽车的名称打印出来。对于大多数汽车,都应以首字母大写的方式打印其 名称,但对于汽车名'bmw',应以全大写的方式打印。下面的代码遍历一个列表,并以首字母大 写的方式打印其中的汽车名,但对于汽车名'bmw',以全大写的方式打印:

cars.py

cars = ['audi', 'bmw', 'subaru', 'toyota'] for car in cars: 1 if car == 'bmw':  print(car.upper())  else:  print(car.title()) 

这个示例中的循环首先检查当前的汽车名是否是'bmw'(见)。如果是,就以全大写的方式 打印它;否则就以首字母大写的方式打印:

Audi BMW Subaru Toyota 

这个示例涵盖了本章将介绍的很多概念。下面先来介绍可用来在程序中检查条件的测试。

5.2 条件测试

每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。Python 根据条件测试的值为True还是False来决定是否执行if语句中的代码。如果条件测试的值为True, Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。

5.2.1 检查是否相等

大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值 是否与特定值相等:

1 >>> car = 'bmw' 2 >>> car == 'bmw' True

我们首先使用一个等号将car的值设置为'bmw'(见1),这种做法你已见过很多次。接下来, 使用两个等号(==)检查car的值是否为'bmw'。这个相等运算符在它两边的值相等时返回True, 否则返回False。在这个示例中,两边的值相等,因此Python返回True。 如果变量car的值不是'bmw',上述测试将返回False:

1 >>> car = 'audi' 2 >>> car == 'bmw' False

一个等号是陈述;对于1处的代码,可解读为“将变量car的值设置为'audi'”。两个等号是 发问;对于2处的代码,可解读为“变量car的值是'bmw'吗?”。大多数编程语言使用等号的方 式都与这里演示的相同。

5.2.2 检查是否相等时不考虑大小写

在Python中检查是否相等时区分大小写,例如,两个大小写不同的值会被视为不相等:

>>> car = 'Audi' >>> car == 'audi' False 

如果大小写很重要,这种行为有其优点。但如果大小写无关紧要,而只想检查变量的值,可 将变量的值转换为小写,再进行比较:

>>> car = 'Audi' >>> car.lower() == 'audi' True

无论值'Audi'的大小写如何,上述测试都将返回True,因为该测试不区分大小写。函数lower() 不会修改存储在变量car中的值,因此进行这样的比较时不会影响原来的变量:

1 >>> car = 'Audi' 2 >>> car.lower() == 'audi' True 3 >>> car 'Audi'

在1处,我们将首字母大写的字符串'Audi'存储在变量car中;在2处,我们获取变量car的 值并将其转换为小写,再将结果与字符串'audi'进行比较。这两个字符串相同,因此Python返回 True。从3处的输出可知,这个条件测试并没有影响存储在变量car中的值。

网站采用类似的方式让用户输入的数据符合特定的格式。例如,网站可能使用类似的测试来 确保用户名是独一无二的,而并非只是与另一个用户名的大小写不同。用户提交新的用户名时, 将把它转换为小写,并与所有既有用户名的小写版本进行比较。执行这种检查时,如果已经有用 户名'john'(不管大小写如何),则用户提交用户名'John'时将遭到拒绝。

5.2.3 检查是否不相等

要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示不,在很多编 程语言中都如此。

下面再使用一条if语句来演示如何使用不等运算符。我们将把要求的比萨配料存储在一个变 量中,再打印一条消息,指出顾客要求的配料是否是意式小银鱼(anchovies):

toppings.py

requested_topping = 'mushrooms' 1 if requested_topping != 'anchovies':  print("Hold the anchovies!") 

1处的代码行将requested_topping的值与'anchovies'进行比较,如果它们不相等,Python 将返回True,进而执行紧跟在if语句后面的代码;如果这两个值相等,Python将返回False,因此 不执行紧跟在if语句后面的代码。

由于requested_topping的值不是'anchovies',因此执行print语句:

Hold the anchovies! 

你编写的大多数条件表达式都检查两个值是否相等,但有时候检查两个值是否不等的效率 更高。


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

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

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

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

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

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

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

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

相关内容

热门资讯

电脑安卓系统重装系统,轻松实现... 电脑突然卡成“龟速”,是不是安卓系统闹脾气了?别急,让我带你一步步来个“大变身”,让你的电脑焕然一新...
安卓10系统升鸿蒙,华为操作系... 你知道吗?最近手机圈可是炸开了锅,不少安卓用户都在悄悄地期待着一件大事——升级鸿蒙系统!是的,你没听...
安卓系统平板推荐便宜,实惠好用... 亲爱的读者们,你是不是在为挑选一款物美价廉的安卓系统平板而烦恼呢?别急,今天我就要给你带来一份超级详...
ios系统和安卓系统的客观,全... 你有没有想过,为什么你的手机里装的是iOS还是安卓系统呢?这两种系统就像两个性格迥异的好友,各有各的...
谷歌怎么下安卓系统,谷歌安卓系... 亲爱的读者们,你们有没有想过,我们每天离不开的安卓系统,其实背后有着谷歌这只“大灰狼”在操控呢?没错...
安卓系统 手持云台,便携智能手... 你有没有想过,用手机拍视频的时候,画面总是摇摇晃晃的,就像小船在海上飘荡一样?别急,今天就来给你安利...
谷歌安卓系统流畅吗,安卓系统流... 你有没有发现,手机用久了,有时候就像老牛拉车一样,慢吞吞的,让人心里直发慌?这不,最近我在研究各种手...
给苹果装安卓系统,苹果设备安装... 你有没有想过,在你的苹果设备上也能玩转安卓系统呢?没错,就是那个让你在手机上畅游的安卓世界,现在也能...
安卓主板系统密码破解,多重方法... 你有没有遇到过这种情况?手机、平板或者智能设备突然间就变成了“黑屏”,屏幕上只显示着一个熟悉的安卓小...
统帅电视安卓版系统,畅享智能生... 你家的电视是不是也跟我的似的,时不时地来点小脾气,比如系统卡顿啦,应用安装困难啦?别急,今天就来给你...
安卓系统禁用了adb,解决方案... 亲爱的安卓用户们,你们有没有遇到过这样的情况:想用ADB工具给手机来个“大变身”,结果却发现,哎呀呀...
安卓系统墙纸怎么设置,安卓系统... 手机墙纸,你的个性小天地亲爱的手机控们,你是否厌倦了千篇一律的桌面背景?想要给手机换上独一无二的墙纸...
密码解锁推荐安卓系统,安全与便... 手机锁屏密码又忘了?别急,我来给你支招! 在这个信息爆炸的时代,手机已经成了我们生活中不可或缺的好伙...
2012安卓定制系统吗,创新与... 你有没有想过,手机里的安卓系统其实就像是个大厨,每个品牌都给它加上了自己的秘制调料,让这个原本平淡无...
改安卓车机系统,智能驾驶体验新... 你有没有发现,你的车机系统有点儿“老态龙钟”了?别急,今天就来给你支个招儿,让你的安卓车机系统焕然一...
迁移系统和安卓拍照,深入解析安... 你的安卓拍照,新手机也能轻松“搬家”!想象你手中握着一部充满回忆的安卓手机,里面存满了珍贵的照片和视...
蒙鸿系统安卓套装,开启全场景智... 你有没有听说最近华为的新花样?没错,就是那个让所有人都眼前一亮的蒙鸿系统安卓套装!想象你的手机、平板...
安卓系统打印有重影,安卓系统打... 你有没有遇到过这种情况:手机上的照片打印出来,竟然出现了重影?别急,今天就来给你揭秘安卓系统打印重影...
删除安卓系统无用文件,识别与删... 手机里的文件越来越多,是不是感觉像是在跟你的手机谈恋爱,它总是给你带来“惊喜”?不过,别高兴得太早,...
原生安卓双系统安装,PC实现W... 哇塞,你有没有想过,你的电脑不仅能装Windows,还能装个安卓系统?没错,就是那个让你手机里各种A...