lingcooo 2021-11-13 21:29 采纳率: 90.9%
浏览 17
已结题

文件保存写入运行时无响应

这是我的代码:

import json


# 打开文件
def user():
    filename = 'user.json'
    try:
        with open(filename) as file_obj:
            old_name = json.load(file_obj)
    except FileNotFoundError:
        return None
    else:
        return old_name


# 输入新的用户名
def get_new_username():
    new_name = input('Please enter your name: ')
    filename = 'user.json'
    with open(filename, 'w') as file_obj:
        json.dump(new_name, file_obj)
        return new_name


# 输出问候或询问
def greet_user():
    name = user()
    while True:
        if name:
            pd = input(name + ' Is this it ? ')
            pd = pd.lower()
            if pd == 'y':
                print('Welcome back ' + name + ' .')
                break
            elif pd == 'n':
                new_name = get_new_username()
                print('I remember your name: ' + new_name + ' .')
                break
            else:
                print('Please try again. Y/N ! ')


greet_user()


运行后不报错,没反应。

这是论坛里的

import json
 
def get_sorted_username():
    """如果存储了用户名,就获取它"""
    filename = 'username.json'
    try:
        with open(filename) as f_obj:
            username = json.load(f_obj)
    except FileNotFoundError:
        return None
    else:
        return username
 
 
def get_new_username():
    username = input("What is your name?")
    filename = 'username.json'
    with open(filename, 'w') as f_obj:
        json.dump(username, f_obj)
    return username
 
 
def greet_user():
    username = get_sorted_username()
    if username:
        result = input(username + "is right?")
        if result == 'y':
            print("Welcom back,", username, "!")
        else:
            username = get_new_username()
            print("Welcom back,", username, "!")
    else:
        username = get_new_username()
        print("We'll remember you when you come back,", username, "!")
 
 
if __name__ == "__main__":
    greet_user()


这个可以正常运行。
对比了好几遍没发现问题啊。

  • 写回答

1条回答 默认 最新

  • qza2468 2021-11-13 21:33
    关注
    import json
     
     
    # 打开文件
    def user():
        filename = 'user.json'
        try:
            with open(filename) as file_obj:
                old_name = json.load(file_obj)
        except FileNotFoundError:
            return None
        else:
            return old_name
    
     
    # 输入新的用户名
    def get_new_username():
        new_name = input('Please enter your name: ')
        filename = 'user.json'
        with open(filename, 'w') as file_obj:
            json.dump(new_name, file_obj)
            return new_name
     
    
    def greet_user():
        name = user()
        while True:
            if name:
                pd = input(name + ' Is this it ? ')
                pd = pd.lower()
                if pd == 'y':
                    print('Welcome back ' + name + ' .')
                    break
                elif pd == 'n':
                    new_name = get_new_username()
                    print('I remember your name: ' + new_name + ' .')
                    break
                else:
                    print('Please try again. Y/N ! ')
            else:
                print("file not found")
                return 0;
     
    greet_user()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月13日

悬赏问题

  • ¥60 Qcustomplot绘制实时动态曲线
  • ¥20 运用matlab画x-y图
  • ¥15 用idea运行项目,运行tomcat报错:断言失败
  • ¥15 Sqlserver查询链接服务器数据问题
  • ¥15 Bibtex4Word 引用中文文献
  • ¥20 用opencv c/c++ 转换成灰度图,然后做一下直方图均衡,输出mp4文件
  • ¥20 matlab中的双层数值积分
  • ¥50 服务器打印水晶报表问题
  • ¥30 gradle环境下javafx项目如何使用druid连接池
  • ¥15 服务器打印水晶报表问题