循环控制之for循环

1、什么是for循环

​ 循环就是重复做某件事,for循环是python提供第二种循环机制

2、为何要有for循环

​ 理论上for循环能做的事情,while循环都可以做
​ 之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁

3、如何用for循环
  • 语法:

    for 变量名 in 可迭代对象:# 可迭代对象可以是:列表、字典、字符串、元组、集合
        代码1
        代码2
        代码3
        ...
    
  • for循环基本使用之循环取值

  • # 简单版
    l = ['1', '2', '3']
    for x in l:  
        print(x) 
        
    # 结果
    1 2 3
    
    # 复杂版:
    l = ['1', '2', '3']
    i=0
    while i < 3:
        print(l[i])
        i+=1
    
    结果:
    1 2 3
    
  • # 简单版
    dic={'k1':111,'k2':222,'k3':333}
    for k in dic:
        print(k,dic[k])
    # 结果
    k1 111
    k2 222
    k3 333
    
    # 复杂版:while循环可以遍历字典,太麻烦了
    
# 简单版
msg = 'wo ai ni'
for i in msg:
    print(i)
# 结果   
w
o

a
i

n
i
4、for循环与while循环的异同

1、相同之处:都是循环,for循环可以干的事,while循环也可以干

2、不同之处:

while循环称之为条件循环,循环次数取决于条件何时变为假

for循环称之为"取值循环",循环次数取决in后包含的值的个数

for x in [1,2,3]:

print('===>')
print('1111')

# 结果
===>
1111
===>
1111
===>
1111
5、for循环之range

当循环次数过多时,数据类型包含值的格式需要伴随着增加,所以在in后直接放一个数据类型来控制循环次数有局限性:range

range功能:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 
>>> range(1,9) # 1...8
[1, 2, 3, 4, 5, 6, 7, 8]
>>> 
>>> range(1,9,1) # 1 2 3 4 5 6 7 8 
[1, 2, 3, 4, 5, 6, 7, 8]
>>> range(1,9,2) # 1 3 5 7 
[1, 3, 5, 7]

# 特性:顾头不顾尾

for i in range(3):
    print("*")
    
# 结果:
*
*
*
六:for循环应用
  • for + break 的连用,和 while 循环一样,终止for循环只有break一种方案
  • for + else 的连用,和 while 循环一样
username = 'xxq'
password = '123'
count=0

for i in range(3):
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登录成功')
        break
    else:
        print('帐号或密码错误,请重试')
else:
    print('输错3次,退出程序')
  • for循环嵌套:外层循环 循环一次,内层循环 需要完整的循环完毕
for i in range(3):
    print('外层循环——>',i)
    for j in range(5):
        print('内层循环——>', j)
        
# 结果
外层循环——> 0
内层循环——> 0
内层循环——> 1
内层循环——> 2
内层循环——> 3
内层循环——> 4
外层循环——> 1
内层循环——> 0
内层循环——> 1
内层循环——> 2
内层循环——> 3
内层循环——> 4
外层循环——> 2
内层循环——> 0
内层循环——> 1
内层循环——> 2
内层循环——> 3
内层循环——> 4
  • for + continue
for i in range(6):  #0 1 2 3 4 5
    if i == 4:
        continue    #直接跳过4
    print(i)
    
# 结果
0
1
2
3
5
  • 换行符与end = ‘’
print('hello %s' % 'eogn')
print('hello' ,'world', 'eogn')
# 结果
hello eogn
hello world eogn

print('hello\n')
print('world')
# 结果
hello

world

print('hello\n',end='')
print('world')
# 结果
hello
world

print('hello',end='*')
print('world',end='*')
# 结果
hello*world*