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)

运行结果:

 

posted @ 2020-01-12 15:12  ZL蓝色海洋  阅读(717)  评论(0编辑  收藏  举报