Python 初体验

发布时间:2019-10-08 20:16:07编辑:auto阅读(1693)

    广告:欢迎大家到 路飞学城 学习 Python~

    很喜欢 Python “薪”时代 这个词~
    所以我们要拥抱 “人工智能”
    拥抱 “Python~”

    前提:下载 Python,如果是 Mac 电脑会自带 Python。

    Hello World!

    Mac 电脑打开终端输入:

    cd desktop
    touch hello.py
    vim hello.py
    使用 'i' 输入
    print('Hello World')
    输入 :wq 退出
    python3 hello.py

    然后我们会在终端看到:Hello World!
    恭喜你,这就是使用 Python 写的第一行代码!

    用户登录

    当我们完成 Hello World 之后,会发现这太简单了,那么我们肯定要继续学习,例如:语法、数据类型、字符编码、循环、函数等等。。
    下面先看一下用户登录程序需求:

    基础需求:
    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序

    升级需求:
    可以支持多个用户登录 (提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

    分析:
    1.既然是登录,肯定分登录成功和登录失败,即“判断”,所以我想到了 if else;
    2.输错3次后退出,可以考虑 for 循环;
    3.账户信息的列表或者文件中肯定有很多用户信息,所以要遍历出来分别和用户输入的 username 对比,还有锁定账户名单中的信息也要遍历出来对比,这里少不了使用 for 循环;
    4.锁定的用户存到文件里,需要读取文件,文件写入等;
    5.说到文件,我们还需要一个本地的文件 lock_userinfo.txt 来存储锁定用户信息;

    逻辑
    输入用户名,检查是否被锁定?

    如果锁定,提示:已锁定
    如果未锁定,输入密码
        读取用户信息文件,判断用户名是否存在?
            如果不存在,提示:请注册
            如果存在,判断密码是否正确?
                如果正确,提示:success
                如果不正确,提示:wrong
                    密码不正确的话继续输入密码,判断是否正确?
                        正确的话,提示:success
                        不正确的话,记录次数
                        当次数到3次时,提示用户:lock
                        并且把用户名存入 lock_userinfo.txt 文件
    
    

    代码

    # 输入用户名
    username = input('username: ')
    
    # 判断用户名是否被锁定
    lock_users = open('lock_userinfo.txt', 'r')
    for item in lock_users:
        lock_user = item.strip()
        if username == lock_user:
            print('You have been locked!')
            break
    lock_users.close()
    
    # 如果没有被锁定
    if username != lock_user:
        password = input('password: ')
        with open('userinfo.txt') as users:
            for account in users:
                acc_user = account.strip().split(':')[0]
                acc_pwd = account.strip().split(':')[1]
                if username == acc_user:
                    if password == acc_pwd:
                        print('Welcome back,', username, '~')
                        break
                    else:
                        print('Wrong password!')
                        for i in range(0, 2):
                            i = i + 1
                            password = input('password: ')
                            if password == acc_pwd:
                                print('Welcome back,', username, '~')
                                break
                            else:
                                print('Wrong password!')
                        if i == 2:
                            print('Sorry, you do not have a chance!')
                            lock_write = open('lock_userinfo.txt', 'a+')
                            lock_write.write('\n')
                            lock_write.write(username)
                            lock_write.close()
            if username != acc_user:
                print('Plase sign up!')
    
    print('------ end ------')
    
    

    文件目录
    根目录下有3个文件:
    login.py => python 代码
    userinfo.txt => 存放用户信息
    lock_userinfo.txt => 存放锁定的用户信息

    userinfo.txt

    admin:123
    Bob:123
    Helen:123
    

    lock_userinfo.txt

    Bob
    

    最后送上一句话:纸上得来终觉浅,绝知此事要躬行~

关键字