文章目录
1、流程控制之if判断
1.1、什么是if判断
让计算机像人一样,做到满足条件或不满足条件时需要处理的业务逻辑
1.2、为何要有if判断
为了控制计算机能够像人一样去完成判断的过程
1.3、如何使用if判断
# if判断完整的语法
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
...
else:
代码1
代码2
代码3
...
# 运行原理示范
print(111)
print(222)
if True:
print('if内的333')
print('if内的444')
print(555)
# if使用:
gender = 'female'
age = 18
is_beautiful = True
if gender == 'female' and 18 <= age <= 60 and is_beautiful:
print('开始表白...')
print('后续代码...')
# if+else使用:
gender = 'female'
age = 70
is_beautiful = True
if gender == 'female' and 18 <= age <= 60 and is_beautiful:
print('开始表白...')
else:
print('阿姨好,开个玩笑')
print('后续代码...')
# if+elif+else使用:
score = input('请输入你的成绩: ').strip()
score = int(score)
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('普通')
else:
print('小垃圾,很差')
print('其他代码...')
# if判断是可以嵌套使用的,即if中嵌套if
gender = 'female'
age = 18
is_beautiful = True
is_successful = True
if gender == 'female' and 18 <= age <= 60 and is_beautiful:
print('开始表白...')
if is_successful:
print('在一起')
else:
print('再见...')
else:
print('阿姨好,开个玩笑')
2、流程控制之while循环
2.1、什么是循环
循环指的就是重复做某一件事
2.2、为何要有循环
循环就是为了让计算机能够像人一样去重复做某件事
2.3、如何用循环
while循环,又称之为条件循环
能够重复多少次取决条件何时变为假
while 条件:
代码1
代码2
代码3
...
print('其他代码...')
# 示例(1):
print('start...')
while 10 > 3:
print('hello1')
print('hello2')
print('hello3')
print('end') # 此行代码运行不到 前面的循环是死循环
# 示例(2):
count = 0
while count < 6:
print(count)
count += 1
print('end...')
2.4、死循环
1、有I/O操作的死循环对计算机是无害的,如下:
while True:
# 一件事的三个步骤
print("第1步")
print("第2步")
print("第3步")
while True:
name = input('用户名:').strip()
pwd = input('密码:').strip()
print(name, pwd)
2、纯计算对计算机进行大量的计算,消耗CPU资源,如下:
while True:
1 + 1
2.5、如何结束while循环
条件变为False,while循环则结束
n = 1
while n <= 5:
if n % 2 == 0:
print(n)
n += 1
2.6、结束while循环的两种方式
方式一: 把条件变为False,不会立刻结束循环,会等到本次循环体代码都运行完毕后,下一次循环开始重新判断条件时才会结束
tag = True
while tag:
inp_user = input('用户名: ').strip()
inp_pwd = input('密码: ').strip()
if inp_user == "allen" and inp_pwd == "123":
print('登录成功')
# 结束循环
tag = False
else:
print('账号或密码错误,请重新输入')
print('其他代码') # 会执行
方式二: break结束本层循环,只要运行到break就会立刻结束while循环,本次循环的后续代码都不会执行
while True:
inp_user = input('用户名: ').strip()
inp_pwd = input('密码: ').strip()
if inp_user == "allen" and inp_pwd == "123":
print('登录成功')
# 结束循环
break
else:
print('账号或密码错误,请重新输入')
print('其他代码') # 用户输入正确后直接跳出循环,不会执行本行代码
2.7、while循环的嵌套
db_name = 'allen'
db_pwd = '123'
while True:
inp_user = input('your name: ').strip()
inp_pwd = input('your pwd: ').strip()
if inp_user == db_name and inp_pwd == db_pwd:
print('登录成功')
while True:
cmd = input('请输入你的操作: ').strip()
print('%s正在运行' %cmd)
break
else:
print('账号或密码错误, 登录失败')
# 使用break方法嵌套,需要每层循环配套一个break,break只会跳出本层(当前所在层)循环
while True:
while True:
while True:
break
break
break
# 使用变量循环嵌套,一次修改,所有的变量都统一修改
tag = True
while tag:
while tag:
while tag:
tag = False
2.8、while+continue
continue结束本次循环,直接进入下一次
n = 1
while n <= 5:
if n == 4:
n += 1
continue
# n+=1 # 切忌在continue同一级别之后添加代码
print(n)
n += 1
强调1:不要在continue之后编写同级别的代码
count = 0
while count < 6:
if count == 3 or count == 4:
count += 1
continue
print(count)
count += 1
强调2:如果不想执行本次循环之后的代码,可以用continue,但是如果本次循环本来就没有要继续运行的后续代码了,就没必要加continue了
db_name = 'allen'
db_pwd = '123'
while True:
inp_user = input('your name: ').strip()
inp_pwd = input('your pwd: ').strip()
if inp_user == db_name and inp_pwd == db_pwd:
print('登录成功')
break
else:
print('账号或密码错误, 登录失败')
continue # 这个continue加的无意义
print(1111111) # 此行代码永远不会运行
2.9、while+else
else的子代码会在循环正常结束的情况下运行(break导致while循环结束的情况称之为非正常结束)
n = 1
while n <= 5:
if n == 4:
n += 1
continue
n += 1
print(n)
else:
print('else的代码运行') # 没有被break打断,此行代码运行
3、流程控制之for循环
3.1、使用场景
该场景指的就是:主要用于循环取值,例如列表、字典、字符串
for循环能做的事情while循环也可以做
对比while循环
while循环循环的次数取决条件什么时候变为False或者什么时候执行break
# 使用while循环实现循环取值
l = [111, 222, 333, 444, 555]
i = 0
while i < len(l):
print(l[i])
i += 1
# 使用for循环实现循环取值
for x in l:
print(x)
# for循环用作遍历字典
d = {'k1': 111, 'k2': 222, 'k3': 333}
for k in d:
print(k, d[k])
# for循环用作遍历字符串
msg = 'hello world'
for i in msg:
print(i)
# 循环配合解压赋值
l = [['a', 111], ['b', 222], ['c', 333]]
for k, v in l:
print(k, v)
3.2、for循环的次数取决in后跟那个对象里有多少值
for i in "abcdef":
print(i)
3.3、for+range
range(起始位置,结束位置,步长)
range(1,5,2) # 起始位置, 结束位置, 步长
range(1,5) # 省略步长, 默认为1
range(5) # 省略起始位置与步长, 默认起始位置为0, 步长为1
for x in range(3):
print(x) # 0 1 2
for i in range(3):
print("做一件事的步骤") # 会重复执行三次
3.4、for+break
for x in [1, 3, 5, 7]:
if x == 5:
break
print(x) # 1 3
3.5、for+continue
for x in [1, 3, 5, 7]:
if x == 5:
continue
print(x) # 1 3 7
3.6、for+else
for x in [1, 3, 5, 7]:
if x == 5:
break
print(x) # 1 3
else:
print('其他代码')
for x in [1, 3, 5, 7]:
if x == 5:
continue
print(x) # 1 3 7 其他代码
else:
print('其他代码')
3.7、for循环嵌套
for i in range(3):
print("外层循环第%s次" % i)
for j in range(2):
print('内存循环第%s次' % j)
ps: 在循环的过程中不要修改被循环的对象
l = ['a', 'b', 'c']
for i in l:
# del l[-1] # 在读的过程中不要对被循环对象做新增、删除、修改操作
print(i)