为什么我们要使用for循环
天下熙熙皆为利来,天下攘攘皆为利往。下面就介绍一些for循环的优点,快来一起看一下吧:
- 迭代:for循环允许你遍历一个集合(如列表、数组、元组、字符串或字典)的元素,并对每个元素执行相同的操作。例如,你可以使用for循环来遍历一个列表并打印出每个元素。
- 简化代码:使用for循环可以避免编写大量重复的代码。你可以将重复的代码块放入循环中,并通过循环变量来控制循环的次数和每次迭代中要处理的数据。
- 自动化处理:for循环特别适合处理大量数据或需要自动化完成的任务。例如,你可以使用for循环来自动发送电子邮件、生成报告或更新数据库。
- 灵活性:for循环可以与其他控制结构(如if语句、break和continue)结合使用,以提供更灵活和强大的控制逻辑。
- 提高性能:在某些情况下,使用for循环比使用其他方法(如递归)更高效。特别是在处理大量数据时,使用for循环可以减少内存使用和计算时间。
一、for循环基础
1.基本运作
for 循环可以让程序将整个对象内的元素遍历(也可以称迭代),在遍历期间,同时可以记录或输出每次遍历的状态或称轨迹。
在Python中,for 循环基本语法格式如下:
- for var in 可迭代对象:
- 程序代码
2.流程图
3.实例
将字母转化为大写
data=['aa','bb','cc','dd']
for i in data:
print(i+"的大写:"+i.upper())
选择列表区间元素
data=['aa','bb','cc','dd']
for i in data[0:3]:
print(i+"的大写:"+i.upper())
找到姓李的人
startswith():判断字符串是否以指定字符或子字符串开头
data=['李华','张三','李四','王伟']
name=[]
for i in data:
if i.startswith('李'):
name.append(i)
print(name)
删除列表元素
data=['李华','张三','李四','王伟']
for i in data[:]:
data.remove(i)
print(data)
二、for+range()函数
Python 可以使用 range ()函数产生一个等差序列,我们又称这等差序列为可迭代对象,也可以称是 range 对象。由于 range ()是产生等差序列,我们可以直接使用,将此等差序列当作循环的计数器。
1.range(n)
实例:
for i in range(5):
print("@",end='')
2.range(start,end)
start是起始值,end-1是终止值,可以产生 start 起始值到end-1终止值之间每次递增1的序列, start 或 end 可以是负整数,如果终止值小于起始值则产生空序列或称空 range 对象。
实例:
print("-----------------------")
for i in range(5,1):
print(i)
print("-----------------------")
for x in range(-2,2):
print(x)
print("-----------------------")
for x in range(2,2):
print(x)
print("-----------------------")
for x in range(0,5):
print(x)
print("-----------------------")
3.range(start,end,step)
实例:?
print("-----------------------")
for i in range(10,0,-2):
print(i)
print("-----------------------")
4.列表生成
新列表=【表达式 for 项目 in 可迭代对象】
实例:求余
n=int(input("输入整数:"))
yu=[num//2 for num in range (1,n+1)]
print(yu)
三、进阶for循环
1.嵌套for循环
for 变量 in 对象
...
for 变量 in 对象
...
实例:打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
result=i*j
print("%d*%d=%-2d"% (i,j,result),end='\t')
print()
?
2.for循环--break指令
在设计 for 循环时,如果期待某些条件发生时可以离开循环,可以在循环内执行 break 指令,即可立即离开循环,这个指令通常是和 if 语句配合使用。
流程图:
实例:猜数字游戏
import random
def GuessSecret(maxtimes):
times = 0
guess = 0
secret = random.randint(0, 100)
print("-----欢迎参加猜数字游戏,游戏现在开始 -----")
for times in range(maxtimes):
while guess != secret:
times += 1;
guess = int(input("数字区间0-100,请输入你猜的数字:"))
print("你输入的数字是:", guess)
if guess == secret:
print("你猜了{}次,猜对了,真厉害".format(times))
break
else:
if (guess > secret):
print("太大了!")
shengyutimes = maxtimes - times
print("你还有{}次机会".format(shengyutimes))
break
else:
print("太小了!")
shengyutimes = maxtimes - times
print("你还有{}次机会".format(shengyutimes))
break
print("游戏结束")
maxts=eval(input("@请输入猜数字的最大次数:"))
GuessSecret(maxts)
参考博客:Python猜数字游戏(4版)_码银的博客-CSDN博客_guess=0
3.continue指令
在设计 for 循环时,如果期待某些条件发生时可以不往下执行循环内容,此时可以用 continue 指令,这个指令通常是和 if 语句配合使用。
流程图:
实例:记录及格人数
scores=[100,30,60,70,33,60,55,80]
nums=0
for i in scores:
if i<60:
continue
else:
nums+=1
print("及格人数:%d个人"%nums)
四、参考资料
《python王者归来》 洪锦魁著