Python面向对象编程项目---(创建账号信息保存--提取信息验证)

Python面向对象编程项目---(创建账号信息保存--提取信息验证),第1张

文章目录
  • 前言
  • 一. 分析代码思路
  • 二、 *** 作步骤
    • 1.创建类,定义方法
    • 2.读入数据
    • 3.调用对象
  • 二. 账号查询
  • 总结


前言

今天我们来实现模拟 新用户创建游戏账号密码

我们一般打游戏或者到某些app或者网站 都需要创建个人信息,例如创建社交昵称姓名 还有账号密码这些等等 如果碰到了相同的id 或者 账号和别人相同的话 会提示我们该用户姓名或者账号以存在。他们是怎么实现的呢? 今天我们就用python实现以下!

本篇文章包含的知识点有:

1.while for循环
2.if嵌套判断语句
3.异常捕获
4.列表,字典,以及索引
5.面向对象
6.文件读写 *** 作


提示:以下是本篇文章正文内容,下面案例可供参考

一. 分析代码思路

“”"
代码思路:
先创建 账号密码信息保存于某个文件夹中
然后打开该文件 提取账户信息 验证信息是否存在。
“”"

二、 *** 作步骤 1.创建类,定义方法

代码如下(示例):

创建类

class Account_Information():

定义 输入账号方法
代码如下(示例):

 def input_ai(self):
        while True:
            # 接收用户姓名
            self.name = input('请输入您的姓名:')
            # 捕获异常
            try:
                # 接收用户输入的账户
                self.length = input('请输入您创建10位数的账号:')
                # 第一层判断 判断用户输入的是否是数字,不是则返回else
                if self.length.isdigit():
                    # 第二层判断 输入的是否为10位数字, 是就退出循环,不是就重新输入
                    if len(self.length) == 10:
                    	# 打开文件需要声明字符编码utf-8
                        document = open('账户信息.txt', encoding='utf-8')
                        # 读取文件的所有数据
                        list1 = document.readlines()
                        
                        # list1返回的是列表 里面1条用户的数据代表着一个索引,所以用for循环遍历
                        数据判断用户输入的账号是否存在                     
                        for i in list1:
                            # 查找账号起始的索引
                            index = i.find(self.length)
                            # 因为账号只允许10位数,所以加上10 就能获取账号位置结束的索引
                            index1 = index + 10
                            # 账号的信息
                            str1 = i[index:index1]
                            # 第三层判断 输入的账号是否在str1里面,是的话退出for循坏重新输入
                            if self.length in str1:
                                print('你创建的账户已存在,请重新输入')
                                break
                            # 输入的账号不在str1里面就退出方法
                        else:
                            print('创建成功!')
                            # 
                            document.close()
                            return
                    else:
                        print('请输入10位纯数字')
                else:
                    print('您输入的格式不正确,请再次输入10位纯数字')
            except Exception as pp:
                print(pp)

定义 输入密码方法
代码如下(示例):

    def input_word(self):
        while True:
            # 密码创建条件
            try:
                # 接收用户输入的密码
                self.password = input('请输入您创建账号密码:')
                # 判断密码是否为数字, 不是就返回else
                if self.password.isdigit():
                    # 判断用户密码大于或等于6,否则返回else重新输入
                    if len(self.password) >= 6:
                        print('创建成功!')
                        break
                    else:
                        print('请输入6位数以上的密码')
                else:
                    print('您输入的格式不正确,请再次输入10位纯数字')
            except:
                print('')

        # 创建一个字典, 接收用户输入的数据
        self.dict1 = {'姓名': self.name, '账号': self.length, '密码': self.password}
2.读入数据

定义一个保存数据的方法
代码如下(示例):

    def bao_cun(self):
        # 创建一个变量 因为write写入不了字典,就把字典转换为str字符串 然后拼接换行符
        dict2 = str(self.dict1) + '\n'

        # 打开文件 追加数据 字符编码为utf-8
        f = open('账户信息.txt', 'a', encoding='utf-8')

        # 写入变量
        f.write(str(dict2))

3.调用对象

代码如下(示例):

# 创建AI对象
AI = Account_Information()

# 写一个循环反复写入数据
while True:
    AI.input_ai()
    AI.input_word()
    AI.bao_cun()
    brr_ak = input('是否继续输入 yes/no')
    if brr_ak == 'no':
        break
二. 账号查询

以上py文件实现了写入数据,以下是查询账号文件,查询用户账号是否存在。

读者可以通过以上代码思路自己 实现查询用户名称

while True:
    name = input('请输入你要查找的账号')
    f = open('账户信息.txt', encoding='utf-8')
    list1 = f.readlines()

    # print(len(list1))

    for i in list1:
        index = i.find(name)
        index1 = index + 10
        # 定位账号的位置
        str1 = i[index:index1]
        if name in str1:
            print(f'您查找的{name}存在我们系统')
            break
    else:
        print('您查找的用户不存在!')



总结

本篇文章讲述了账号读取写入的 *** 作,可以对刚学python基础的读者提供一些思路。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/788705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存