外贸soho东莞建站,网站建设与优化计入什么科莫,建设设计院网站,意大利之家设计网站Python中有两种类型的循环: while 循环 和 for 循环
1. while 循环
while循环是#xff1a; 检查一个条件表达式#xff0c;只要条件表达式计算结果为True 时#xff0c; 就执行下面缩进的代码。
如此反复#xff0c;直到条件表达式计算结果为False时#xff0c;结束 循…Python中有两种类型的循环: while 循环 和 for 循环
1. while 循环
while循环是 检查一个条件表达式只要条件表达式计算结果为True 时 就执行下面缩进的代码。
如此反复直到条件表达式计算结果为False时结束 循环。
比如:
command input(请输入命令:)
while command ! exit:print(f输入的命令是{command})command input(请输入命令)其中 while command ! exit 会判断用户输入的命令 (command 变量) 是否等于字符串 exit
如果不等于, 就执行下面缩进的代码。下面缩进的代码就是循环体内的代码还会再次让用户输入命令到变量command中。
如果等于字符串 exit 就结束循环。
如果用户输入的命令一直都不是字符串 exit 就会一直执行循环。 用 while 循环要注意 循环条件的设置处理不当有可能导致 循环的条件始终为True循环永远不会结束变成了死循环。
比如我们要打印出 从 1 到 100 的数字应该写成下面这样
i 1
while i 100:print(i)i 1如果不小心漏掉最后一句变成
i 1
while i 100:print(i)这样 i 的值始终不变 循环的条件 i 100 一直都是满足的就变成死循环了。程序一直打印 i 值为 1 永不结束。
2. for 循环
for循环的用法
for 循环 通常是从一个sequence类型比如 字符串、列表 或者 元组中 依次取出每个元素进行操作。
比如我要打印出 一个学生年龄 列表中所有的学生信息 可以这样写
studentAges [小王:17, 小赵:16, 小李:17, 小孙:16, 小徐:18]for student in studentAges:print(student)注意for student in studentAges 这里的 student 变量就依次代表了 studentAges里面的每一个元素执行下面缩进的代码 print(student)。
这里有5个学生的信息 那么这个循环就执行了5次。
从循环的第1次到第5次student 变量的值分别为
小王:17
小赵:16
小李:17
小孙:16
小徐:18所以上面的循环可以依次打印出上面的元素。 当然上面的例子用while循环也一样可以达到目的就是稍微复杂一些
studentAges [小王:17, 小赵:16, 小李:17, 小孙:16, 小徐:18]idx 0
while idx len(studentAges):currentEle studentAges[idx]print(currentEle)idx 1上面的代码里我们用一个变量idx代表 列表当前元素的索引。 在循环体里面 每执行一次就 让idx 的值加1。 这样的循环变量 currentEle就依次等于 列表里面的每个元素。
如果循环操作一个空列表如下
for one in []:print(one)循环体内的代码不会执行。
循环n次
开发程序时我们经常需要 循环执行某段代码 n次
打印出100次可以使用for 循环 和 一个内置类型 range 如下所示
# range里面的参数100 指定循环100次
# 其中 n 依次为 0,1,2,3,4... 直到 99
for n in range(100): print(n) 注意
和Python 2 不同 Python 3 中的range 并不是一个函数不会返回一个数字列表。 Python 3 中的range 是一个 类如果你想返回一个 从 0到99的数字列表 可以这样写 : list(range(100)) range
range(100)传入1个参数。从0,1,2,3,4… 直到 99。
range(50,100)传入2个参数。从50… 直到 99。
range(50,100,5)传入3个参数。从50… 直到 99步长为5。
print(list(range(100)))
print(--------------------------------)
print(list(range(50, 100)))
print(--------------------------------)
print(list(range(50, 100, 5)))$ python main.py
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
--------------------------------
[50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
--------------------------------
[50, 55, 60, 65, 70, 75, 80, 85, 90, 95]enumerate 函数
有的时候在使用for循环从列表或者元组中遍历元素的时候除了要获取每个元素还需要得到每个元素在列表元组里面的索引。
比如找出下面列表中年龄大于17岁的学员打印出他们在列表中的索引
studentAges [小王:17, 小赵:16, 小李:18, 小孙:16, 小徐:18]这时候可以使用 enumerate 函数像下面这样
# 小王:17.split(:) 分割字符串成一个列表[小王, 17]
# 小王:17.split(:)[-1] 取分割后列表的最后一个元素 17
print(小王:17.split(:)) # 输出 [小王, 17]
print(小王:17.split(:)[-1]) # 输出 17studentAges [小王:17, 小赵:16, 小李:17, 小孙:16, 小徐:18]# enumerate (studentAges) 每次迭代返回 一个元组
# 里面有两个元素依次是 元素的索引和元素本身
for idx, student in enumerate(studentAges):if int(student.split(:)[-1]) 17:print(idx)
$ python main.py
[小王, 17]
17
0 小王:17
1 小赵:16
2 小李:17
3 小孙:16
4 小徐:18
43. break 终止循环
循环体内的代码在发现某种条件满足的时候需要终止循环。可以使用关键字 break
while True:command input(请输入命令:)if command exit:breakprint(f输入的命令是{command})print(程序结束)注意解释器执行到 循环内的 break 语句就会从循环while 退出
接着执行while 循环下面的代码 print(程序结束)。
break 对 for 循环也一样有效如下
for i in range(100):command input(请输入命令:)if command exit:breakprint(f输入的命令是{command})print(程序结束)4. 函数中的 break 和 return
return 只能用在函数里面 表示从函数中返回。代码主体部分是不能用return的。
函数中的循环体内的代码 使用 return 和 break 都可以从循环中跳出。
但是break 只是 跳出循环 如果循环后面还有代码 会进行执行。
return 则会从函数里面立即返回 函数体内的后续任何代码都不执行了
5. continue
有时我们循环体内的代码在发现某种条件满足的时候不是要终止整个循环而是只结束当前这一轮循环后面还要继续循环的执行。
while True:command input(请输入命令:)if command exit:breakif command cont:continueprint(f输入的命令是{command})print(程序结束)continue 只是当前这次循环结束就是这次循环 continue 后面的代码不执行了 后续的循环还要继续进行。
而break 是结束整个循环。
6. 列表推导式
我们经常需要这样处理一个列表把一个列表里面的每个元素 经过相同的处理 生成另一个列表。
比如一个列表1里面都是数字我们需要生成一个新的列表B依次存放列表A中每个元素的平方
当然可以用for循环处理像这样
list1 [1,2,3,4,5,6]
list2 []
for num in list1:list2.append(num*num)Python还有更方便的语法可以这样写
list1 [1,2,3,4,5,6]
list2 [num**2 for num in list1]这种写法通常叫做 列表推导式 。
就是把一个列表里面的每个元素经过简单的处理生成另一个列表的操作。
其中 for 前面的部分就是要对取出的元素进行的处理操作 上面的例子是计算平方。