文章目录
一、什么是循环
循环就是重复做某件事。
二、为何要有循环结构
为了让计算机能够像人一样能够重复做某件事。
三、如何使用循环结构
python为我们提供了两种使用循环的方法,一个是基础通用的while循环,另一个是在循环遍历取值上有效率优势的for循环。
(一)while循环
1.基础语法:
while 条件:
代码1
代码2
...
2.基本使用案例:
db_name = "egon"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
else:
print("用户账号或密码错误")
3.结束循环的两种方法:
(1)把条件改为False:
注意:如果有后续代码需要运行,则修改条件的方法比较好。
tag = True
while tag:
while tag:
while tag:
tag = False
db_name = "egon"
db_pwd = "123"
tag = True
while tag:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
tag = False # 后续代码继续执行,else由于条件不成立,不执行,后续的print代码会执行。
else:
print("用户账号或密码错误")
print('其他代码')
(2)break:直接终止本层循环
while True: # 外层
while True: # 中层
while True: # 内层
break # 内层循环终止
break # 中层循环终止
break # 外层循环终止
db_name = "egon"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
break # 终止本层while循环,后续代码不再运行
else:
print("用户账号或密码错误")
print('其他代码')
4.死循环与效率问题
使用while循环时,如果条件不变,循环就会无限执行下去,即成为死循环。
①如果循环仅仅时执行代码,并不会对计算机 造成太大负担。
while True:
name = input('用户名:')
pwd = input('密码:')
print(name,pwd)
②如果循环是重复计算,一直进行运算会造成CPU过载。
while True:
1+1
5.while+continue:终止本次循环
(1)不要在continue后写统计代码,不会运行。
count = 0
while count <6: # 5 < 6
if count == 3 or count == 4:
count += 1
continue
# count += 1 # 不要写在这里,不会被执行
print(count)
count += 1
(2)如果不想执行本次循环之后的代码,可以用continue,但本次循环如果没有需要运行的代码,就没必要加continue。
db_name = "egon"
db_pwd = "123"
while True:
inp_name = input("请输入您的用户名: ")
inp_pwd = input("请输入您的密码: ")
if inp_name == db_name and inp_pwd == db_pwd:
print("用户登录成功")
break
else:
print("用户账号或密码错误")
# continue
6.while+else:
while循环正常死亡后运行else。
count = 0
while count < 6:
print(count)
if count == 3:
break # break之后,后续代码不再执行
count += 1
else:
print("此段代码会在while循环正常死亡后运行")
7.while循环嵌套
while循环可以嵌套while循环,同样,打破循环的方法还是break和修改条件的方式。
①使用break打破循环
db_name = "J20"
db_pwd = "20110111"
while True:
inp_name = input("请输入您的账号:").strip()
inp_pwd = input("请输入您的密码:").strip()
if inp_name = db_name and inp_pwd = db_pwd:
print("用户%s登陆成功!" %(db_name))
while True:
print("""
0 退出
1 取款
2 转账
3 提现
""")
cmd = input("请输入命令:").strip()
if cmd == "0":
break
elif cmd == "1":
print("正在取款")
elif cmd == "2":
print("正在转账")
elif cmd == "3":
print("正在提现")
else:
print("不存在的指令,请重新输入!")
break
else:
print("用户名或密码错误")
②修改条件打破循环
db_name = "J20"
db_pwd = "20110111"
tag = True
while tag:
inp_name = input("请输入您的账号:").strip()
inp_pwd = input("请输入您的密码:").strip()
if inp_name == db_name and inp_pwd == db_pwd:
print("用户%s登陆成功!" %(db_name))
while tag:
print("""
0 退出
1 取款
2 转账
3 提现
""")
cmd = input("请输入命令:").strip()
if cmd == "0":
tag = False
elif cmd == "1":
print("正在取款")
elif cmd == "2":
print("正在转账")
elif cmd == "2":
print("正在提现")
else:
print("不存在的指令,请重新输入!")
else:
print("用户名或密码错误")
(二)for循环
1.用途:
①for循环主要用于循环取值,例如列表、字典、字符串等。
②for循环的次数取决于值的个数;while循环的次数取决于条件什么时候变为False或者什么时候执行break。
2.基本使用
l = [111, 222, 333, 444, 555]
# 使用while循环取值
i = 0
while i < len(l):
print(l[i])
i += 1
# 使用for循环
for x in l:
print(x)
d = {"k1": 111, "k2": 222, "k3": 333}
for k in d:
print(k, d[k]) # 取出的是字典的key
msg = "hello"
for s in msg:
print(x)
l = [["aaa": 1111], ["bbb", 2222], ["ccc", 3333]]
for x, y in l: # 解压赋值的操作,x, y = ["aaa", 1111]
print(x, y)
3.for+break
for x in [111, 222, 333, 444, 555]:
if x == 333:
break # 取值到333结束循环取值
print(x)
4.for+continue
for x in [111, 222, 333, 444, 555]:
if x == 333:
continue
print(x)
5.for+else
for x in [111, 222, 333, 444, 555]:
if x == 333:
break
print(x)
else:
print("======>") # for循环结束后继续运行其他代码
6.for+range及循换嵌套
for循环可以嵌套使用
for i in range(3): # range,取值范围为左闭右开
print("外层循环第%s次" % i)
for j in range(2):
print("===>>>内层循环第%s次" % j)
# 输出结果如下:
外层循环第0次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第1次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第2次
===>>>内层循环第0次
===>>>内层循环第1次
) # for循环结束后继续运行其他代码
### 6.for+range及循换嵌套
for循环可以嵌套使用
```python
for i in range(3): # range,取值范围为左闭右开
print("外层循环第%s次" % i)
for j in range(2):
print("===>>>内层循环第%s次" % j)
# 输出结果如下:
外层循环第0次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第1次
===>>>内层循环第0次
===>>>内层循环第1次
外层循环第2次
===>>>内层循环第0次
===>>>内层循环第1次