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文件。

    所以不会提示用户输入。

  • 相关阅读:
    《Eclipse中的一些快捷键》
    《Java中的抽象类及抽象类的作用》
    《Java中的不可变类》
    《final修饰基本类型变量和引用类型变量的区别》
    《类成员案例》
    《Java中的单例模式--两种》
    《Java中的自动装箱和拆箱功能.》
    Chrome 经典插件
    Sublimeの虚拟环境(Venv)设置
    HTTP下午茶
  • 原文地址:https://www.cnblogs.com/tizer/p/11070173.html
Copyright © 2011-2022 走看看