循环控制之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*