python从入门到实践第三版练习题10-14

from pathlib import Path
import json



def get_stored_username(path):
    '''如果储存了用户名,就获取他'''
    if path.exists():
        contents = path.read_text()
        user = json.loads(contents)
        return user
    else:
        return None
    
def get_new_username(path, user):
    '''提供名字'''
    username = input("what is your name?")

    user['name']=username
    contents = json.dumps(user)
    path.write_text(contents)    
    return user


def get_new_shengri(path, user):
    '''提供生日'''
    shengri = input("what is your shengri?")
    user['shengri']=shengri
    contents = json.dumps(user)
    path.write_text(contents)    
    return user



def get_new_didian(path, user):
    '''提供地点'''
    didian = input("what is your didian?")
    user['didian'] = didian
    contents = json.dumps(user)
    path.write_text(contents)    
    return user


    

def greeet_user():
    """主程序,问候用户"""
    path = Path('username2.json')
    user = get_stored_username(path) 
    if user:
        
        answer=input(f"{user['name']}是您吗,请回答y/n")
        if answer=='y':
    
            print(f"你好啊,{user['name']}") 
            print(f"你的生日是{user['shengri']}")
            print(f"你的地点在{user['didian']}")
        else:
            user={}
            user = get_new_username(path,user)
            user = get_new_shengri(path,user)
            user = get_new_didian(path,user)
            print(f"你回来时,我还记得你,{user['name']}")
            
    else:
        user={}
        user = get_new_username(path,user)
        user = get_new_shengri(path,user)
        user = get_new_didian(path,user)
        print(f"你回来时,我还记得你,{user['name']}")

greeet_user()    

感觉就像在打boss,找了半天终于找到了boss的破绽

contents = json.dumps(user)写成了 contents = json.dumps(username)

导致了昨天找了2个小时

今天找了一个半小时,才终于找出了新建文件被程序运行覆盖的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值