6、流程控制

一、流程控制之if判断

1、什么是if判断

   接收用户输入的用户名
   接收用户输入的密码
   判断 输入的用户名 等于 正确的用户名 并且 输入的密码 等于 正确的密码:
       告诉用户登录成功
   否则:
       告诉用户登录失败

2、为何要用if判断
   为了让计算机能够像人一样去判断

3、如何用if判断
完整语法
if 条件1:
   子代码1
   子代码2
   子代码3
elif 条件2:
   子代码1
   子代码2
   子代码3
elif 条件3:
   子代码1
   子代码2
   子代码3
......
else:
   子代码1
   子代码2
   子代码3


if判断基本运行原理解析
print(1)
print(2)
if 条件1:
   子代码1
   子代码2
   子代码3
elif 条件2:
   子代码1
   子代码2
   子代码3
elif 条件3:
   子代码1
   子代码2
   子代码3
......
else:
   子代码1
   子代码2
   子代码3

print(3)
print(4)
print(5)


二:单分支
gender = "female"
age = 27
is_beautiful = True

if gender == "female" and 18 < age < 26 and is_beautiful:
   print("我喜欢你,加个微信")


print('end.....')



三:双分支
gender = "female"
age = 27
is_beautiful = True

if gender == "female" and 18 < age < 26 and is_beautiful:
   print("我喜欢你,加个微信")
else:
   print("咱俩不太合适")


print('end.....')


案例:
inp_user = input("请输入您的用户名:")
inp_pwd = input("请输入您的密码:")

if inp_user == "egon" and inp_pwd == "123":
   print("登录成功")
else:
   print("登录失败")


四:多分支
如果:成绩>=90,那么:优秀

如果成绩>=80<90,那么:良好

如果成绩>=70<80,那么:普通

其他情况:很差

score = input("请输入您的分数 ")
score = int(score)
if score >= 90:
   print("优秀")
elif score >= 80:
   print("良好")
elif score >= 70:
   print("普通")
else:
   print("很差")

二、流程控制之while循环

 while循环语法:

   while 条件:
       代码1
       代码2
       代码3

       
基本用法示例
print('start...')
i = 1
while i <= 5:
   print(i)
   i += 1

print('end...')


死循环:永不结束的循环
while True:
   print(1)

while True:  # IO
   name = input(">> ")
   print(name)


结束while循环有两种方式
方式一:把条件改为False, 必须要等到下一次循环判断条件时才能结束循环
print('start...')
i = 1

tag = True
while tag:
   if i == 5:
       tag = False
   print(i)
   i += 1

# 1
# 2
# 3
# 4
# 5
# """
#
print('end...')

方式二:break终止本层循环,会立即结束while循环,根本没有下一次
print('start...')
i = 1

tag = True
while tag:
   if i == 5:
       break
   print(i)
   i += 1

# 1
# 2
# 3
# 4
# """
#
print('end...')


案例1:
方式一:
tag = True
while tag:
inp_user = input("请输入您的用户名:")
inp_pwd = input("请输入您的密码:")

   if inp_user == "egon" and inp_pwd == "123":
       print("登录成功")
       tag = False
   else:
       print("登录失败")

   print('other........................')

方式二
while True:
   inp_user = input("请输入您的用户名:")
   inp_pwd = input("请输入您的密码:")
   
   if inp_user == "egon" and inp_pwd == "123":
       print("登录成功")
       break
   else:
       print("登录失败")

   print('other........................')


案例2:
i = 0

while True:
   inp_user = input("请输入您的用户名:")
   inp_pwd = input("请输入您的密码:")

   if inp_user == "egon" and inp_pwd == "123":
       print("登录成功")
       break
   else:
       print("登录失败")
       i += 1

   print(i)
   if i == 3:
       print("尝试次数超过了3次,结束")
       break


补充
while True:
   while True:
       while True:
           break
       break
   break


tag = True
while tag:
   while tag:
       while tag:
           tag = False

while+continue: continue终止本次直接进入下一次
i = 1
while i <= 5:
   if i == 3:
       i += 1
       continue
   print(i)
   i += 1

强调:
1、不要在continue后加与continue同级的代码,加了就永远运行不了了
2、循环体代码的最后一步不要写continue
i = 1
while i <= 5:
   i += 1

   if i > 3:
       continue
   else:
       print('ok')


while True:
   inp_user = input("请输入您的用户名:")
   inp_pwd = input("请输入您的密码:")

   if inp_user == "egon" and inp_pwd == "123":
       print("登录成功")
       break
   else:
       print("登录失败")
       continue  # 画蛇添足


五:while+else
else的子代码何时运行:
  while循环结束后并且是在正常情况下结束的,else的子代码块才会运行
  ps:只要不是被break干掉的循环,都是正常结束的
i = 0
while i <= 10:
   if i == 5:
       break
   print(i)
   i += 1
else:
   print("==============")

三、流程控制之for循环

for更擅长遍历值,for循环的次数取决值的个数

nums = [111, 222, 333, 444, 555]

i = 0
while i < len(nums):
   print(nums[i])
   i += 1

for num in nums:  # num = 222
   print(num)


for x in "hello":
   print(x)


dic = {'k1':111,'k2':222,'k3':333}
for k in dic:
   print(k,dic[k])


items = [['name', "egon"], ['age', 18], ['gender', "male"]]
for x,y in items:  # x,y = ['name', 'egon']
   print(x,y)


for+break
nums = [111, 222, 333, 444, 555]
for num in nums:
   if num == 333:
       break
   print(num)

for+continue
nums = [111, 222, 333, 444, 555]
for num in nums:
   if num == 333:
       continue
   print(num)

for+else
nums = [111, 222, 333, 444, 555]
for num in nums:
   if num == 333:
       # break
       continue
   print(num)
else:
   print('======')


让某段代码重复运行3次-》while循环实现如下
i = 0
while i < 3:
   print('hello1')
   print('hello2')
   print('hello3')
   i += 1


让某段代码重复运行3次-》for循环实现如下
for x in range(3):
   print('hello1')
   print('hello2')
   print('hello3')


for x in range(100000000000000000000000000000000000000000):
   print(x)


for+enumerate
nums = [111, 222, 333, 444, 555]

i = 0
while i < len(nums):
   print(i,nums[i])
   i += 1


for i,num in enumerate(nums):
   print(i,num)

 

posted @ 2021-09-16 20:55  谁笑  阅读(106)  评论(0)    收藏  举报