python循环的用法,循环语句 python

  python循环的用法,循环语句 python

  循环是一种反复运动或变化的规律;在Python中,循环的操作也叫遍历。和现实中一样,Python中也有无限循环方法和有限循环方法。本文将通过实例详细讲解Python中的loop方法,供参考。

  

目录
for Loop while循环扩展:列表求导常用求导方法循环的延续和退出(continue and break)利用break实现九九乘法表什么是循环?——循环是反复运动或变化的规律;在Python中,循环的操作也称为“遍历”。事实上,Python中存在无限循环。

  方法和有限循环方法。接下来,我们先来看看有限循环的方法——for循环。

  

for 循环

  for循环的作用:list、tuple、string、dictionary中的每一个元素都被for关键字遍历(循环),循环在读取最后一个元素时结束。

  for循环的用法:示例如下

  for iterable : # for循环语句块中的item

  打印(项目)#代码块,对应于每个循环

  #代码块需要缩进

  # iterable3360可回收的数据类型,如列表、元组、字符串、字典

  # item:iterable中的每个成员(元素)

  #返回值:for循环是一个没有返回值的语句;但在某些特殊情况下,有返回值。

  Books=[Python不是光头, PHP是最美的语言, DBA从入门到删库,爬虫换监狱]

  对于书中的书:

  印刷品(书籍)

  打印(“完成”)

  #执行结果如下:

  # Python不是光头

  # PHP是最美的语言

  从输入到删除的数据库管理员数量

  #面向监狱的爬虫

  #完成

  str_demo=Python

  对于str_demo:中的I

  打印(一)

  # P

  # y

  # t

  # h

  # o

  # n

  users={name: Neo , age: 18}

  对于用户:中的用户

  打印(用户,用户[用户])

  #执行结果如下:

  #命名Neo

  # 18岁

  #每次遍历循环都要得到kay的值,不太友好。有没有更好的方法为我们获取价值?继续往下看。

  字典利用 items 内置函数进行 for 循环

  items()内置函数的作用:把字典变成伪列表,把每个键和值变成元组。

  items()内置函数的用法:举例如下

  对于键,值在dict.items():中

  打印(关键字,值)

  # items :无参数

  # key:在for循环体中获得的字典的当前元素的键。

  # value:for循环体中对应键的值。

  #返回值:for循环是一个没有返回值的语句;Items返回一个列表。

  dict_users={name: Neo , age: 18}

  对于键,值在dict_users.items():中

  打印(关键字,值)

  #

  执行结果如下:

  # >>> name Neo

  # >>> age 18

  # 如果是一个列表内存在着字典元素呢?

  user_list = [{name: Neo}, {name: Jack}]

  for user in user_list:

   print(user.get(name))

   print(type(user))

   print(user.get(age))

  # >>> 执行结果如下:

  # >>> Neo

  # >>> <class dict>

  # >>> None # 因为 age 并没有被定义,所以返回的是 Node

  # >>> Jack

  # >>> <class dict>

  # >>> None

  

  Python 的内置函数 – range

  range() 内置函数的功能:返回的是一个一定范围的可迭代对象(即可进行 for 循环),元素为整型。它不是列表,无法打印信息,但是可以循环。range() 函数一般帮助我们执行一定次数的循环而使用,比如设定循环5次。

  range() 内置函数的用法:示例如下

  

for item in range(start, stop, step=1):

   print(item)

  # >>> start : 开始的数字,类似索引的左边

  # >>> stop : 结束的数字,类似索引的右边

  # >>> step : 跳步,类似索引中的第三个参数

  # >>> 返回值 : 返回一个可迭代(循环的)以整型为主的对象

  # >>> 需要注意的是 range() 也是 左含右不含的方式

  test_int = range(5)

  for item in test_int:

   print(item)

  # >>> 执行结果如下:

  # >>> 0

  # >>> 1

  # >>> 2

  # >>> 3

  # >>> 4

  

  else 在 for 循环中的使用

  

  • else 语句只能在 for 循环正常退出后执行
  • 也就是说循环没有报错,没有中途停止的情况下, else 语句 才会发生作用

  示例如下:

  

  for 变量 in 序列:

   代码块 1

  else:

   代码块 2

  test_int = range(5)

  for item in test_int:

   print(item)

  else:

   print(for循环成功结束)

  

  重点

  

  • 若想执行 else 里面的代码块,必须是触达到循环条件且为假
  • 如果在循环里面提前结束了循环(break),则不会执行 else 里面的代码块

  for 循环删除列表元素的避坑指南

  首先,我们定义一个列表,使用 for 循环 删除列表中偶数(即能够被2整除的元素)

  

test_list = [3, 6, 8, 9, 25, 36, 100, 105]

  for item in test_list:

   if item % 2 == 0:

   test_list.remove(item)

  print(test_list)

  # 执行结果如下:

  # >>> [3, 8, 9, 25, 100, 105]

  

  这里我们会发现 元素 8 、元素 100 仍然存在,删除 偶数 元素的操作存在了遗漏。这是为什么呢?

  其实,这是因为 remove() 函数在执行删除一个元素之后,后边的元素会自动补位到上一个被删除元素的位置上去。然而此时的 for 循环 在正向的往下运行,会略过这个补位的元素,由此就造成了遍历的遗漏。

  所以正确的遍历代码如下:

  

test_list = [3, 6, 8, 9, 25, 36, 100, 105]

  for item in test_list[::-1]:

   if item % 2 == 0:

   test_list.remove(item)

  print(test_list)

  # 执行结果如下:

  # >>> [3, 9, 25, 105]

  

  嵌套 for 循环

  什么是嵌套 for 循环? —> 即 for 循环中还有 for 循环

  示例如下:

  

for i in range(3):

   for j in range(2):

   print(内层循环:, j)

   print(外层循环:, i)

  # >>> 执行结果如下:

  # >>> 内层循环: 0

  # >>> 外层循环: 0

  # >>> 内层循环: 1

  # >>> 外层循环: 0

  # >>> 内层循环: 0

  # >>> 外层循环: 1

  # >>> 内层循环: 1

  # >>> 外层循环: 1

  # >>> 内层循环: 0

  # >>> 外层循环: 2

  # >>> 内层循环: 1

  # >>> 外层循环: 2

  name = [Neo, Jack, Lily]

  age = [17, 18]

  for a in name:

   # print(a)

   for b in age:

   print(姓名:, a, 年龄:, b)

  # >>> 执行结果如下:

  # >>> 姓名: Neo 年龄: 17

  # >>> 姓名: Neo 年龄: 18

  # >>> 姓名: Jack 年龄: 17

  # >>> 姓名: Jack 年龄: 18

  # >>> 姓名: Lily 年龄: 17

  # >>> 姓名: Lily 年龄: 18

  

  

  

while 循环

  什么是 while 循环? —> 以一定条件为基础的循环,条件满足的情况下无限循环,条件不满足则退出循环。

  while 循环 不依赖可迭代的数据类型,而 for 循环依赖。

  while 循环的功能:在满足条件的情况下,会无限循环;不满足条件后,将停止循环。

  while 循环的用法:示例如下

  

while bool_result:

   do

  # >>> bool_result : 布尔类型,此处与 if 语法完全一直

  # >>> do : while 循环体的代码块;需要缩进

  # >>> 返回值 : while 循环是语句,没有返回值

  test_int = 1

  while test_int < 5:

   print(test_int, end=\n)

   test_int += 1

  # >>> 执行结果如下:

  # >>> 1

  # >>> 2

  # >>> 3

  # >>> 4

  

  

users_list = [Neo, Jack, Lily, Adem]

  index = 0

  length = len(users_list)

  while index <= length - 1:

   print(当前循环到的用户名为:, users_list[index])

   index += 1

  print(while循环结束)

  # >>> 执行结果如下:

  # >>> 当前循环到的用户名为: Neo

  # >>> 当前循环到的用户名为: Jack

  # >>> 当前循环到的用户名为: Lily

  # >>> 当前循环到的用户名为: Adem

  # >>> while循环结束

  

  注意:应避免 while True: 的情况,否则会进入死循环。

  

  

拓展:列表推导式

  列表推导式也叫做列表解析式,是一种快速创建列表的简洁语法。

  列表推导式以[]中括号为标志,一般由表达式、循环语句、条件语句组成(条件语句非必须)。

  

  列表推导式 和 for 循环明显存在的关联,下面我们看一下对比。

  

# 20以内所有偶数的平方

  list_1 = []

  for x in range(20):

   if x % 2 == 0:

   list_1.append(x**2)

  print(list_1)

  # 运行结果:[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

  # 列表推导式,20以内所有偶数的平方

  print([x ** 2 for x in range(20) if x % 2 == 0])

  # 运行结果:[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

  

  列表推导式对 for 循环语句的格式做了一下简单的变形,并用 [ ] 括起来,最终将循环过程中计算表达式得到的一系列值组成一个列表。

  

  

常见的推导式方法

  元组推导式如下:

  

# 元组推导式

  t_1 = (x for x in range(10)) # 结果是生成器对象,使用tuple()函数将其转换为元组

  print(tuple(t_1))

  # 运行结果:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

  

  字典推导式如下:

  

# 字典推导式

  print({x:x**2 for x in range(10)})

  # 运行结果:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

  

  集合推导式如下:

  

# 集合推导式

  print({x for x in range(10)})

  # 运行结果:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

  

  

  

循环的继续与退出(continue 与 break)

  前面我们学习了 for 循环 与 while 循环 , 它们可以帮助我们自动处理一些业务。但是在循环中难免会出一些意外的状况,这个时候如果再继续循环下去,就会对我们的业务不利,这个时候就需要使用到 continue 、break 来帮助我们河狸的退出循环。

  

  

continue 的使用

  continue 的功能:循环遇到 continue 将停止本次数据循环,进行下一次循环

  continue 的用法:示例如下

  

while bool:

   continue

  for item in iterable:

   continue

   print(item)

  # >>> continue : 属于语法,不需要加 () 即可执行;无参数

  # >>> 返回值 : continue 是语法,没有返回值。

  count = 1

  while count < 5:

   print(count)

   continue

   count += 1

  # >>> 执行结果如下:

  # >>> 1, 1, 1, 1, ... 无限循环,一直是1

  

  

  

break 的使用

  break 的功能:是循环正常停止循环(遍历),这时如果循环配合了 else 语句,else语句将不执行。

  break 的用法:示例如下

  

while bool:

   break

  for item in iterable

   print(item)

   break

  # >>> break :属于语法,不需要加 () 即可执行;无参数。

  # >>> 返回值 : break 是语法,没有返回值。

  count = 1

  while count < 5:

   print(count)

   count += 1

   break

  # >>> 执行结果如下:

  # >>> 1

  

  条件语句 与 continue、break 的关系

  

  • continu 与 break 通常伴随着循环语句中的条件语句,满足某些条件可以继续执行,不满足某些条件提前结束循环。
  • 在 while 循环中,break 语句的优先权要大于 while 逻辑块的判断结果 (比如上文中的 count += 1)

  示例如下:

  

count = 1

  while count < 5:

   print(count)

   count += 1

   if count == 2:

   break

  # >>> 执行结果如下:

  # >>> 1

  

  

  

循环实现九九乘法表

  代码示例如下:

  

# for 循环 实现九九乘法表

  for i in range(1, 10):

   for j in range(1, i + 1):

   print({} * {} = {}.format(i, j, i * j), end= )

   print()

  # >>> 执行结果如下:

  # >>> 1 * 1 = 1

  # >>> 2 * 1 = 2 2 * 2 = 4

  # >>> 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

  # >>> 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

  # >>> 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25

  # >>> 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36

  # >>> 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49

  # >>> 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64

  # >>> 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

  

  

# while 循环 实现九九乘法表

  i = 0

  j = 0

  while i < 9:

   i += 1

   while j < 9:

   j += 1

   print({} * {} = {}.format(j, i, i * j), end= )

   if i == j:

   j = 0

   print()

   break

  # >>> 执行结果如下:

  # >>> 1 * 1 = 1

  # >>> 1 * 2 = 2 2 * 2 = 4

  # >>> 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9

  # >>> 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16

  # >>> 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25

  # >>> 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36

  # >>> 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49

  # >>> 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64

  # >>> 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81

  

  如何使用一行代码实现九九乘法表

  

print(\n.join([ .join([{} * {} = {} .format(item_1, item_2, item_1 * item_2) for item_2 in range(1, 10) if item_2 <= item_1]) for item_1 in range(1, 10)]))

  # 利用了 列表推导式 及 列表转字符串

  # 但使用这种方式的阅读性极差, 项目中绝不能使用

  

  到此这篇关于Python学习之循环方法详解的文章就介绍到这了,更多相关Python循环内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: