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

python10.4.3

10.4.3重构
错误实例

import jsondef laoyonghu():      #获取老用户名字filename='username.json'with open(filename) as f:username=json.load(f)return usernamedef xinyonghu():   #获取新用户名字filename='username.json'username=input("what's your name:")with open(filename,'w') as f:json.dump(username,f)return usernamedef dazhaohu(): #给新或老用户打招呼username=laoyonghu()if username:       #如果有老用户(为真)print(f"welcome {username}.")else:username=xinyonghu()print(f"we'll remember you when you come back, {username}.")dazhaohu()

以上代码的运行顺序,是运行打招呼函数时,先调用老用户函数,再调用新用户函数。如果调用老用户函数时,filename.json文件不存在,则会导致FileNotFoundError程序出错,无法进入else新用户print部分。

为避免出现这种情况,需要在获取老用户的函数中,使用try-except代码块,防止因文件不存在导致错误,表达为except FileNotFoundError后return None,else之后return username。否则运行打招呼函数时,会因为老用户函数中的filename不存在而直接导致FileNotFoundError,

修改后:

import jsondef laoyonghu():filename='username.json'try:with open(filename) as f:username=json.load(f)except FileNotFoundError:return Noneelse:return usernamedef xinyonghu():filename='username.json'username=input("what's your name:")with open(filename,'w') as f:json.dump(username,f)return usernamedef dazhaohu():username=laoyonghu()if username:print(f"welcome {username}.")else:username=xinyonghu()print(f"we'll remember you when you come back, {username}.")dazhaohu()

相关文章:

python10.4.3

10.4.3重构 错误实例 import jsondef laoyonghu(): #获取老用户名字filenameusername.jsonwith open(filename) as f:usernamejson.load(f)return usernamedef xinyonghu(): #获取新用户名字filenameusername.jsonusernameinput("whats your name:")with ope…...

系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

Vue中,$forceUpdate()的使用

在Vue官方文档中指出,$forceUpdate具有强制刷新的作用。 那在vue框架中,如果data中有一个变量:age,修改他,页面会自动更新。 但如果data中的变量为数组或对象,我们直接去给某个对象或数组添加属性,页面是识…...

K8s中的Ingress

1.把端口号对外暴露,通过ip端口号进行访问 使用Service里面的NodePort实现 2.NodePort缺陷 在每个节点上都会起到端口,在访问时候通过任何节点,通过节点ip暴露端口号实现访问 意味着每个端口只能使用一次,一个端口对应一个应用…...

c++调用ffmpeg api录屏 并进行udp组播推流

代码及工程见https://download.csdn.net/download/daqinzl/88155241 开发工具&#xff1a;visual studio 2019 播放&#xff0c;采用ffmpeg工具集里的ffplay.exe, 执行命令 ffplay udp://224.1.1.1:5001 主要代码如下: #include "pch.h" #include <iostream>…...

war包方式安装linux和windows的geoserver

注意&#xff1a; 从Java 9开始&#xff0c;Oracle已经不再单独提供JRE&#xff08;Java Runtime Environment&#xff09;了&#xff0c;而是直接将JRE集成在JDK&#xff08;Java Development Kit&#xff09;中。这是因为JRE包含了运行Java程序所需的环境&#xff0c;而JDK除…...

安装CUDA与CUDNN与Pytorch(最新超级详细图文版本2023年8月最新)

一、安装CUDA 1.1、下载安装包 cuda可以认为就是Nvidia为了显卡炼丹搞的一个软件&#xff0c;其下载地址为&#xff1a;CUDA Toolkit 12.2 Update 1 Downloads | NVIDIA Developer 当你点进这个链接的时候&#xff0c;你需要依次选择 1是选择系统&#xff0c;这里选windows…...

内存快照:宕机后,Redis如何实现快速恢复?RDB

AOF的回顾 回顾Redis 的AOF的持久化机制。 Redis 避免数据丢失的 AOF 方法。这个方法的好处&#xff0c;是每次执行只需要记录操作命令&#xff0c;需要持久化的数据量不大。一般而言&#xff0c;只要你采用的不是 always 的持久化策略&#xff0c;就不会对性能造成太大影响。 …...

Linux之 Ubuntu 安装常见服务 (二) Tomcat

安装TomCat 服务 1、安装JDK环境 https://www.oracle.com/java/technologies/downloads/ 下载的官网 wget https://download.oracle.com/java/20/latest/jdk-20_linux-x64_bin.deb (sha256) 使用dpkg进行软件安装时&#xff0c;提示&#xff1a;dpkg&#xff1a;处理软件包XX…...

docker 配置 Mysql主从集群

Docker version 20.10.17, build 100c701 MySQL Image version: 8.0.32 Docker container mysql-master is source. mys ql-replica is replication. master source. replica slave.名称叫法不一样而已。 Choose one of the way&#xff0c;与replica同步数据两种情况&…...

Layui实现OA会议系统之会议管理模块总合

目录 一、项目背景 二、项目概述 1. 概述 2. 环境搭建 3. 工具类引用 4. 功能设计 4.1 会议发布 4.2 我的会议 4.3 会议审批 4.4 会议通知 4.5 待开会议 4.6 历史会议 4.7 所有会议 5. 性能优点 5.1 兼容性好 5.2 可维护性和可扩展性 5.3 轻量灵活 5.4 模块化设计…...

fishing之踩坑篇捕获数据不齐全

文章目录 一、问题记录二、解决方法三、更新钓鱼模板四、进行点击邮件五、查看仪表盘免责声明 一、问题记录 通过点击邮件内的链接&#xff0c;提交数据&#xff0c;但是只记录密码&#xff0c;无法记录username 二、解决方法 对于需要被捕获的表单数据&#xff0c;除了inp…...

ppt使用笔记

文章目录 如何让文档好看纯文字绝对不可行多用流程图和效果图切换动画母版音乐视频 作品渐变星空放大镜随机抽奖 其他快捷键 作为一个开发&#xff0c;对这种表现类型的软件一直不太上心&#xff0c;但有些场景要用到ppt&#xff0c;例如述职和项目案例分享。 很直观的体验就是…...

java中的hashmap和concurrenthashmap解析

hashmap的初始化数组大小为16&#xff0c;如果发生哈希冲突的时候在当前的索引后面采用头插法以链表的形式继续插入节点。 concurrenthashmap的结构图如下所示&#xff1a; 本身不是16个节点吗&#xff1f;这里分为两个长度为4的数组&#xff0c;变成了4*4总共16个节点&#x…...

元素2D转3D 椭圆形旋转实现

椭圆旋转功能展示 transform-style: preserve-3d;&#xff08;主要css代码&#xff09; gif示例&#xff08;背景图可插入透明以此实现边框线的旋转&#xff09; 导致的无法点击遮挡问题可以参考我的另一个文章 穿透属性-----------------------css穿透属性 实时代码展示...

Centos7.9 制作openssh9.2p2 rpm升级包和升级实战

一、背景说明 Centos7.9 默认安装的openssh 版本为7.4p1&#xff0c;经绿盟扫描&#xff0c;存在高危漏洞&#xff0c;需要升级到最新。 官网只提供编译安装包&#xff0c;为了方便升级&#xff0c;先通过编译安装包&#xff0c;制作rpm包&#xff0c;并进行升级 如下为做好…...

JavaScript学习(3)

Web API 是开发人员的梦想。 它可以扩展浏览器的功能它可以极大简化复杂的功能它可以为复杂的代码提供简单的语法 什么是 Web API&#xff1f; API 指的是应用程序编程接口&#xff08;Application Programming Interface&#xff09;。 Web API 是 Web 的应用程序编程接口…...

2023华为OD机试真题Java实现【寻找最大价值的矿堆/深度优先搜索】

前言 本题使用Java实现,如果需要Python代码,请点击以下链接 点我 题目 我们规定,0表示空地,1表示银矿、2表示金矿,矿堆表示由相邻的金矿或银矿连接形成的地图。 银矿价值是1 ,金矿价值是2 ,你的目标是找出地图中最大价值的矿堆,并且输出该矿堆的价值 示例1 输入:…...

MyCat概述

1.MyCat概述 MyCat是阿里巴巴的产品&#xff0c;他是开源的、基于Java语言编写的MySQL数据库中间件。可以像使用mysql一样来使用mycat&#xff0c;对于开发人员来说根本感觉不到mycat的存在。 MyCat下载地址&#xff1a;http://dl.mycat.org.cn/ MyCat官网&#xff1a;http:/…...

【LeetCode】【数据结构】单链表OJ常见题型(一)

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负。 目录 前言&#xff1a; 【LeetCode】203.移除链表元素 【LeetCo…...

Simple Runtime Window Editor:突破游戏窗口限制的终极解决方案

Simple Runtime Window Editor&#xff1a;突破游戏窗口限制的终极解决方案 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾为游戏内置分辨率选项太少而烦恼&#xff1f;是否想在窗口模式下获得全屏游戏…...

无线渗透测试框架Airecon:自动化工具链整合与实战应用

1. 项目概述与核心价值最近在整理自己的渗透测试工具箱时&#xff0c;又翻出了pikpikcu/airecon这个老伙计。说实话&#xff0c;在无线安全评估这个细分领域里&#xff0c;它可能不是名气最响的那个&#xff0c;但绝对是我个人在内部网络渗透和红队演练中最顺手、最高效的“组合…...

如何快速掌握阴阳师自动化脚本:OAS解放双手的完整教程

如何快速掌握阴阳师自动化脚本&#xff1a;OAS解放双手的完整教程 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 阴阳师自动化脚本&#xff08;Onmyoji Auto Script&#xff0c…...

三维重建实时映射技术在智慧水利中的核心应用

三维重建实时映射技术在智慧水利中的核心应用在国家大力推进数字孪生水利建设、实现水安全精准保障的背景下&#xff0c;智慧水利已从传统监测、调度向全域感知、智能预判、协同处置、一屏统管升级。智慧水利的核心目标&#xff0c;是实现对江河湖库、灌区、泵站、堤坝、闸站等…...

NeoPixel光剑制作全攻略:从WS2812B原理到实战装配

1. 项目概述&#xff1a;从零件到光剑的旅程如果你和我一样&#xff0c;是个对《星球大战》里的光剑毫无抵抗力&#xff0c;同时又喜欢动手折腾电子玩意儿的人&#xff0c;那么用NeoPixel灯带自制一把会发光、能变色的光剑&#xff0c;绝对是件充满成就感的事。这不仅仅是把灯塞…...

Tea印相失效诊断清单:从--v 6.2到--v 6.6,6个版本兼容性断点及降级回滚方案(含JSON config快照备份包)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Tea印相失效诊断清单&#xff1a;从--v 6.2到--v 6.6&#xff0c;6个版本兼容性断点及降级回滚方案&#xff08;含JSON config快照备份包&#xff09; Tea印相&#xff08;TeaYinXiang&#xff09;在 v…...

Linux内存使用分析与泄漏排查

Linux内存使用分析与泄漏排查内存问题往往不像磁盘满那样直观&#xff0c;也不像进程崩溃那样立刻可见。很多服务在内存异常初期仍然可以运行&#xff0c;只是响应逐渐变慢、交换开始活跃、最终被系统回收或触发 OOM。中级 Linux 工程师需要掌握的&#xff0c;不只是看“还剩多…...

EmoLLM:大语言模型的情感增强训练与部署实践

1. 项目概述&#xff1a;当大语言模型学会“察言观色”最近在折腾一个挺有意思的开源项目&#xff0c;叫SmartFlowAI/EmoLLM。光看名字你大概能猜到&#xff0c;这玩意儿跟“情绪”和“大语言模型”有关。没错&#xff0c;它的核心目标就是让冷冰冰的LLM&#xff08;Large Lang…...

ESP32边缘AI部署实战:从模型量化到嵌入式推理全流程解析

1. 项目概述&#xff1a;当ESP32遇见AI&#xff0c;边缘智能的微型革命最近在捣鼓一个挺有意思的开源项目&#xff0c;叫wangzongming/esp-ai。光看名字&#xff0c;你可能觉得这又是一个把AI模型塞进微控制器的尝试&#xff0c;但实际深入后&#xff0c;我发现它的野心和实现方…...

终极指南:如何用wxhelper实现PC微信自动化与消息管理

终极指南&#xff1a;如何用wxhelper实现PC微信自动化与消息管理 【免费下载链接】wxhelper Hook WeChat / 微信逆向 项目地址: https://gitcode.com/gh_mirrors/wx/wxhelper wxhelper是一款强大的PC端微信逆向工程工具&#xff0c;通过DLL注入技术为开发者提供完整的微…...