找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2165|回复: 2

[求助] 程序:判断输入的用户名是否是已经在文件中存在,出错了

2

主题

4

帖子

4

积分

贫民

积分
4
zhouzhou123 发表于 2018-7-20 11:37:23 | 显示全部楼层 |阅读模式
不知道怎么修改可以完成任务:判断输入的用户名是否是已经在文件中存在。
如果有大神能说明一下traceback出错情况就更好了,谢谢。

代码

代码
2018-07-20_112336.png
回复

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
zhouzhou123  楼主| 发表于 2018-7-20 13:19:56 | 显示全部楼层
代码
#coding:gbk
import json
def store():
#读取已存储的用户名
        try:
                with open('username.json')as f:
                        username=json.load(f)
        except FileNotFoundError:
                return None
        else:
                return username
def greet():
#问候用户
        while True:
                unknown_name=input("请输入名字,按no退出:")
                if unknown_name=='quit':
                        break
                username=store()
                if username:
                #如果user.json文件中已有用户名,判断unkown_name是否在文件中
                        if unknown_name in username:
                                print(unknown_name+",您已注册过")
                        else:
                                with open('username.json','a')as f:
                                        json.dump(unknown_name,f)
                                print("欢迎新注册的"+unknown_name)
                else:
                #没有user.json文件,则自动创建文件,写入第一个用户名
                        with open('username.json','a')as f:
                                json.dump(unknown_name,f)
                        print("欢迎第一位注册的"+unknown_name)
greet()
               
回复 支持 反对

使用道具 举报

0

主题

9

帖子

9

积分

贫民

积分
9
Ryan_chow 发表于 2018-8-16 13:35:53 | 显示全部楼层
试一下这个,我做了些调整

  1. import json


  2. def store():
  3.     # 读取已存储的用户名
  4.     try:
  5.         with open('username.json')as f:
  6.             username = json.load(f)
  7.     except FileNotFoundError:
  8.         return None
  9.     except json.decoder.JSONDecodeError:  # 文件存在,但内容为空
  10.         return None
  11.     else:
  12.         return username


  13. def greet():
  14.     # 问候用户

  15.     while True:

  16.         unknown_name = input("请输入名字(输入quit退出):")
  17.         if unknown_name == 'quit':
  18.             break
  19.         username = store()
  20.         if username:
  21.             # 如果user.json文件中已有用户名,判断unkown_name是否在文件中
  22.             if unknown_name in username.values():
  23.                 print(unknown_name+",您已注册过")
  24.             else:
  25.                 with open('username.json', 'w')as f:
  26.                     username[len(username)] = unknown_name
  27.                     f.write(json.dumps(username))
  28.                 print("欢迎新注册的"+unknown_name)
  29.         else:
  30.             # 没有user.json文件或内容为空,写入第一个用户名
  31.             with open('username.json', 'w')as f:
  32.                 f.write(json.dumps({0: unknown_name}))  # 按字典存储、读取
  33.             print("欢迎第一位注册的"+unknown_name)


  34. greet()
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表