码迷,mamicode.com
首页 > 其他好文 > 详细

流程控制之 IF 和 while

时间:2021-01-04 11:03:04      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:逻辑运算   结果   col   asd   循环   成功   结束   条件   break   

一、条件

  条件可以是:

    1.显示布尔值(比较运算符,也可以是True和false)

    2.y隐式布尔值(所有的值都可以当成条件,其中0、None、空【空字符串、空列表、空字典】代表的布尔值为Flase)

  逻辑运算符:not 、and、or、

    not:把紧跟后面的条件结果取反

    and:连接左右两个条件,所有条件都为True,j结果才为True

    or:连接左右两个条件,只要有一个条件为True,结果就为True;若两个条件都为Flase,结果才为Flase。

  优先级:not > and > or

  成员运算符:in、

print(name in {name:bob,age:123,male:man}) #在字典中 要用Key来判断,不能用value
print(name in [name,bob,age,123,male,man])#在列表中

  身份运算符 : is  (判断ID是否相等)

二、流程控制之if判断

  语法一:

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

  语法二:

if 条件:
    代码1
    代码2
    代码3
else:#条件不成立,才运行
    代码1
    代码2
    代码3

  语法三:

if 条件2:
    代码1
    代码2
    代码3
elif 条件2:#添加额外的条件(可添加多个,但只要条件成立一个,后面就不再运行)
    代码1
    代码2
    代码3

  语法四:

if 条件1:
    代码1
    代码2
    代码3
elif 条件2:#添加额外的条件(可添加多个,但只要条件成立一个,后面就不再运行)
    代码1
    代码2
    代码3
else:#上述条件都不成立,才运行
    代码1
    代码2
    代码3

三、短路运算

  偷懒原则,偷懒到哪里,就把当前值返回

num_1 = 10 > 3 and 98 < 23 or 78 == 78 and 90 > 23
print(num_1)

四、深浅copy

    浅copy:针对不可变和可变类型没有进行区分(只COPY了第一层)

list1=[name,age,42]
list2=list.copy(list1)#把原列表第一层的内存地址不区分的一模一样拷贝一份
print(list1)   =======》[name, age, 42]
print(list2)   =======》[name, age, 42]

    深copy: (每一层都进行了copy)

       针对可变类型进行区分对待,值还是用原来的值。(copy一个列表,并且改操作完全与原列表独立开)

五、流程控制之While循环

  语法:

while 条件:
    代码1
    代码2
    代码3
count = 0
while count < 6:#t条件循环 ,条件成立一直循环
    print(count)
    count += 1
print(棒棒棒)

  死循环

    纯计算无IO的死讯会导致致命的效率问题

  

while 1:  #如有必要可这样写

while ture:

   应用:

name = JAKE
sercrt = asd
while True:#只要条件为真就一直循环
    inp_name = input(请输入你的账号:)
    inp_password = input(请输入你的密码:)

    if inp_name == name and inp_password == sercrt:
        print(登入成功)
    else:
        print(请重新登入)

 

    退出循环:

      方式一:

 

name = JAKE
sercrt = asd
exit_1 = True
while exit_1:  # 只要条件为真就一直循环
    inp_name = input(请输入你的账号:)
    inp_password = input(请输入你的密码:)

    if inp_name == name and inp_password == sercrt:
        print(登入成功)
        exit_1 = False
    else:
        print(请重新登入)

 

      方式二:break,只要运行到break就会结束本层循环

name = JAKE
sercrt = asd
while True:
    inp_name = input(请输入你的账号:)
    inp_password = input(请输入你的密码:)

    if inp_name == name and inp_password == sercrt:
        print(登入成功)
        break  # 结束本层循环
    else:
        print(请重新登入)
#每一层循环的结束都需要Break来结束本层的循环
while True:
    while True:
        while True:
            break
        break
    break

 

    while循环嵌套:

name = JAKE
sercrt = asd
tag = True
while tag:
    inp_name = input(请输入你的账号:)
    inp_password = input(请输入你的密码:)

    if inp_name == name and inp_password == sercrt:
        print(登入成功)
        while tag:
            amd = input(请输入你要进行的操作:)
            if amd == q:
                tag = False
            else:
                print(命令{x}正在运行,.format(x=amd))

    else:
        print(请重新登入)

    while + continue:#结束本次循环,直接进入下一次。(在continue之后添加同级代码毫无意义,无法运行到)  

count = 0
while count <= 5:
    if count == 3:
        count += 1
        continue
    print(count)
    count += 1

    while + else:(else包含的代码会在while循环结束后,并且没有被break打断才会执行)

name = JAKE
sercrt = asd
count = 0
while count < 3:
    inp_name = input(请输入你的账号:)
    inp_password = input(请输入你的密码:)

    if inp_name == name and inp_password == sercrt:
        print(登入成功)
        while True:
            amd = input(请输入你要进行的操作:)
            if amd == q:
                break
            else:
                print(命令{x}正在运行,.format(x=amd))
        break
    else:
        print(请重新登入)
        count += 1
else:
    print(输错账号密码三次。)

 

流程控制之 IF 和 while

标签:逻辑运算   结果   col   asd   循环   成功   结束   条件   break   

原文地址:https://www.cnblogs.com/Holmes-98/p/14213704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!