zoukankan      html  css  js  c++  java
  • Python学习笔记之json.dump和json.load

    10-11 喜欢的数字:编写一个程序,提示用户输入他喜欢的数字,并使用json.dump()将这个数字存储到文件中。再编写一个程序,从文件中读取这个值,并打印消息“I know your favorite number! It’s _____.”。

    favorite_number.py

     1 import json
     2 
     3 def favorite_number():
     4     """提示用户输入喜欢的数字"""
     5     filename = 'favorite_number.json'
     6     number = input("请输入你喜欢的数字:")
     7     with open(filename, 'w') as f_obj:
     8         json.dump(number, f_obj)
     9 
    10 favorite_number()
    get_favorite_number.py
     1 import json
     2 
     3 def get_favorite_number():
     4     """获取文件内容"""
     5     filename = 'favorite_number.json'
     6     with open(filename) as f_obj:
     7         get_number = json.load(f_obj)
     8 
     9     print("I know your favorite number! It’s " + str(get_number) + ".")
    10 
    11 get_favorite_number()

    10-12 记住喜欢的数字:将练习10-11 中的两个程序合而为一。如果存储了用户喜欢的数字,就向用户显示它,否则提示用户输入他喜欢的数字并将其存储到文件中。运行这个程序两次,看看它是否像预期的那样工作。

     1 import json
     2 
     3 def get_stored_number():
     4     filename = 'favorite_number.json'
     5     try:
     6         with open(filename) as f_obj:
     7             number = json.load(f_obj)
     8     except FileNotFoundError:
     9         return None
    10     else:
    11         return number
    12 
    13 def favorite_number():
    14     """提示用户输入喜欢的数字"""
    15     filename = 'favorite_number.json'
    16     number = input("请输入你喜欢的数字:")
    17     with open(filename, 'w') as f_obj:
    18         json.dump(number, f_obj)
    19     return number
    20 
    21 
    22 def get_favorite_number():
    23     """获取文件内容"""
    24     # filename = 'favorite_number.json'
    25     # with open(filename) as f_obj:
    26     #     get_number = json.load(f_obj)
    27     number = get_stored_number()
    28     if number:
    29         print("I know your favorite number! It’s " + str(number) + ".")
    30     else:
    31         number = favorite_number()
    32         print("I know your favorite number! It’s " + str(number) + ".")
    33 
    34 get_favorite_number()

    10-13 验证用户:最后一个remember_me.py 版本假设用户要么已输入其用户名,要么是首次运行该程序。我们应修改这个程序,以应对这样的情形:当前和最后一次运行该程序的用户并非同一个人。

    为此,在greet_user()中打印欢迎用户回来的消息前,先询问他用户名是否是对的。如果不对,就调用get_new_username()让用户输入正确的用户名。

    原remember_me.py代码

     1 import json
     2 
     3 def get_stored_username():
     4     """如果存储了用户名,就获取它"""
     5     filename = 'username.json'
     6     try:
     7         with open(filename) as f_obj:
     8             username = json.load(f_obj)
     9     except FileNotFoundError:
    10         return None
    11     else:
    12         return username
    13 
    14 def get_new_username():
    15     """提示用户输入用户名"""
    16     username = input("What is your name? ")
    17     filename = 'username.json'
    18     with open(filename, 'w') as f_obj:
    19         json.dump(username, f_obj)
    20     return username
    21 
    22 def greet_user():
    23     """问候用户,并指出其名字"""
    24     username = get_stored_username()
    25     if username:
    26         print("Welcome come back, " + username + "!")
    27     else:
    28         username = get_new_username()
    29         print("We will remember you when you come back, " + username + "!")
    30 
    31 greet_user()

    修改之后remember_me.py代码

     1 import json
     2 
     3 def get_stored_username():
     4     """如果存储了用户名,就获取它"""
     5     filename = 'username.json'
     6     try:
     7         with open(filename) as f_obj:
     8             username = json.load(f_obj)
     9     except FileNotFoundError:
    10         return None
    11     else:
    12         return username
    13 
    14 def get_new_username():
    15     """提示用户输入用户名"""
    16     username = input("What is your name? ")
    17     filename = 'username.json'
    18     with open(filename, 'w') as f_obj:
    19         json.dump(username, f_obj)
    20     return username
    21 
    22 def greet_user():
    23     """问候用户,并指出其名字"""
    24     username = get_stored_username()
    25     if username:
    26         msg = "Are you " + username + "? (y/n) "
    27         correct = input(msg)
    28         if correct == 'y':
    29             print("Welcome come back, " + username + "!")
    30         else:
    31             username = get_new_username()
    32             print("We will remember you when you come back, " + username + "!")
    33 
    34     else:
    35         username = get_new_username()
    36         print("We will remember you when you come back, " + username + "!")
    37 
    38 greet_user()
  • 相关阅读:
    JWT认证-插件准备
    drf 框架 三大组件
    drf框架 视图、工具视图、视图集
    drf框架 ModelSerializer
    CentOS6.5 上crontab每天自动备份mysql数据库
    php-GatewayWorker搭建实时聊天室
    Centos6.8实现SVN提交后自动更新目录
    Python在线聊天软件(Tkinter)
    Navicat for MySQL连接mysql数据库时提示错误:Can't connect to MySQL server (10060)
    Ubuntu16下apache2安装ssl阿里云证书
  • 原文地址:https://www.cnblogs.com/rainights/p/11771558.html
Copyright © 2011-2022 走看看