操作列表、循环和循环语句(Python语言基础)


一、for循环中的操作

1.1、for循环语句使用格式(处理列表)
for 临时变量 in 既有列表名:
    代码块

举个栗子:

My_lovers=['Mom','Dad','Sister','Wyx']

for lover in My_lovers:
    print(lover)

这串代码的意思是:

首先定义了一个列表My_lovers,接下来定义了一个for循环,这个for循环里面的lover是一个变量,这个变量从My_lovers中按顺序抽取值赋值给lover,lover在这里可以理解为一个临时变量,然后执行下面的打印语句,再回到for循环开始,周而复始······直到列表结束,开始执行下一行代码,由于之后没有代码了,所以程序结束。

刚开始使用循环时请牢记,不管列表包含多少个元素,每个元素都将被执行循环指定的步骤。如果列表包含 100万个元素,Python就将重复执行指定的步骤100万次,而且通常速度非常快。

提醒:for循环语句后面的冒号绝对不能少!!!

提醒:for循环语句下面的缩进Tab键也不能少,Python将for语句与后面的缩进的代码视为一体。

临时变量命名风格:

利用英文单数和复数的形式来命名列表和单个元素(临时变量)。

for lover in My_lovers:
for dog in dogs:
for onePerson in people:
1.2、在for循环中执行更多的操作

在for循环中可以对每个元素进行任意操作,代码写多少行都无所谓。不过要注意的是,在for语句的后面,每行缩进的代码都是循环的一部分。

bitchs=['xyg','lpz','dwh','zwr']

for bitch in bitchs:
    print(f"{bitch},fuck you!!!")
    print(bitch+'SB')
    

二、缩进问题

**Python 根据缩进来判断代码行与程序其他部分的关系。**Python通过缩进让代码更易读。简单地说,它要求你使用缩进让代码整洁且结构清晰。在较长的Python 程序中,你将看到缩进程度各不相同的代码块,从而对程序的组织结构有大致的认识。

比如:for循环结束后怎么办呢?通常,你想提供总结性输出或接着执行程序必须完成的其他任务。在 for 循环后面,没有缩进的代码都只执行一次,不会重复执行。 使用 for循环处理数据,是一种对数据集执行整体操作的不错方式。例如,你可能使用 for循环来初始化游戏——遍历角色列表,将每个角色都显示到屏幕上;然后在循环后面添加一些代码,在屏幕上绘制所有角色后显示一个 Play Now 按钮。

举个栗子:

bitchs=['xyg','lpz','dwh','zwr']

for bitch in bitchs:
    print(f"{bitch},fuck you!!!")
    print(bitch+'SB')
print("OK,fuck you all!!!!")

上面的代码中,由于for循环后的前两个打印语句存在缩进,则视为和for语句为一体,第三个for语句没有缩进,所以只被执行了一次。

当你开始编写必须正确缩进的代码时,需要注意一些常见的缩进错误。例如,程序员有时候会将不需要缩进的代码行缩进,却忘了缩进必须缩进的代码行。查看这样的错误示例,有助于你以后避开它们,以及在它们出现在程序中时进行修复。

下面来看一些较为常见的缩进错误。

2.1 忘记缩进

位于 for 语句后面且属于循环组成部分的代码行,一定要缩进。如果忘记缩进,Python会提醒你:

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)

函数调用print()应该缩进却没有缩进。Python如果没有找到期望缩进的代码块,会让你知道哪行代码出了问题。

通常,将紧跟在 for语句后面的代码行缩进,可消除这种缩进错误。

2.2 忘记缩进额外的代码行

有时候,虽然循环能够运行且不会出现错误,但结果出人意料。当试图在循环中执行多项任务,却忘记缩进其中的一些代码行时,就会出现这种情况。

例如,如果忘记缩进循环中的第二行代码(它告诉每位魔术师,我们期待其下次表演),就会出现这种情况:

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(f"{magician. title()}, that was a great trick!")
print(f"I can't wait to see your next trick, {magician. title()}.\n")

第二个函数调用 print()原本需要缩进, 但Python发现 for语句后面有一行代码是缩进的,因此没有报告错误。最终的结果是,对于列表中的每位魔术师,都执行了第一个函数调用print(),因为它缩进了;而第二个函数调用print()没有缩进,因此只在循环结束后执行一次。由于变量magician的终值为’carolina’,因此只有她收到了消息“looking forward to the next trick”:

这是一个逻辑错误。从语法上看,这些 Python代码是合法的,但由于存在逻辑错误,结果并不符合预期。如果你预期某项操作将针对每个列表元素执行一次,但它总共只执行了一次,请确定是否需要将一行或多行代码缩进。

2.3 不必要的缩进

如果你不小心缩进了无须缩进的代码行,Python将指出这一点:

message = "Hello Python world!"
    print(message)

函数调用 print()无须缩进,因为它并非循环的组成部分。因此 Python将指出这种错误:

为避免意外的缩进错误,请只缩进需要缩进的代码。在前面编写的程序中,只有要在for循环中对每个元素执行的代码需要缩进。

2.4 循环后不必要的缩进

如果你不小心缩进了应在循环结束后执行的代码,这些代码将针对每个列表元素重复执行。在一些情况下,这可能导致Python报告语法错误,但通常只会导致逻辑错误。

如果不小心缩进了向全体魔术师致谢的代码行,结果将如何呢?

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(f"{magician. title()}, that was a great trick!")
    print(f"I can't wait to see your next trick, {magician. title()}.\n")
    
    print("Thank you everyone, that was a great magic show!")

由于最后一行缩进了,它将针对列表中的每位魔术师执行一次:

这也是一个逻辑错误,与2.2节的错误类似。Python不知道你的本意,只要代码符合语法,它就会运行。如果原本只应执行一次的操作执行了多次,可能要对执行该操作的代码取消缩进。

2.5 遗漏冒号

for语句末尾的冒号告诉Python, 下一行是循环的第一行。

magicians = ['alice', 'david', 'carolina']
for magician in magicians
    print(magician)

如果不小心遗漏了冒号,将导致语法错误,因为 Python不知道你想干什么:

        Python 不知道你只是忘记了冒号,还是想添加更多的代码来创建更复杂的循环。如果解释器能够找出修复方案,它将提出建议,如在行尾添加冒号(这里它使用响应 expected’:'指出了这一点)。对于一些错误, Python通过traceback提供了修复建议, 因此很容易修复。但有些错误解决起来要困难得多,虽然最终的修复方案可能只是修改单个字符。即使你花了很长时间才将一个小问题修复,也不要感到难过,因为有这种遭遇的人比比皆是。

三、数列、range()函数

3.1、使用range()函数

range()函数的作用是产生一个左闭右开的整数数列区间,例如range(1,3)产生一个1,2的数列,还有一种提供参数的方式,只提供一个整数参数,这代表着这个这个整数数列的长度,例如range(0)或range(负数)代表着什么都不输出,range(3)代表着从0到2的数列。

for value in range(3):
    print(value)

#下面是输出一个换行符(转义字符)
print('\n')

for value in range(1,5):
    print(value)

注意:range()函数不是生成一个列表。

3.2、创建数值列表

之前说过,range()函数不是生成一个列表,我们可以使用**list()**将range()的结果直接转换为列表,如果将range()作为list()的参数,输出将是一个数值列表。

SB=list(range(1,5))
print(SB)

这里介绍range()函数的第三种参数传递方式,即传递**步长参数****,**在数学上就代表着等差数列的公差,举个栗子:

SB=list(range(1,11,2))
print(SB)

3.3、对数列的统计计算
3.4、列表推导式

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

)]

[外链图片转存中…(img-sENLvkLK-1715713951729)]

[外链图片转存中…(img-H9f81Aqp-1715713951729)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值