python基础篇 01-循环和list 拆包

需求1:users = [
['fd','123456'],
['xzh','45678']
]
登陆,输入账号/密码,最多输入3次,3次还没有登陆成功,
提示次数超限
登陆成功,提示 欢迎xx登陆,今天的日期是xxx,程序结束
账号/密码都不能为空,要提示不能为空 --字符串的方法
账号/密码错误,提示错误,继续登陆
输入的账号不存在要提示,算输错一次
import datetime

user = [
    ['test1','Aa123456'],
    ['test2', 'Aa123456']

]
is_login = False
for count in range(3):
    if is_login:
        break
    username = input("请输入用户名:")
    password = input("请输入密码:")
    if username.isspace() or password.isspace() or len(username)==0 or len(password)== 0 :
        print("输入的用户名和密码都不能为空!")
        continue
    user_names = list(map(lambda user_info:user_info[0],user))
    if username not in user_names:
        print(f"输入的用户名{username}不存在!")
    else:
        # for stu_name,stu_password in user:
        #     if stu_name == username and stu_password == password:
        #         print(f"欢迎{username}登陆成功,今天的日期是{datetime.datetime.today()}!")
        #         is_login = True
        #         break
#或者使用如下的方式
        if [username,password] in user:         #判断一维数组是否在二维数组中
            print(f"欢迎{username}登陆成功,今天的日期是{datetime.datetime.today()}!")
            break
        else:
            print("密码错误,请继续登陆!")
else:
    print("登陆次数已达限制,加入黑名单,不能继续登陆了")

 

需求2:

写一个登陆的程序
usernames = ['fd','xzh']
passwords = ['123456','123']
登陆,输入账号/密码,最多输入3次,3次还没有登陆成功,
提示次数超限
登陆成功,提示 欢迎xx登陆,今天的日期是xxx,程序结束
账号/密码都不能为空,要提示不能为空 --字符串的方法
账号/密码错误,提示错误,继续登陆
输入的账号不存在要提示,算输错一次
usernames = ['test1','test2']
passwords = ['123','456']
for count in range(3):
    username = input("请输入用户名:")
    password = input("请输入密  码:")
    if username.isspace() or password.isspace() or len(username) == 0 or len(password) == 0 :
        print(f"账号和密码都不能为空!")
        continue
    if username not in usernames:
        print(f"账号{username}不存在!")
    else:
        pwd = passwords[usernames.index(username)]
        if pwd == password:
            print(f"欢迎{username}登陆,今天的日期是{datetime.datetime.today()}!")
            break
        else:
            print(f"账号{username}的密码错误!")
else:
    print("登陆次数已达限制,加入黑名单,不能继续登陆了")
View Code

list:

students = "test1,test2,test3"

#数组、列表、list
students_new = [ 'test','健','龙','成']
#0 0 1 2
#编号 ,索引、下标、角标
print(students_new[1] )
#增 常用
students_new.append('韩')#在列表的末尾添加元素
students_new.insert(0,'洋') #在list前面添加元素
#修改
students_new[2] = '健'
#删除 元素不存在 或者 index越界,都回报错
students_new.pop(1)#传入指定的下标,删除元素
students_new.remove('韩')#删除指定的元素
del students_new[-1]

print(students_new)
print(students_new[3])
print(students_new[-1])
print(students_new[0])


students_new.clear() #清空list
print('清空之后的',students_new)

zc_count = students_new.count('成')#统计这个list里面元素出现的次数
print('count',zc_count)
print('index',students_new.index('成'))#找到某个元素的下标

users = ['高','代']
students_new.extend(users)#把一个可迭代对象里面的元素加入另一个列表里面,可迭代对象中元素拆包成list ,相当于两个list拼接;
print('reverse之前的',students_new)
students_new.reverse()#反转list 1,2,3,4,5,6 654321
print('reverse之后的',students_new)

numbers = [9,23,52323,235,235,2,346,3463,36]
numbers.sort(reverse=True)#排序,默认是升序
print(numbers)

#多维数组
student_info = [
[1,'刘洋','京'],
[2,'hzy','shanghai'],
[3,'ljj','津']
]#二维数组
student_info2 = [
[1,'刘','北京',['bmw','benz','audi'] ],
[2,'hzy','北京',['bmw','benz','audi']],
[3,'ljj','北京']
] #三维数组
student_info2.remove('北京')
student_info[0][-1] = '山东'
student_info2[0][-1].append('tesla')
student_info2[0].pop(2)
student_info2[2].append(['wlhg','yfnd'])
print(student_info2)
posted @ 2021-03-25 11:40  捞铁  Views(43)  Comments(0Edit  收藏  举报