If 条件语句与循环(While循环For循环)

六.if条件语句

    语法格式:

    if  

        条件1...  :(冒号结尾)  #如果不满足,则执行下一条

        if        条件n...  :(冒号结尾)  #如果不满足,则执行下一条

        elif     条件n...  :(冒号结尾)  #如果不满足,则执行下一条

        else    如果不满足条件那么就输出...

    elif  

        条件2...  :(冒号结尾)  #如果不满足,则执行下一条

    else  :(冒号结尾)

        如果不满足条件那么就输出...


例子:if条件语句

gender = 'female'
age = 21
height = 170
is_beautiful = True
is_successful = False

if gender == 'female' and age > 18 and age <= 25 and height > 160 and is_beautiful: 
    print('表白中...')
    if is_successful:
        print('在一起...')
    else:
        print('逗你玩呢...')
else:
    print('阿姨好...')

练习1:用户登陆验证

name=input('pls input you name>>:')
passwd=input('pls input you passwd>>:')
passwd=int(passwd)   #输入的数据设置为整数类型

if name == 'szq' and passwd == 666666:
    print('Welcome')
elif name != 'szq':
    print('You name not exit')
elif name == 'szq' and passwd != 666666:
    print('You passwd is error')
else:
    print('The name does not exist')

练习2:根据用户输入的内容给出其权限

name=input('pls input you name>>:')

if name == 'szq':
    print('超级管理员')
elif name == 'wjp':
    print('网管')
elif name == 'zyl' or name == 'wxx':
    print('技术专员')
else:
    print('不存在这个人')

练习3:判断今天是周几,然后决定是出去玩还是上班

today=input('pls input today>>:')
today=int(today)

if today in [1,2,3,4,5]:
    print('好好上班,别想着出去玩')
elif today in [6,7]:
    print('出去玩')
else:
    print('''
    必须输入:1,2,3,4,5,6,7其中一种
    ''')

注意点:if today in [1,2,3,4]:  就相当于变量today的值存在与[1,2,3,4]内。    #变量today匹配[]中括号内的任意一个值。

          

练习4:用户登陆接口

    让用户输入用户名密码

    认证成功后显示欢迎信息

    输错三次后退出程序

user_list={
    'ssp':{'passwd':666666,'account':0},
    'wsp':{'passwd':666666,'account':0},
    'zsp':{'passwd':666666,'account':0},
}
while True:
    name=input('pls input you name >>:')
    passwd=input('pls input you passwd >>:')

    if name in user_list and passwd != user_list[name]['passwd']:
        print('用户或密码输入错误,请重新输入')
        user_list[name]['account'] += 1     #针对不同用户做失败次数判断,这样失败次数不会叠加,某一用户失败,其他用户不受影响
        if user_list[name]['account'] > 2:  #如果某一用户失败次数大于3,那么就提示用户"系统将被锁定"
            print('你尝试的输入的次数过多,系统已被锁定')
            break
        continue
    elif name in user_list and passwd == user_list[name]['passwd']:
        print('登陆成功')
        break
    else:
        print('用户名不在')
        exit()

练习5:登陆接口需求升级:

    可以支持多个用户登录 (提示,通过列表存多个账户信息)

    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

前言:这里需要用到Python中文件的读取和写入功能,例:

user_list={
    'ssp':{'passwd':666666,'account':0},
    'wsp':{'passwd':666666,'account':0},
    'zsp':{'passwd':666666,'account':0},
}

while True:
    name=input('pls input you name >>:')
    passwd=input('pls input you passwd >>:')
    passwd=int(passwd)

    with open('test.txt','r') as f:          #打开文件"test.txt","r"表示只读,默认使用
        user_land=f.read()                   #f.read()表示读取文件"test.txt"得内容并赋值给变量"user_land"
    if name in user_land:
        print('用户 %s 尝试登陆次数过多,已被系统锁定,无法登陆!' % (name))
        break

    if name in user_list and passwd != user_list[name]['passwd']:
        print('用户或密码输入错误,请重新输入')
        user_list[name]['account'] += 1
        if user_list[name]['account'] > 2:
            print('你尝试的输入的次数过多,系统已被锁定')
            with open('test.txt', 'w') as f:        #"w"表示可写,默认使用"r"只读,可写模式下不能读文件内容
                f.write(name)                        #要写得内容
                f.close()                            #有打开就有关闭
            break
        continue
    elif name in user_list and passwd == user_list[name]['passwd']:
        print('登陆成功')
        break
    else:
        print('用户名不在')
#Python读写功能注释:
Python读写功能注释
with open('test.txt','w') as f:    #打开文件"test.txt","w"表示可写,默认使用"r"只读,可写模式下不能读文件内容
    f.write(name)                  #要写得内容
    f.write(passwd)                #要写得内容
    f.close()                      #有打开就有关闭

with open('test.txt') as f:
    user_list=f.read()             #f.read()"读取文件test.txt得内容",把值赋值给变量user_list
if name in user_list:
    print('用户%s被锁定' %(name))

七.循环 While与for循环

    7.1while 循环

    7.1.1 while循环的语法(又称之为条件循环)
        while 条件:
            代码1
            代码2
            代码3
            。。。。

    7.1.2 while+break,break的意思是结束本层循环

    7.1.2 while+continue,continue的意思是结束本次循环,进入下一次循环

    while+continue练习:打印数字1-10,其中不打印数字8

n=1
while n <= 10:
    if n == 8:            
        n+=1              #这里不加n+=1的话,while循环执行到n=8时,会一直循环,那么只能打印1-7,在8这个位置卡住
        continue          #当n=8时跳出本次循环
    print(n)
    n+=1

   

    练习1:循环嵌套 (while循环内再加while循环)

while True:                       #第1个while循环
    print('第一层')
    while True:           #第2个while循环
        print('第二层')
        while True:               #第3个while循环
            cmd=input('第三层>>: ')
            if cmd == 'q':
                break              #如果在第3个while循环内输入'q',则跳出本层(第3层)循环
        break
    break

    

    练习2:循环嵌套小技巧  while+tag  #适合用于循环嵌套(即while循环中套多个while循环,3个以上循环嵌套比较适合用)

tag=True                #定义变量tag=True
while tag:
    print('第一层')
    while tag:
        print('第二层')
        while tag:
            cmd=input('第三层>>: ')
            if cmd == 'q':          #当输入'q'命令时
                tag = False         #定义变量tag为False,那么本层循环结束后,所有的变量tag的值都为False,那么所有的循环都将结束
                break


    7.2 for循环  方便从一个数据里面取多个值出来

name='szq'
for n in name:      #相当于:for n in 'szq'
    print(n)        #运行后得到如下值
s
z
q

    这里可以看出,for循环内,对变量n依次赋值为"szq"(依次赋值为"s" "z" "q"),那么在取变量n的值的时候,就能够依次取出"s" "z" "q"多个值

猜你喜欢

转载自blog.csdn.net/sinat_29214327/article/details/79860164