当前位置: 首页 > news >正文

python-28-零基础自学python-json存数据、读数据,及程序合并

学习内容:《python编程:从入门到实践》第二版

知识点:

import json引入、

try-except-else

return

def函数、打开文件、

练习内容:

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

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

我的代码&运行结果:

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

import json
def save_number():number = input("Please enter your favorite number:")filename = 'number.json'with open(filename,'w') as file_object:json.dump(number,file_object)def read_number():with open(filename,encoding='utf-8') as file_object:number = json.load(file_object)print(f"I know your favorite number!It's {number}.")filename = 'number.json'
save_number()
read_number()

 e9557cfa44b948f79ede9bf84d1eaaa7.png

注意点:

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

import json
def new_number():#不需要加filenamenumber = input("Please enter your favorite number:")filename = 'number.json'#这里忘记with open(filename,'w') as file_object:json.dump(number,file_object)return number#return也容易忘记def saved_number():filename = 'number.json'  # 这里忘记try:with open(filename, encoding='utf-8') as file_object:number = json.load(file_object)except FileNotFoundError:return None#这里也要返回,none返回else:return numberdef read_number():number = saved_number()if number:print(f"I know your favorite number!It's {number}.")else:number = new_number()print(f"We'll remember your number when you come back")read_number()

 两次运行结果如下:

1a9b02435537461f8a223328a9165308.png

400c1c7a6c584ed2b1c68d294e2622e2.png

注意点:

把两个小程序合并在一起需要提前想好每一个操作与下一个操作之间的关联,每个操作下又有哪些

主程序是读取数据

默认是读取已保存数据saved_number,

 saved_number中

        try打开文件-的一系列过程

        except(不存在的偶然情况)→return None

        else(正常执行情况)→return number

遇到一次判断

if有→print

否则→new_number→print

new_number中:询问、输入、存储、返回值用于下一步

主要就是自己得明确调用读数函数(方法总)的大框架,

方法总的步骤为:先读旧数据(方法1),有则打印,没有就要存新数据(方法2),有无是一个判断

旧数据(方法1)步骤为:读取旧数据-打开文件夹-读取数据-返回数据值

新数据(方法2)步骤为:存新数据-用读取的方式新建文件夹-存数据-返回数据值

 

 

 

http://www.lryc.cn/news/399907.html

相关文章:

  • Excel第30享:基于辅助列的条件求和
  • Java查看RSA密钥的ASN1结构
  • 友思特方案 | 低延迟GigE Vision解决方案:用于红外设备、医疗和工业级探测面板
  • 网络安全策略:优先防护而非溯源的重要性
  • ES6 Iterator 与 for...of 循环(五)
  • typora删除多余图片
  • 【ceph】ceph-mon重新选举的情况
  • PopClip(Mac 划词增强工具)值得购买吗?
  • Python | Leetcode Python题解之第227题基本计算器II
  • redis源码分析之底层数据结构(一)-动态字符串sds
  • 路由协议的优先级,以及管理距离 AD 和 metric 的区别
  • 力扣 24两两交换链表中节点
  • C# + halcon 联合编程示例
  • 【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化
  • Aop切面编程(2)--代理模式
  • Spring Boot(八十):Tesseract实现图片文字自动识别
  • QT 图片处理
  • Linux C++ 053-设计模式之模板方法模式
  • 【Python 项目】类鸟群:仿真鸟群
  • 基于信号处理的PPG信号滤波降噪方法(MATLAB)
  • 新一代信息技术及应用
  • SVN 解决冲突
  • 机器人前沿--PalmE:An Embodied Multimodal Language Model 具身多模态大(语言)模型
  • 编程语言都是哪些人开发出来的?为什么都是国外较小国家的人
  • 【前端速通系列|第二篇】Vue3前置知识
  • ES6 Module 的语法(十二)
  • Redis 主从复制,哨兵与集群
  • CV05_深度学习模块之间的缝合教学(1)
  • 【密码学】公钥密码的基本概念
  • 【前端项目笔记】10 项目优化上线