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()

注意点:
练习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()
两次运行结果如下:


注意点:
把两个小程序合并在一起需要提前想好每一个操作与下一个操作之间的关联,每个操作下又有哪些
主程序是读取数据
默认是读取已保存数据saved_number,
saved_number中
try打开文件-的一系列过程
except(不存在的偶然情况)→return None
else(正常执行情况)→return number
遇到一次判断
if有→print
否则→new_number→print
new_number中:询问、输入、存储、返回值用于下一步
主要就是自己得明确调用读数函数(方法总)的大框架,
方法总的步骤为:先读旧数据(方法1),有则打印,没有就要存新数据(方法2),有无是一个判断
旧数据(方法1)步骤为:读取旧数据-打开文件夹-读取数据-返回数据值
新数据(方法2)步骤为:存新数据-用读取的方式新建文件夹-存数据-返回数据值
相关文章:
python-28-零基础自学python-json存数据、读数据,及程序合并
学习内容:《python编程:从入门到实践》第二版 知识点: import json引入、 try-except-else return def函数、打开文件、 练习内容: 练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数ÿ…...
Excel第30享:基于辅助列的条件求和
1、需求描述 如下图所示,现要统计2022年YTD(Year To Date:年初至今日)各个人员的“上班工时(a2)”。 下图为系统直接导出的工时数据明细样例。 2、解决思路 Step1:确定逻辑。“从日期中提取出…...
Java查看RSA密钥的ASN1结构
背景:服务端使用Java开发的,接口需要客户端传一个RSA公钥,手机端使用Flutter开发的,然后就选择使用 pointycastle 生成密钥,很不巧,dart版本不像Java一样有个可以直接获取编码过的公钥信息的方法࿱…...
友思特方案 | 低延迟GigE Vision解决方案:用于红外设备、医疗和工业级探测面板
导读 维持实时视频系统软硬件的长期成本效益,是该系统在医疗、工业等领域广泛应用的前提。友思特低延迟GigE Vision解决方案创新性地突破了这一难题,提供高带宽且高可靠性的端到端网络链接,有效降低了开发成本、复杂性和时间。 引言 虽然实…...
网络安全策略:优先防护而非溯源的重要性
面对网络攻击,企业往往面临一个关键决策点:是立即投入资源进行攻击溯源,还是优先加强自身的防御体系。尽管溯源分析有助于了解攻击者的手段和动机,但在大多数情况下,优先强化防护是更为明智的选择。本文将探讨为何在遭…...
ES6 Iterator 与 for...of 循环(五)
Iterator 特性: 统一的接口:无论是数组、字符串还是自定义对象,只要它们有默认的迭代器,就可以使用 for…of 循环进行遍历。可迭代对象:具有 [Symbol.iterator] 属性的对象被认为是可迭代的。[Symbol.iterator] 是一个…...
typora删除多余图片
import os import re import shutil from bs4 import BeautifulSoupimport warningswarnings.filterwarnings(ignore) # 定义正则表达式用于匹配.md文件中的图片引用语句 pattern re.compile(r!\[.*]\((.*)\))# 获取所有.md文件中的图片引用路径 references set() md_filepat…...
【ceph】ceph-mon重新选举的情况
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
PopClip(Mac 划词增强工具)值得购买吗?
PopClip 是一款 Mac 划词操作增强工具,可选装翻译搜索、格式转换等丰富扩展,联动多种软件执行创建提醒事项、添加到笔记等快捷操作,有效提升工作效率。 在 iPhone 或 iPad 内,选词后就会弹出气泡菜单,让你选择执行各种…...
Python | Leetcode Python题解之第227题基本计算器II
题目: 题解: class Solution:def calculate(self, s: str) -> int:n len(s)stack []preSign num 0for i in range(n):if s[i] ! and s[i].isdigit():num num * 10 ord(s[i]) - ord(0)if i n - 1 or s[i] in -*/:if preSign :stack.append(…...
redis源码分析之底层数据结构(一)-动态字符串sds
1.绪论 我们知道redis是由c语言实现的,c语言中是自带字符串的,但是为什么redis还要再实现自己的动态字符串呢,这种动态字符串的底层数据结构是怎样的呢?接下来我们带着这些问题来看一看redis中的动态字符串sds。 2.sds的组成 struct __at…...
路由协议的优先级,以及管理距离 AD 和 metric 的区别
路由协议的优先级(Preference,即管理距离 Administrative Distance )一般为一个 0 到 255 之间的数字,数字越大则优先级越低。表一是通常情况下各路由协议的优先级规定: 表一:一般路由协议优先级 路由协议…...
力扣 24两两交换链表中节点
画图 注意有虚拟头结点 注意判断时先判断cur->next ! nullptr,再判断cur->next->next ! nullptr 注意末尾返回dumyhead->next,用新建result指针来接并返回 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode *dummyhead new …...
C# + halcon 联合编程示例
C# halcon 联合编程示例 实现功能 1.加载图像 2.画直线,画圆,画矩形, 画椭圆 ROI,可以调整大小和位置 3.实现找边,找圆功能 效果 开发环境 Visual Studio 2022 .NET Framework 4.8 halcondotnet.dll 查看帮助文档 项目结构 DL…...
【Git基本操作】添加文件 | 修改文件 | 及其各场景下.git目录树的变化
目录 1. 添加文件&add操作和commit操作 2. .git树状目录的变化 3. git其他操作 4. 修改文件 4.1 git status 4.2 git diff 1. 添加文件&add操作和commit操作 add操作:将工作区中所有文件的修改内容 添加进版本库的暂存区中。commit操作:…...
Aop切面编程(2)--代理模式
1、代理模式的理解:不修改A对象的代码的基础上,对A代码块进行拓展。通过创建ProxyA代理对象,拓展A对象并调用A对象的核心功能; 即:不修改对象的源码基础上,创建代理对象,进行功能的附加和增强&…...
Spring Boot(八十):Tesseract实现图片文字自动识别
1Tesseract 要实现图片转文字(OCR,Optical Character Recognition)功能,可以使用一些现有的OCR库,比如Google的Tesseract或者百度AI、阿里云OCR等云服务。 下面以Tesseract为例: Tesseract是一个开源文本识别 (OCR)引擎,是目前公认最优秀、最精确的开源OCR系统,用于…...
QT 图片处理
1.qt 图片控件 在Qt中,用于显示图片的控件主要是QLabel。以下是关于Qt图片控件的详细介绍: QLabel控件: QLabel是Qt中用于显示文本或图片的控件。在显示图片时,QLabel通过setPixmap()函数来设置要显示的图片。QPixmap代表Qt中的…...
Linux C++ 053-设计模式之模板方法模式
Linux C 053-设计模式之模板方法模式 本节关键字:Linux、C、设计模式、模板方法模式 相关库函数: 概念 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新…...
【Python 项目】类鸟群:仿真鸟群
类鸟群:仿真鸟群 仔细观察一群鸟或一群鱼,你会发现,虽然群体由个体生物组成,但该群体作为一个整体似乎有它自己的生命。鸟群中的鸟在移动、飞越和绕过障碍物时,彼此之间相互定位。受到打扰或惊吓时会破坏编队…...
Frida安卓逆向实战:SELinux适配与Hook可靠性保障
1. 这不是“装个 Frida 就能 Hook”的幻觉,而是安卓逆向真实的第一道门槛很多人点开“Frida 教程”时,心里想的是:“装个 frida-server,跑个 js 脚本,改个登录态,不就完事了?”——我试过三次&a…...
别再让WSL2吃光你的C盘!手把手教你迁移到D盘并优化内存配置(Windows10/11通用)
WSL2系统迁移与性能调优全指南:释放C盘空间与提升运行效率 每次打开资源管理器看到C盘剩余空间不足10%的红色警告,作为开发者的你是否感到一阵窒息?WSL2虽然为Windows带来了原生的Linux体验,但默认安装配置却可能成为系统资源的&q…...
Windows 11系统下,Fiddler代理端口不是8888?这份Mumu模拟器网络调试避坑指南请收好
Windows 11系统下Fiddler与Mumu模拟器网络调试实战指南在移动应用开发和测试过程中,网络调试工具与模拟器的配合使用是必不可少的环节。许多开发者习惯性地认为Fiddler的默认代理端口就是8888,但在实际配置中,这个假设往往会导致一系列难以排…...
昇腾CANN cmake:CANN 项目的 CMake 构建模块实战
从 ops-nn 到 cann-recipes-*,几乎所有 CANN 开源仓库都用 CMake 做构建系统。cann-cmake 仓库提供一套标准的 CMake 模块——FindCANN.cmake(找到 CANN 安装路径)、AscendCCore.cmake(Ascend C 编译规则)、AscendKern…...
有哪些真正好用的降AIGC软件?能同时符合论文规范和压低AIGC数值的那种
毕业季、投稿季最让人焦虑的,莫过于论文查重率高企、AIGC痕迹明显。反复修改、反复检测不仅耗时费力,还容易越改越混乱。2026年高校与期刊双重审核已成定局,用对工具才能事半功倍。真正好用的降AIGC软件,不仅能降低AI痕迹…...
计算机网络基础:TCP/IP 与 HTTP 核心知识
摘要:计算机网络是后台开发和 AI 基础设施面试的重要考点。本文从 OSI 七层模型出发,重点讲解 TCP 三次握手/四次挥手、HTTP/HTTPS 协议、以及 WebSocket 和 RESTful API 设计,并结合 Python 代码展示 Socket 编程和简单的 HTTP 服务器实现。…...
Kubernetes StatefulSet深度解析:管理有状态应用的最佳实践
Kubernetes StatefulSet深度解析:管理有状态应用的最佳实践 一、StatefulSet概述 StatefulSet 是Kubernetes中用于管理有状态应用的控制器。它为Pod提供稳定的网络标识和持久化存储,确保Pod的有序部署、扩展和更新。 1.1 StatefulSet vs Deployment …...
GPT-4稀疏激活原理:2%参数如何实现高效推理
1. 这不是参数堆砌,而是“动态稀疏激活”的工程革命你可能已经看到过那条刷屏的推文:“GPT-4有1.8万亿参数,但每生成一个token只用其中2%。”——这句话像一道闪电劈开了大模型圈的认知惯性。它背后没有玄学,没有营销话术…...
RMSNorm:LLM 里的归一化为什么换成了这个
本文基于昇腾CANN和昇腾NPU,围绕 ops-transformer 仓库的相关技术展开。 LayerNorm 在大模型里被 RMSNorm 替换了。LayerNorm 做了减均值再除方差,RMSNorm 只除均方根——去掉了减均值那一步。少一次 Reduce 操作,在量产推理里省掉 15-20% 的…...
STM32H743音频实战:用CubeMX和I2S驱动WM8978,从寄存器配置到代码移植避坑
STM32H743音频实战:CubeMX与I2S驱动WM8978的深度避坑指南 第一次在STM32H743上调试WM8978音频编解码器时,我盯着示波器上杂乱无章的I2S信号波形发呆了半小时。耳机里偶尔传来的爆裂声仿佛在嘲笑我的无知——这场景想必很多嵌入式音频开发者都不陌生。本文…...
