当前位置: 首页 > 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)步骤为:存新数据-用读取的方式新建文件夹-存数据-返回数据值

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • acnconda虚拟环境管理笔记
  • 大话设计模式
  • 如何用 Java 实现一个简单的单例模式,怎么处理线程安全问题?
  • Git使用介绍教程
  • 进销存管理系统设计
  • pico+unity3d项目配置
  • apache:the requested operation has failed使用httpd -t
  • Linux:Linux网络总结(附下载链接)
  • 如何避免在 Docker 容器中遇到 MAC 地址冲突和 IP 地址冲突的问题
  • ThreeJS-3D教学十五:ShaderMaterial(noise、random)
  • LabVIEW液压数据采集测试系统
  • Goland 通道
  • 读人工智能全传12人工智能导致的问题1
  • 后端老鸟的前端初探:心得与领悟20240713
  • 中介者模式(大话设计模式)C/C++版本
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • DataBase in Android
  • ECMAScript6(0):ES6简明参考手册
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • SpringCloud集成分布式事务LCN (一)
  • TypeScript迭代器
  • 前端存储 - localStorage
  • 前端技术周刊 2019-02-11 Serverless
  • 让你的分享飞起来——极光推出社会化分享组件
  • 使用 QuickBI 搭建酷炫可视化分析
  • 突破自己的技术思维
  • 一文看透浏览器架构
  • 用element的upload组件实现多图片上传和压缩
  • 用Python写一份独特的元宵节祝福
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​Spring Boot 分片上传文件
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Redis 入门到精通(一)数据类型(4)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (2)nginx 安装、启停
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (剑指Offer)面试题34:丑数
  • (一)appium-desktop定位元素原理
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转)项目管理杂谈-我所期望的新人
  • ... 是什么 ?... 有什么用处?
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .gitignore
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET C# 操作Neo4j图数据库
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)