03-python流程控制

一、if语句

'''
if 条件1: # 条件1成立的情况下会运行子代码块
    子代码1
    子代码2
    子代码3
    ...
elif 条件2: # 条件2成立的情况下会运行子代码块
    子代码1
    子代码2
    子代码3
    ...
elif 条件3: # 条件3成立的情况下会运行子代码块
    子代码1
    子代码2
    子代码3
    ...
......
else:      # 上述条件都不成立的情况下会运行else包含的子代码块
    子代码1
    子代码2
    子代码3
    ...
'''

# 示范:   如果:成绩>=90,那么:优秀
#
#        如果成绩>=80且<90,那么:良好
#
#        如果成绩>=70且<80,那么:普通
#
#        其他情况:很差

score=input('请输入您的分数进行查询:') # score="abc"
if score.isdigit(): # "99".isdigit()
    score=int(score) # 把纯数字的字符串转换成整型,score=int("99")

    if score >= 90:
        print('成绩的级别为:优秀')
    elif score >= 80:
        print('成绩的级别为:良好')
    elif score >= 70:
        print('成绩的级别为:普通')
    else:
        print('成绩的级别为:很差')

else:
    print('必须输入纯数字')

 

二、 while语句

# 1、嵌套多层循环,需求是想一次性终止所有层的循环,推荐使用方式二
# 方式一:
while 条件1:
    while 条件2:
        while 条件3:
            break
        break
    break
# 方式二:
tag=True
while tag:
    while tag:
        while tag:
            tag=False

# 2、循环嵌套小案例
# 需求一:输错账号密码,重新输入重新验证
# 需求二:输错3次,退出程序
# 需求三:输对账号密码,登录成功之后,可以循环接收用户输入的命令并执行
username = 'egon'
password = '123'

count = 0

while count < 3:  # count=3
    # if count == 3:break

    inp_user = input('请输入你的用户名:')
    inp_pwd = input('请输入你的密码:')

    if inp_user == username and inp_pwd == password:
        print('登录成功')

        while True:
            cmd = input('请输入你的命令(输入q退出): ')
            if cmd == 'q':
                break
            print('%s 正在执行' % cmd)

        break
    else:
        print('输入的账号或密码错误')
        count += 1  # count=3


username = 'egon'
password = '123'

count = 0
tag=True

while tag:
    if count == 3:break

    inp_user = input('请输入你的用户名:')
    inp_pwd = input('请输入你的密码:')

    if inp_user == username and inp_pwd == password:
        print('登录成功')
        while tag:
            cmd = input('请输入你的命令(输入q退出): ')
            if cmd == 'q':
                # 退出程序
                tag=False
            else:
                print('%s 正在执行' % cmd)

    else:
        print('输入的账号或密码错误')
        count += 1  # count=3

# 3、while+continue:continue会结束本次循环,直接进入下一次循环
count = 1

while count < 6:  # 5 < 6
    if count == 4:  # 4==4
        count += 1 # count=5
        continue  # 强调:在continue之后不应该写与其同级的代码,因为为将无法运行

    print(count)  #
    count += 1  # 6

#4、while+else
count=1
while count < 6:
    # if count == 3:break
    if count == 4:
        count+=1
        continue
    print(count)
    count+=1
else:
    #else对应的子代码块会在while循环结束后,并且不是被break强行结束的情况下执行
    print('====end====')

 

三、for循环

for循环介绍:


# 针对循环取值操作,while循环并不擅长,于是python提供一个专门循环取值操作:for循环

students = ['egon', 'lxx', 'alex']
for x in students: # 有几个值就循环几次
    print(x)

dic={'name':'egon','age':18,'sex':'male'}
for aaa in dic: # 从字典里取出的默认是key,
    print(aaa,dic[aaa])

#循环输出三次hello world:
count = 0
while count < 3:
    print('======')
    print('hello world')
    print('======')
    count+=1

for x in ['a','b','c']: # x='c'
    print('======')
    print('hello world')
    print('======')

for x in range(3):
    print('======')
    print('hello world')
    print('======')


# range(1,3) # 从1开始,顾头不顾尾
for x in range(1,3):    # [1,2]
    print(x)            # 输出: 1 2


# range(3):默认从0开始,顾头不顾尾,到2结束,0,1,2
# range(1,6) # 可以指定开头,从1开始,顾头不顾尾,到5结束,1 2 3 4 5
# range(1,6,2) # 可以指定步长,1 3 5


students = ['egon', 'lxx', 'alex']
for x in students:
    print(x)

for i in range(len(students)): # [0,1,2]
    print(i)
    print(students[i])

#  0        2       4
l=['a','b','c','d','e','f'] #
# range(len(l))

for i in range(0,len(l),2):     #['a','c','e' ]
    print(l[i])
总结:
一:while循环与for循环
相同之处:都是循环,都是用来做重复的事情
不同之处
1、
while循环通常用来循环执行某段代码
for循环通常用来进行循环取值

2、
while循环的循环次数取决于条件什么时候为假
for循环循环的次数取决in后的数据类型所包含的值的个数

二:for+range():range用来产生一个数字序列
用途1:用来重新n次某段代码
用途2:range可以用来产生数字序列,数字对应的是列表的索引
所以说,for+range()是可以按照索引编列列表

for与break、continue的使用:
# for+continue
for i in range(5): # [0,1,2,3,4]
    if i == 2 or i == 3:continue
    print(i)

#for+else
for i in range(3): #
    username=input('username>>: ')
    password=input('password>>: ')
    if username == 'egon' and password == '123':
        break
    else:
        print('用户名或密码错误')
else:
    print('账号密码输错次数达到最大限制,退出程序')

for循环案例:

1、使用for循环实现打印“*”金字塔的操作,效果如图:

 

m_num = input("请输入您需要打印的金字塔层数:")
num = int(m_num)
for i in range(num):
        for x in range(num -i -1):
            print(" ",end="")
        for y in range(2*i+1):
            print("*", end="")
        for x in range(num -i -1):
            print(" ",end="")
        print("")

2、for循环应用切片操作:

 

#pps:for循环使用嵌套切片
#就是利用range()函数生成1-99的整数,然后从start_index=2(即3)开始以step=3取值,直到终点,再在新序列中取最后五个数。
for i in range(1,100)[2::3][-5::]:
    print(i,end=" ")                    # 输出结果 87 90 93 96 99

 

 

 

 

 
 

 

posted @ 2020-02-21 15:50  Jil-Menzerna  阅读(258)  评论(0编辑  收藏  举报