Python全栈自动化系列之Python编程基础(for循环)
for循环(遍历循环):
1)在python中for循环可以遍历任何可迭代对象,如列表、字符串等
语法:
for i in xxx:
# 循环体
需求点:当前有10位同学,放在一列表中,请区分等级
小于60:不及格
60-79:及格
80-100:优秀
# 成绩列表
li = [78,32,55,77,88,90,54,24,67,39]
# for循环遍历成绩列表,并区分等级
for i in li:
if i < 60:
print("你的成绩是{},不及格".format(i))
elif i <80:
print("你的成绩是{},及格".format(i))
elif i <= 100:
print("你的成绩是{},优秀".format(i))
运行结果:
2)内置函数range:左闭右开
range(n):默认生成一个 0到n-1的整数序列,对于这个整数序列,我们可以通过list()函数转化为列表类型的数据
range(n,m):默认生成一个n到m-1的整数序列,对于这个整数序列,我们可以通过list()函数转化为列表类型的数据
range(n,m,k):相当于其他函数里面的for循环,n,初始值, m,结束值 K,步长,会生成初始值为n,结束值为m-1,递减或者递增步长K
两个参数:范围
三个参数:范围,步长
注意点:rangen返回的数据是支持使用for进行遍历的,也能够进行下标取值和切片(切片返回的还是range类似数据)
3)for循环案例
需求点:计算1+2+3+....+100结果
"""
while循环实现
"""
i = 1
sum = 0
while i <= 100:
sum = sum + i
i += 1
print(sum)
**************************
"""
for循环实现
"""
s = 0
for i in range(1,101):
s += i
print(s)
运行结果:
4)for 循环也支持使用break、continue
需求点:使用for循环打印100遍hello python ,打印到第50遍之后,后面的不在打印
for i in range(100):
print("这是第{}遍打印:hello python".format(i + 1))
if i + 1 == 50:
break # 终止循环
print("---------------end---------------")
运行结果:
for i in range(100):
print("这是第{}遍打印:hello python".format(i + 1))
if i + 1 == 50:
continue # 中止当前本轮循环
print("---------------end---------------")
运行结果:
5)for循环所使用的场景
1、遍历列表2、遍历字符串3、遍历字典4、遍历元组
注意点:1.直接遍历字典:遍历出来是字典的键
dic = {"name":"zl","sex":"男"}
for value in dic:
print(value)
运行结果:
2.遍历字典的值,使用values函数
dic = {"name":"zl","sex":"男"}
for i in dic.values():
print(i)
运行结果:
3.同时遍历字典的键以及值,使用items函数
dic = {"name":"zl","sex":"男"}
for k,v in dic.items(): # 使用元组拆包
print("Key",k)
print("Value",v)
运行结果:
6)元组拆包
c,d = (10,20)
print(c)
print(d)
tu = (11,22,33,44)
aa,bb,cc,dd = tu
print(aa)
print(bb)
print(cc)
print(dd)
运行结果:
7)for-else语句:for循环遍历结束之后会执行else,如果使用break跳出循环,则不会执行
需求点:注册小案例
需求:设计有个注册程序,注册的时候,提示用户输入账号密码,输入完了之后,校验该账户之前是否注册过,如果没有
注册过,则添加到users中保存,若注册过,则提示用户已经注册过
#先定义已存在的用户
users = [{"user":"py1","pwd":"123"},{"user":"py2","pwd":"111"}]
name = input("请输入账号:")
pwd = input("请输入密码:")
#判断账户是否已经注册?
for item in users:
if name == item["user"]:
print("该用户已经注册")
break
# 待for循环遍历完所有注册过的列表后再执行else语句
else:
print("注册成功")
# 把账户密码添加到users中
users.append({"user":name,"pwd":pwd})
8)for循环的多重嵌套
需求点:输出99乘法表,结果如下:(提示嵌套for循环,格式化输出)
for i in range(1,10): # 决定行
for j in range(1,i+1): # 决定列
print("{} * {} = {:<4}".format(i,j,i*j),end="")
print() # 换行
运行结果:
9)列表推导式(帮助我们快速生成列表)
需求:快速生成一个[“pageq”,"page2","page3"]
li = []
for i in range(1,4):
num = "page{}".format(i)
li.append(num)
print(li)
使用列表推导式:
li1 = ["page{}".format(i) for i in range(1,4)]
print(li1)
运行结果: