资讯专栏INFORMATION COLUMN

Python 初体验

roundstones / 1065人阅读

摘要:广告欢迎大家到路飞学城学习很喜欢薪时代这个词所以我们要拥抱人工智能拥抱前提下载,如果是电脑会自带。

广告:欢迎大家到 路飞学城 学习 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("
")
                        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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41523.html

相关文章

  • Python: C扩展体验

    摘要:哪怕工作中比较少机会自己写扩展了解这块的知识,也有利于我们更加深入了解的运行本质。表示这个模块使用这个映射表。所以,在我们编写扩展时,也需要时刻谨记这步主要会用到下面两个宏增加引用例减少引用例不能直接使用释放,必须使用然后即可。 前言 使用 Python 毋庸置疑减少了很多规则约束和开发成本,让我们能够更加专注于逻辑而非语法。但是得此失彼,开发效率提高了,却带来了运行性能的问题,所以就...

    xcold 评论0 收藏0
  • Django 项目配置体验(一)

    摘要:静态资源路径可以有多个,所以这里使用一个列表进行配置再次进入,完美后记现在只涉及到了项目的配置和一些基础的配置,没有涉及到请求从开始到完成的任何内容。下篇教程将集中进行记录。 前言 推荐使用 virtualenv 创建 python 虚拟环境,防止因为使用 pip 安装依赖到全局引起版本冲突的问题,PyCharm 默认会生成一个 venv 目录并创建虚拟环境,使用 IDE 自带的终端...

    Wildcard 评论0 收藏0
  • Movidius神经计算棒体验

    摘要:神经计算棒是个使用接口的深度学习设备,比盘略大,功耗,浮点性能可达。这里用了我自己改的才能用模型调优命令可以查看模型中每一层使用的内存带宽算力,模型调优可以以此为参考。 showImg(https://segmentfault.com/img/bV5vGV?w=1920&h=1080); Intel® Movidius™ 神经计算棒(NCS)是个使用USB接口的深度学习设备,比U盘略大...

    Turbo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<