zoukankan      html  css  js  c++  java
  • Python中如何将数据存储为json格式的文件(续)

    将上一篇中的例子,修改一下,将两个程序合二为一,如果存储了用户喜欢的水果就显示它,否则提示用户输入他喜欢的水果并将其存储到文件中。

    favorite.py

     1 import json
     2 
     3 filename = "favorite_fruit.json"
     4 
     5 def greet_user():
     6     """问候用户,并指出他喜欢的水果"""
     7     fruit = get_saved_fruit()
     8     if fruit:
     9         print("I know your favorite fruit !  It's " + fruit)
    10     else:
    11         fruit = save_user_new_fruit()
    12         print("I know your favorite fruit !  It's " + fruit)
    13 
    14 
    15     
    16 
    17 def save_user_new_fruit():
    18     """提示用户输入喜欢的水果"""
    19     fruit = input(" What is your favorite fruit ? ")
    20     with open(filename,'w') as  file_obj:
    21         json.dump(file_obj,fruit)
    22     return fruit
    23 
    24 def get_saved_fruit():
    25     """如果存储了用户喜欢的水果,就获取它"""
    26     try :
    27         with open(filename) as  file_obj:
    28             fruit = json.load(file_obj)
    29     except FileNotFoundError:
    30         return None
    31     else:
    32         return fruit
    33         
    34 greet_user()

    解释:在优化代码过后,每个函数只需要执行单一任务,这更符合程序的设计

    第一次运行程序后的控制台如下:

    如果我们是第一次运行,如下图

    会让用户先输入最喜欢的水果然后回应用户他最喜欢的水果。

    而之后的运行,则如图:

    因为程序在第一次运行之后已经将用户喜欢的水果存入了json文件。

    所以不会提示用户输入。

  • 相关阅读:
    mysql索引最左匹配的理解(转载于知乎回答)
    mysql深度优化与理解(迄今为止读到最优秀的mysql博客)
    PHP数组函数总结与使用
    进程(process)和线程(thread)
    联合索引使用规则(转载)
    mysql优化大全(转自别人 )
    HTTP隧道解决的问题
    HTTP代理协议 HTTP/1.1的CONNECT方法
    vant弹窗提示
    vue获取验证码倒计时
  • 原文地址:https://www.cnblogs.com/tizer/p/11070173.html
Copyright © 2011-2022 走看看