python语法入门之流程控制

流程控制

  1、概念

    控制事物的执行流程就是流程控制

  2、执行流程的三种情况

     顺序结构:自上而下运行

     分支结构:在运行过程中根据条件的不同可能会执行不同的流程

        循环结构:在运行过程中会有些代码需要反复执行

  3、必知必会

    1、条件都会转成布尔值,从而决定子代码是否执行

    2、在python中,使用缩进来代表代码的从属关系(四个空格)

    3、并不是所有的代码都可以拥有子代码

    4、同属于某个代码的多行子代码,必须保持相同的缩进量

      小技巧:在上一行代码的结尾如果是冒号,那么下一行代码比缩进

if语法

  1、单分支(单if)

#语法:
#
if 条件: # 条件成立之后执行的代码块 #示例: age = 18 if age < 20: print('你很漂亮')

  2、双分支(if 和else一起使用)

#语法:
#
if 条件1: # 条件1成立之后执行的代码块 # else : # 条件不成立后执行的代码块 #示例: age = 29 if age < 20: print('你很漂亮') else: print('认错人了')

  3、多分支(if、elif以及else共同使用)

#语法:
#
if 条件1: # 条件1成立之后执行的代码块 # elif 条件2: # 条件1不成立条件,2成立之后执行的代码块 # else 条件3: # 条件1和2都不成立,条件3成立之后执行的代码块 #示例: age = 19 if age < 20: print('你很漂亮') elif age <29: print('你好啊') else: print('不好意思认错人了')

  4、if嵌套

age_of_girl = 20
height = 171
weight = 99
is_pretty = True
success = False

if age_of_girl >= 20 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True:
    if success:
        print('表白成功,在一起')
    else:
        print('下次再见')
else:
    print('阿姨好')

  小练习

# jason管理员 tony安保人员 kevin财务 jack销售 其他普通员工
 # 1.获取用户名
username = input('你的名字:')
# 2.判断用户名身份
if username == 'jason':
    print('管理员')
elif username == 'tony':
    print('安保')
elif username == 'kevin':
    print('财务')
elif username == 'jack':
    print('销售')
else:
    print('普通员工')

while循环

  1、语法

while 条件:
      条件成立之后执行的子代码块

  2、基本用法示例

i = 1
while i <= 5:
    print(i)
    i += 1

  3、while+break

    break:结束本层循环

while True:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == '小明' and password == '123':
        print('输入正确')
        # 直接结束本层循环
        break
    else:
        print('输入错误')

  4、全局标志位

tag = True
while tag:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == '小明' and password == '123':
        print('输入正确')
        # 直接结束本层循环
        tag = False
    else:
        print('输入错误')

  5、while嵌套

# while嵌套
while True:
    # 1.获取用户输入的用户名和密码
    username = input('username>>>:')
    password = input('password>>>:')
    # 2.判断用户名和密码是否正确
    if username == '小明' and password == '123':
        print('输入正确')
        while True:
            cmd = input('请输入您的指令>>>:')
            # 判断用户是否想退出
            if cmd == 'q':
                break
            print('正在执行您的指令:%s' % cmd)
        break
    else:
        print('输入错误')

   案例:

猜年龄的游戏
    普通要求
        用户可以有三次猜错的机会 如果过程中猜对了直接退出
    拔高要求
        三次机会用完之后提示用户是否继续尝试 如果是则再给三次机会 如果否则直接结束

普通要求
# 1.先编写猜年龄主体功能
# 定义一个真实的年龄
real_age = 18
# 3.定义一个计数器
count = 1
# 2.先加一个循环功能
while count < 4:
    # 1.1 获取用户猜测的年龄
    guess_age = input('请输入您猜测的年龄>>>:')
    # 1.2 简单粗略的将字符串转换成数字(可能会报错 暂时不要考虑)
    guess_age = int(guess_age)
    # 1.3 猜测年龄
    if guess_age > real_age:
        print('猜大了')
        # 4.1 每次猜错都加一
        count += 1
    elif guess_age < real_age:
        print('猜小了')
        # 4.1 每次猜错都加一
        count += 1
    else:
        print('哎呀 你真棒 猜对了!!!')
        # 4.猜对了直接结束本层循环
        break
    # 优化
    # count += 1

拔高要求
# 1.先编写猜年龄主体功能
# 定义一个真实的年龄
real_age = 18
# 3.定义一个计数器
count = 1
# 2.先加一个循环功能
while True:
    # 5.判断当前用户是第几次尝试
    if count == 4:
        choice = input('您已经尝试了三次 是否继续(y/n)>>>:')
        # 5.1 判断用户输入的是y还是n
        if choice == 'y':
            # 重置count的次数
            count = 1
        else:
            print('再接再厉')
            break
    # 1.1 获取用户猜测的年龄
    guess_age = input('请输入您猜测的年龄>>>:')
    # 1.2 简单粗略的将字符串转换成数字(可能会报错 暂时不要考虑)
    guess_age = int(guess_age)
    # 1.3 猜测年龄
    if guess_age > real_age:
        print('猜大了')
        # 4.1 每次猜错都加一
        count += 1
    elif guess_age < real_age:
        print('猜小了')
        # 4.1 每次猜错都加一
        count += 1
    else:
        print('哎呀 你真棒 猜对了!!!')
        # 4.猜对了直接结束本层循环
        break
    # 优化
    # count += 1

  6、while+continue

    continue表示结束本次循环,直接进入下一次循环

# 使用while循环打印出0-10但是不打印4
# 1.定义一个起始变量
count = 0
# 2.循环
while count < 11:
    # 5.判断 如果count为4则不打印
    if count == 4:
        count += 1
        # 跳过本次循环 开始下一次循环
        continue
    # 3.打印变量的值
    print(count)
    # 4.变量值自增1
    count += 1

continue会让循环体代码直接回到条件判断处重新判断

  7、while+else

count = 0
while count < 5:
    print(count)
    count += 1
else:
    print('呵呵')  # 会执行else子代码

count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print('呵呵')  # 不会执行else子代码
"""
当while循环没有被人为中断(break)的情况下才会走else
"""

  8、死循环

while True:
    print(1)

for循环

  for循环可以做的事情while都可以做,之所以使用for循环是在循环取值时,for循环比while循环的使用更为简洁

  1、语法

for 变量名 in 可迭代对象:#(此时只需要知道可迭代对象是字符串、列表、字典,后面会专门讲解)
    代码一
    代码二
ps:变量名如果没有合适的名称 那么可以使用i,j,k,v,item等

   演示

# 列表
for i in ['a','b','c']:
    print(i)

# 字符串
for i in 'hello world':
    print(i)

# 字典
d = {'name': '小明', 'age': 18, }
for k in d:
    print(k, d[k])

  2、range关键字

# 第一种:一个参数  从0开始 顾头不顾尾
for i in range(10):     # 0,1,2,3,4,5,6,7,8,9
    print(i)
# 第二种:两个参数  自定义起始位置 顾头不顾尾
for i in range(4, 10):    #4,5,6,7,8,9
    print(i)
# 第三种:三个参数  第三个数字用来控制等差值
for i in range(2, 100, 10):  # 2,12,22,32,42,52,62,72,82,92
    print(i)
range在不同版本的解释器中 本质不同
    在python2.X中range会直接生成一个列表
        在python2.X中有一个xrange也是迭代器
    在python3.X中range是一个迭代器  节省内存空间
    '''python2.X中xrange就是python3.x里面的range'''

  具体如下

  python2

 

   python3

   3、for+break

# break功能也是用于结束本层循环h和while循环一样的作用
for i in range(10):
    if i == 4:
        break
    print(i)

  4、for+continue

# continue功能也是用于结束本层循环h和while循环一样的作用
for i in range(10):
    if i == 4:
        continue
    print(i)

  5、for+else

# else也是在for循环正常结束的情况下才会执行和while循环一样的作用
for i in range(10):
    if i == 4:
        break
    print(i)
else:
    print('123')

  6、for循环嵌套

# *****
# *****
# *****

for i in range(3):
    for j in range(5):
        print("*", end='')
    print()  # print()表示换行
# 1*1=1 
# 2*1=2 2*2=4 
# 3*1=3 3*2=6 3*3=9 
# 4*1=4 4*2=8 4*3=12 4*4=16 
# 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
# 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
# 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
# 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
# 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

for i in range(1, 10):
    for j in range(1, i + 1):
        print('%s*%s=%s' % (i, j, i * j), end=' ')
    print()
 #     *
 #    ***
 #   *****
 #  *******
 # *********

max_level = 5
for current_level in range(1, max_level + 1):
    for i in range(max_level - current_level):
        print(' ', end='')  # 在一行中连续打印多个空格
    for j in range(2 * current_level - 1):
        print('*', end='')  # 在一行中连续打印多个空格
    print()

 

 

    

 

 

posted @ 2021-11-04 16:55  那就凑个整吧  阅读(318)  评论(0编辑  收藏  举报