陆
Python基础
一、流程控制——while循环
1.1语法
我们有时候需要用循环重复来解决问题,例如登陆账号的时候,输入错误了,我们需要再重复进行输入。这时候我们就需要使用while进行循环,while循环也称条件循环。
while True:
user = 'qq'
pwd = '123'
inp_user = input('请输入你的账号:')
inp_pwd = input('请输入你的密码:')
if inp_user == user and inp_pwd == pwd:
print('登陆成功')
else:
print('密码或账号错误')
1.2 while + break
break可以在满足条件的时候结束当前循环。
while True:
user = 'qq'
pwd = '123'
inp_user = input('请输入你的账号:')
inp_pwd = input('请输入你的密码:')
if inp_user == user and inp_pwd == pwd:
print('登陆成功')
breka
else:
print('密码或账号错误')
1.3 while + comtinue
comtinue可以结束本次循环,直接执行下一次循环。
例如:在小于10的整数中,将3挑出,并将其它数字输出。
a = 1
while a < 10:
if a == 3:
a += 1
continue
print(a)
a += 1
注意,continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,
1.4 while + else
else是和while同一个级别的代码,输入时不再while语句内。若语句中有break的时候,只有在break没有被执行的情况下才会执行else。
注意,whie + elsa的形式一般不使用。
二、流程控制——for循环
2.1语法
for循环,用于循环容器数据类型。
car_lis = ['Honda','BMW','Toyato','BYD']
for i in car_lis:
print(i)
Honda
BMW
Toyato
BYD
字典取多个值的时候,也可以使用for循环。
info_ = {'name':"qq",'hobby':'read'}
for i in info_:
print(i)
name
hobby
for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。
for循环也可以按照索引取值。
for i in range(1,5):
print(i)
1
2
3
4
car_lis = ['Honda','BMW','Toyato','BYD']
for i in range(len(car_lis)):
print(i,car_lis[i])
0 Honda
1 BMW
2 Toyato
3 BYD
2.2 for + break
for循环调出本层循环
car_lis = ['Honda','BMW','Toyato','BYD']
for car in car_lis:
if car == 'Toyato':
break
print(car)
Honda
BMW
2.3 for + continue
for循环调出本次循环,进入下一次循环。
car_lis = ['Honda','BMW','Toyato','BYD']
for car in car_lis:
if car == 'Toyato':
continue
print(car)
Honda
BMW
BYD
2.4 for循环嵌套
外层循环循环一次,内层循环循环所有的。
n = 5
for i in range(n + 1):
for j in range(2 * n):
if (n - i - 1) < j < (n + i - 1):
print('*', end='')
else:
print(' ', end='')
print('')
*
***
*****
*******
*********
2.5 for + else
for循环没有break的时候触发else内部代码块。
car_lis = ['Honda', 'BMW', 'Toyato', 'BYD']
for i in car_lis:
print(i)
else:
print('for循环没有被break中断掉')
Honda
BMW
Toyato
BYD
for循环没有被break中断掉
2.6 for循环实现Loading
print('Loading')
for i in range(6):
print(".")
Loading
.
.
.
.
.
.
print('Loading', end='')
for i in range(6):
print(".", end='')
Loading......
补充:\r 表示原位打印,覆盖上一次的打印结果,将其删除后在打印本次,
三、对比while和for
3.1 while:
会进入死循环(不可控),尽量少使用while循环;
世间万物都可以作为循环对象。
3.2 for
不会进入死循环(可控),尽量使用for循环;
只对容器类数据类型进行循环(可迭代对象)。