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

    所以不会提示用户输入。

  • 相关阅读:
    bzoj 1497: [NOI2006]最大获利
    bzoj 2733: [HNOI2012]永无乡
    [CF911G]Mass Change Queries
    [CF911F]Tree Destruction
    [CF911E]Stack Sorting
    [CF911D]Inversion Counting
    [CF911C]Three Garlands
    [CF911B]Two Cakes
    [CF911A]Nearest Minimums
    [POJ1201]Intervals
  • 原文地址:https://www.cnblogs.com/tizer/p/11070173.html
Copyright © 2011-2022 走看看