在 python中,for 循环常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。 
作者:韩信子@ShowMeAI
教程地址:http://www.showmeai.tech/tutorials/56
本文地址:http://www.showmeai.tech/article-detail/72
声明:版权所有,转载请联系平台与作者并注明出处
Python中有很多序列形态的数据结构(如列表或字符串等),可以使用for循环进行遍历。
语法:
for循环的语法格式如下:
for iterating_var in sequence: statements(s)
流程图:

代码实例(代码可以在在线python3环境中运行)
for letter in 'ShowMeAI': # 第一个实例 print("当前字母: %s" % letter) fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二个实例 print('当前水果: %s'% fruit) print("完成!")以上代码输出结果:
当前字母: S当前字母: h当前字母: o当前字母: w当前字母: M当前字母: e当前字母: A当前字母: I当前水果: banana当前水果: apple当前水果: mango完成!另外一种执行循环的遍历方式是通过索引,如下实例(代码可以在在线python3环境中运行):
fruits = ['香蕉', '苹果', '葡萄']for index in range(len(fruits)): print('当前水果 : %s' % fruits[index]) print("完成!")以上代码输出结果:
当前水果 : 香蕉当前水果 : 苹果当前水果 : 葡萄完成!以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。
在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
for num in range(20,30): # 迭代 10 到 20 之间的数字 for i in range(2,num): # 根据因子迭代 if num%i == 0: # 确定第一个因子 j=num/i # 计算第二个因子 print ('%d 等于 %d * %d' % (num,i,j)) break # 跳出当前循环 else: # 循环的 else 部分 print ('%d 是一个质数' % num)以上代码输出结果:
20 等于 2 * 1021 等于 3 * 722 等于 2 * 1123 是一个质数24 等于 2 * 1225 等于 5 * 526 等于 2 * 1327 等于 3 * 928 等于 2 * 1429 是一个质数我们来使用学习到的for循环,绘制不同的图案,帮助大家进一步熟悉for循环用法
代码可以在在线python3环境中运行。
rows = int(input('输入列数: '))print("打印空心等边三角形,这里去掉if-else条件判断就是实心的")for i in range(0, rows + 1):#变量i控制行数 for j in range(0, rows - i):#(1,rows-i) print(" ", end='') j += 1 for k in range(0, 2 * i - 1):#(1,2*i) if k == 0 or k == 2 * i - 2 or i == rows: if i == rows: if k % 2 == 0:#因为第一个数是从0开始的,所以要是偶数打印*,奇数打印空格 print("*", end='') else: print(" ", end='')#注意这里的", end='' ",一定不能省略,可以起到不换行的作用 else: print("*", end='') else: print(" ", end='') k += 1 print("\n") i += 1代码可以在在线python3环境中运行。
rows = int(input('输入列数: '))print("打印空心等菱形,这里去掉if-else条件判断就是实心的")rows = int(input('输入列数: '))for i in range(rows):#变量i控制行数 for j in range(rows - i):#(1,rows-i) print(" ", end='') j += 1 for k in range(2 * i - 1):#(1,2*i) if k == 0 or k == 2 * i - 2: print("*", end='') else: print(" ", end='') k += 1 print("\n") i += 1 #菱形的下半部分for i in range(rows): for j in range(i):#(1,rows-i) print(" ", end='') j += 1 for k in range(2 * (rows - i) - 1):#(1,2*i) if k == 0 or k == 2 * (rows - i) - 2: print("*", end='') else: print(" ", end='') k += 1 print("\n") i += 1请点击到B站查看【双语字幕】版本
本教程系列的代码可以在ShowMeAI对应的github中下载,可本地python环境运行,可以访问google的宝宝也可以直接借助google colab一键运行与交互操作学习哦!
本教程系列涉及的Python速查表可以在以下地址下载获取:
