Python for循环及基础用法详解

这篇文章为大家介绍python for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素

Python 中的循环语句有 2 种,分别是 while 循环和 for 循环,前面章节已经对 while 做了详细的讲解,本节给大家介绍 for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。

for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

图 1 for 循环语句的执行流程图

例如:

1

2

3

4

name = '张三'

#变量name,逐个输出各个字符

for ch in name:

  print(ch)

运行结果为:


可以看到,使用 for 循环遍历 “张三” 字符串的过程中,迭代变量 ch 先后被赋值为‘张'和‘三',并代入循环体中运行,只不过例子中的循环体比较简单,只有一行输出代码。

for 进行数值循环

在使用 for 循环时,最基本的应用就是进行数值循环。比如说,想要实现从 1 到 100 的累加,可以执行如下代码:

1

2

3

4

5

6

7

print("计算 1+2+...+100 的结果为:")

#保存累加结果的变量

result = 0

#逐个获取从 1 到 100 这些值,并做累加操作

for i in range(101):

  result += i

print(result)

运行结果为:

计算 1+2+...+100 的结果为:
5050

上面代码中,使用了 range() 函数,此函数是 Python 内置的函数,用于生成一系列连续的整数,多用于 for 循环中。

range() 函数的语法格式如下:

range(start,end,step)

此函数中各参数的含义如下:

  1. start:用于指定计数的起始值,如果省略不写,则默认从 0 开始。
  2. end:用于指定计数的结束值(不包括此值),此参数不能省略。
  3. step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。

总之,在使用 range() 函数时,如果只有一个参数,则表示指定的是 end;如果有两个参数,则表示指定的是 start 和 end。

大家也可以根据需要写代码测试一下。

例如:

1

2

3

print("输出10 以内的所有奇数:")

for i in range(1,10,2):

 print(i,end=' ')

运行结果为:

输出10 以内的所有奇数:
1 3 5 7 9

在 Python 2.x 中,除提供 range() 函数外,还提供了一个 xrange() 函数,它可以解决 range() 函数不经意间耗掉所有可用内存的问题。但在 Python 3.x 中,已经将 xrange() 更名为 range() 函数,并删除了老的 xrange() 函数。

for 循环遍历列表和元组

在使用 for 循环遍历列表和元组时,列表或元组有几个元素,for 循环的循环体就执行几次,针对每个元素执行一次,迭代变量会依次被赋值为元素的值。

如下代码使用 for 循环遍历元组:

1

2

3

a_tuple = ('crazyit', 'fkit', 'Charlie')

for ele in a_tuple:

  print('当前元素是:', ele)

运行结果为:

当前元素是: crazyit
当前元素是: fkit
当前元素是: Charlie

当然,也可按上面方法来遍历列表。例如,下面程序要计算列表中所有数值元素的总和、平均值:

1

2

3

4

5

6

7

8

9

10

11

12

13

src_list = [12, 45, 3.4, 13, 'a', 4, 56, 'crazyit', 109.5]

my_sum = 0

my_count = 0

for ele in src_list:

  # 如果该元素是整数或浮点数

  if isinstance(ele, int) or isinstance(ele, float):

    print(ele)

    # 累加该元素

    my_sum += ele

    # 数值元素的个数加1

    my_count += 1

print('总和:', my_sum)

print('平均数:', my_sum / my_count)

运行结果为:

12
45
3.4
13
4
56
109.5
总和: 242.9
平均数: 34.7

上面程序使用 for 循环遍历列表的元素,并对几何元素进行判断:只有当列表元素是数值(int、float)时,程序才会累加它们,这样就可以计算出列表中数值元素的总和。

不仅如此,程序中还使用了 Python 的 isinstance() 函数,该函数用于判断某个变量是否为指定类型的实例,其中前一个参数是要判断的变量,后一个参数是类型。我们可以在 Python 的交互式解释器中测试该函数的功能,例如如下运行过程:

>>> isinstance(2,int)
True
>>> isinstance('a',int)
False
>>> isinstance('a',str)
True

从上面的运行过程可以看出,使用 isinstance() 函数判断变量是否为指定类型非常方便、有效。

如果需要,for 循环也可根据索引来遍历列表或元组,即只要让迭代变量取 0 到列表长度的区间,就可通过该迭代变量访问列表元素。例如如下程序:

1

2

3

4

5

a_list = [330, 1.4, 50, 'fkit', -3.5]

# 遍历0到len(a_list)的范围

for i in range(0, len(a_list)) :

  # 根据索引访问列表元素

  print("第%d个元素是 %s" % (i , a_list[i]))

运行结果为:

第0个元素是 330
第1个元素是 1.4
第2个元素是 50
第3个元素是 fkit
第4个元素是 -3.5

for 循环遍历字典

使用 for 循环遍历字典其实也是通过遍历普通列表来实现的。前面在介绍字典时己经提到,字典包含了如下三个方法:

  1. items():返回字典中所有 key-value 对的列表。
  2. keys():返回字典中所有 key 的列表。
  3. values():返回字典中所有 value 的列表。

因此,如果要遍历字典,完全可以先调用字典的上面三个方法之一来获取字典的所有 key-value 对、所有 key、所有 value,再进行遍历。

来源:微点阅读   https://www.weidianyuedu.com

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值