Python(一)基础部分2——If 条件语句与循环(While循环For循环)

一.if条件语句

语法格式:
    if  
        条件1...  :(冒号结尾)  #如果不满足,则执行下一条
        if        条件n...  :(冒号结尾)  #如果不满足,则执行下一条
        elif     条件n...  :(冒号结尾)  #如果不满足,则执行下一条
        else    如果不满足条件那么就输出...
    elif  
        条件2...  :(冒号结尾)  #如果不满足,则执行下一条
    else  :(冒号结尾)
        如果不满足条件那么就输出...

例子:if条件语句

gender = 'female'
age = input('age >>:')
age=int(age)
height = input('height >>:')
height=int(height)
is_beautiful = True

if gender == 'female' and age > 18 and age <= 25 and height > 160 and is_beautiful:
    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' or passwd != 666666:
    print('You name or passwd 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 >>:')
    passwd=int(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':123,'account':0},
    'wsp':{'passwd':123,'account':0},
    'zsp':{'passwd':123,'account':0},
}

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

    with open('user_list.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('user_list.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循环

    2.1while 循环

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

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

    2.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

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

  例子1、for循环字符串

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

  例子2、for循环列表

list=[1,2,3]
for n in list:
    print(n)

1
2
3

  例子3、for循环字典

user_list={
    'aaa':{"passwd":123,"account":0},
    'bbb':{"passwd":123,"account":0},
    'ccc':{"passwd":123,"account":0},
}

for key in user_list:
    print(key)
    
aaa
bbb
ccc

  例子4、for循环多个字典

user_list={
    'aaa':{"passwd":123,"account":0},
    'bbb':{"passwd":123,"account":0},
    'ccc':{"passwd":123,"account":0},
}

user={
    'a':12,
    'b':12,
    'c':12,
}

for k,v in zip(user_list,user):
    print(k,v)

aaa a
bbb b
ccc c

 

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值