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

怎么做传奇网站图设计基础网站推荐

怎么做传奇网站图,设计基础网站推荐,海外网站建设公司,珠海移动网站定制目录 10.3.9 决定报告哪些错误 10.4 存储数据 10.4.1 使用 json.dump()和 json.load() number_writer.py number_reader.py 10.4.2 保存和读取用户生成的数据 对于用户生成的数据#xff0c;使用json保存它们大有裨益#xff0c;因为如果不以某种方式进行存储#xf… 目录 10.3.9 决定报告哪些错误 10.4 存储数据 10.4.1 使用 json.dump()和 json.load() number_writer.py number_reader.py 10.4.2 保存和读取用户生成的数据 对于用户生成的数据使用json保存它们大有裨益因为如果不以某种方式进行存储等程 序停止运行时用户的信息将丢失。下面来看一个这样的例子用户首次运行程序时被提示输入自己的名字这样再次运行程序时就记住他了。 我们先来存储用户的名字 remember_me.py greet_user.py remember_me.py 10.4.3 重构 remember_me.py 往期快速传送门在文章最后 感谢大家的支持欢迎订阅收藏专栏将持续更新 10.3.9 决定报告哪些错误 在什么情况下该向用户报告错误在什么情况下又应该在失败时一声不吭呢如果用户知 道要分析哪些文件他们可能希望在有文件没有分析时出现一条消息将其中的原因告诉他们。 如果用户只想看到结果而并不知道要分析哪些文件可能就无需在有些文件不存在时告知他们。 向用户显示他不想看到的信息可能会降低程序的可用性。Python的错误处理结构让你能够细致地 控制与用户分享错误信息的程度要分享多少信息由你决定。 编写得很好且经过详尽测试的代码不容易出现内部错误如语法或逻辑错误但只要程序依 赖于外部因素如用户输入、存在指定的文件、有网络链接就有可能出现异常。凭借经验可判 断该在程序的什么地方包含异常处理块以及出现错误时该向用户提供多少相关的信息。 10.4 存储数据 很多程序都要求用户输入某种信息如让用户存储游戏首选项或提供要可视化的数据。不管 专注的是什么程序都把用户提供的信息存储在列表和字典等数据结构中。用户关闭程序时你 几乎总是要保存他们提供的信息一种简单的方式是使用模块json来存储数据。 模块json让你能够将简单的Python数据结构转储到文件中并在程序再次运行时加载该文件 中的数据。你还可以使用json在Python程序之间分享数据。更重要的是JSON数据格式并非Python 专用的这让你能够将以JSON格式存储的数据与使用其他编程语言的人分享。这是一种轻便格 式很有用也易于学习。 注意 JSONJavaScript Object Notation格式最初是为JavaScript开发的但随后成了一种常见 格式被包括Python在内的众多语言采用。 10.4.1 使用 json.dump()和 json.load() 我们来编写一个存储一组数字的简短程序再编写一个将这些数字读取到内存中的程序。第 一个程序将使用json.dump()来存储这组数字而第二个程序将使用json.load()。 函数json.dump()接受两个实参要存储的数据以及可用于存储数据的文件对象。下面演示了如何使用json.dump()来存储数字列表 number_writer.py import json numbers [2, 3, 5, 7, 11, 13] 1 filename numbers.json 2 with open(filename, w) as f_obj: 3 json.dump(numbers, f_obj) 我们先导入模块json再创建一个数字列表。在1处我们指定了要将该数字列表存储到其 中的文件的名称。通常使用文件扩展名.json来指出文件存储的数据为JSON格式。接下来我们 以写入模式打开这个文件让json能够将数据写入其中见2。在3处我们使用函数json.dump() 将数字列表存储到文件numbers.json中。 这个程序没有输出但我们可以打开文件numbers.json看看其内容。数据的存储格式与 Python中一样 [2, 3, 5, 7, 11, 13] 下面再编写一个程序使用json.load()将这个列表读取到内存中 number_reader.py mport json 1 filename numbers.json 2 with open(filename) as f_obj: 3 numbers json.load(f_obj) print(numbers) 在1处我们确保读取的是前面写入的文件。这次我们以读取方式打开这个文件因为Python 只需读取这个文件见2。在3处我们使用函数json.load()加载存储在numbers.json中的信息 并将其存储到变量numbers中。最后我们打印恢复的数字列表看看它是否与number_writer.py 中创建的数字列表相同 [2, 3, 5, 7, 11, 13] 这是一种在程序之间共享数据的简单方式。 10.4.2 保存和读取用户生成的数据 对于用户生成的数据使用json保存它们大有裨益因为如果不以某种方式进行存储等程 序停止运行时用户的信息将丢失。下面来看一个这样的例子用户首次运行程序时被提示输入自己的名字这样再次运行程序时就记住他了。 我们先来存储用户的名字 remember_me.py import json 1 username input(What is your name? ) filename username.json with open(filename, w) as f_obj: 2 json.dump(username, f_obj) 3 print(Well remember you when you come back, username !) 在1处我们提示输入用户名并将其存储在一个变量中。接下来我们调用json.dump() 并将用户名和一个文件对象传递给它从而将用户名存储到文件中见2。然后我们打印一 条消息指出我们存储了他输入的信息见3 What is your name? Eric Well remember you when you come back, Eric! 现在再编写一个程序向其名字被存储的用户发出问候 greet_user.py import json filename username.json with open(filename) as f_obj: 1 username json.load(f_obj) 2 print(Welcome back, username !) 在1处我们使用json.load()将存储在username.json中的信息读取到变量username中。恢复 用户名后我们就可以欢迎用户回来了见2 Welcome back, Eric! 我们需要将这两个程序合并到一个程序remember_me.py中。这个程序运行时我们将尝 试从文件username.json中获取用户名因此我们首先编写一个尝试恢复用户名的try代码块。如 果这个文件不存在我们就在except代码块中提示用户输入用户名并将其存储在username.json 中以便程序再次运行时能够获取它 remember_me.py import json # 如果以前存储了用户名就加载它 # 否则就提示用户输入用户名并存储它 filename username.json try: 1 with open(filename) as f_obj: 2 username json.load(f_obj) 3 except FileNotFoundError: 4 username input(What is your name? ) 5 with open(filename, w) as f_obj:json.dump(username, f_obj)print(Well remember you when you come back, username !) else:print(Welcome back, username !) 这里没有任何新代码只是将前两个示例的代码合并到了一个程序中。在1处我们尝试打 开文件username.json。如果这个文件存在就将其中的用户名读取到内存中见2再执行else 代码块即打印一条欢迎用户回来的消息。用户首次运行这个程序时文件username.json不存在 将引发FileNotFoundError异常见3因此Python将执行except代码块提示用户输入其用户名 见4再使用json.dump()存储该用户名并打印一句问候语见5。 无论执行的是except代码块还是else代码块都将显示用户名和合适的问候语。如果这个程 序是首次运行输出将如下 What is your name? Eric Well remember you when you come back, Eric! 否则输出将如下 Welcome back, Eric! 这是程序之前至少运行了一次时的输出。 10.4.3 重构 你经常会遇到这样的情况代码能够正确地运行但可做进一步的改进——将代码划分为 一系列完成具体工作的函数。这样的过程被称为重构。重构让代码更清晰、更易于理解、更容 易扩展。 要重构remember_me.py可将其大部分逻辑放到一个或多个函数中。remember_me.py的重点 是问候用户因此我们将其所有代码都放到一个名为greet_user()的函数中 remember_me.py import json def greet_user(): 1 问候用户并指出其名字 filename username.json trywith open(filename) as f_obj:username json.load(f_obj)except FileNotFoundError:username input(What is your name? )with open(filename, w) as f_obj:json.dump(username, f_obj)print(Well remember you when you come back, username !)else:print(Welcome back, username !) greet_user() 考虑到现在使用了一个函数我们删除了注释转而使用一个文档字符串来指出程序是做什 么的见1。这个程序更清晰些但函数greet_user()所做的不仅仅是问候用户还在存储了用 户名时获取它而在没有存储用户名时提示用户输入一个。 下面来重构greet_user()让它不执行这么多任务。为此我们首先将获取存储的用户名的 代码移到另一个函数中 import json def get_stored_username(): 1 如果存储了用户名就获取它 filename username.json try:with open(filename) as f_obj:username json.load(f_obj)except FileNotFoundError: 2 return Noneelse:return username def greet_user():问候用户并指出其名字username get_stored_username() 3 if username:print(Welcome back, username !)else:username input(What is your name? )filename username.jsonwith open(filename, w) as f_obj:json.dump(username, f_obj)print(Well remember you when you come back, username !) greet_user() 新增的函数get_stored_username()目标明确1处的文档字符串指出了这一点。如果存储了 用户名这个函数就获取并返回它如果文件username.json不存在这个函数就返回None见2。 这是一种不错的做法函数要么返回预期的值要么返回None这让我们能够使用函数的返回值 做简单测试。在3处如果成功地获取了用户名就打印一条欢迎用户回来的消息否则就提示用户输入用户名。 我们还需将greet_user()中的另一个代码块提取出来将没有存储用户名时提示用户输入的 代码放在一个独立的函数中 import json def get_stored_username():如果存储了用户名就获取它--snip-- def get_new_username():提示用户输入用户名username input(What is your name? )filename username.jsonwith open(filename, w) as f_obj:json.dump(username, f_obj)return username def greet_user():问候用户并指出其名字username get_stored_username()if username:print(Welcome back, username !)else:username get_new_username()print(Well remember you when you come back, username !) greet_user() 在remember_me.py的这个最终版本中每个函数都执行单一而清晰的任务。我们调用 greet_user()它打印一条合适的消息要么欢迎老用户回来要么问候新用户。为此它首先 调用get_stored_username()这个函数只负责获取存储的用户名如果存储了的话再在必要 时调用get_new_username()这个函数只负责获取并存储新用户的用户名。要编写出清晰而易于 维护和扩展的代码这种划分工作必不可少。 关于“Python”的核心知识点整理大全25-CSDN博客 关于“Python”的核心知识点整理大全12-CSDN博客 往期快速传送门在文章最后 感谢大家的支持欢迎订阅收藏专栏将持续更新
http://www.dnsts.com.cn/news/121351.html

相关文章:

  • 如何制作自己的网站书签page如何转换为wordpress
  • 网站建设 电商网站建设国内外研究现状
  • 邢台专业网站建设推荐移动云服务器租用
  • 网站建设模块是什么怎么做微信公众号文章
  • 龙游网站建设的公司wordpress 最新文章展示
  • 网站建设公司哪里好网站设计公司北京
  • 技术支持 东莞网站建设页面设计说明怎么写
  • 三明网站建设tudouly河北省建设机械会网站
  • 推荐10个优秀的国外ui设计网站免费做长图网站
  • 网站建设项目实施计划书wordpress 用户中心主题
  • 公司网站开发建设深圳网站营销公司简介
  • 国内装饰行业网站开发欧洲十大服务器的推荐
  • 潍坊做网站软件免费的素材网站
  • 个人建设网站程序自己建网站流程要学什么
  • 怎么选择网站模板东营市建设监理协会网站
  • 做外贸要建什么网站苏州工业园区建设网站
  • 06年可以做相册视频的网站wordpress中文转英文版
  • wordpress 站长工具付费ppt模板网站哪个好
  • 太原网站建设哪家好wordpress访问量大
  • 连锁店管理网站开发wordpress图片用阿里云储存
  • 想在网上做开发网站接活儿世界著名办公室设计
  • 自己怎么做 优惠券网站做一个自己的网站流程
  • dw 做网站模板建设银行手机版官方网站下载
  • 网站如何做搜索引擎优化外网访问不了内网建设的网站
  • 北京国互网网站建设报价PHP网站开发都需要学什么
  • 购物网站免费模板郴州优化公司
  • 软件网站开发团队名称wordpress控制面板都没
  • 建设旅游业网站目的做网站有限公司
  • 韩国网站免费观看西地那非能提高硬度吗
  • 长葛做网站嘉兴制作网站机构