在 Python 中拒绝负数作为异常

2023-11-27

我正在尝试运行一个接受数字的基本提示,然后对其运行递归函数。

任何负数都会导致递归错误,因为函数无法处理它们。

现在,我通过 Python 了解到,像这样的情况需要 “尝试/例外”模型。这是我想出的:

try: 
  choice = int(input('Enter a number: '))
  INSERT RECURSIVE FUNCTION HERE
except RecursionError as err:
  print('Error: ', str(err))

此异常不起作用,因为它仍然以红线显示整个递归过程,而我的异常仅替换最后一行。我知道我可以通过逻辑轻松解决这个问题,例如:

if choice < 0:
  print("Error: Bro, We don't take no Negative Numbers around here.")

然而,我被告知我们通常希望避免在 Python 中“通过逻辑解决错误”,而是通过“try/ except”模型进行工作。

我可以做什么来通过“尝试/例外”模型而不是“如果/否则”拒绝负数?

如果你能帮助我理解一种对 ValueError 做出反应的方法,那将是另一个很大的帮助。


假设您只想打印正数,如果该数字为负数,则会引发异常

a = int(raw_input())
if a < 0:
    myError = ValueError('a should be a positive number')
    raise myError
print(a)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中拒绝负数作为异常 的相关文章

随机推荐

  • UI Router Extras 破坏了我的单元测试并出现意外结果错误?

    问题 安装 ui router extras 不是普通的 ui router 时 为什么我的测试失败 我该如何使用ui router extras我的测试仍然通过吗 如果你想快速安装 请使用 yeoman angular fullstack
  • 如何向单个客户端而不是所有客户端发送命令?

    我正在用 Indy 10 编写一个简单的客户端 服务器聊天程序 我的服务器 idtcpserver 向客户端发送一条命令 客户端应答 但是当连接多个客户端并且服务器发送命令时 all连接的客户端向服务器发送数据 如何向指定客户端而非全部客户
  • 限制 API 调用。仅允许我的移动应用程序

    我想要我的网络服务器接受请求起源仅从我的移动应用 由于移动应用程序是客户端应用程序 这意味着用户可以拥有二进制文件并反编译它 或者使用 Fiddler 等工具来解释 API 调用并重建它们 例如 在控制台应用程序中 所以我想要的是一种方法生
  • 有哪些好的方法可以防止 JavaScript 多人游戏作弊?

    想象一个带有滚动关卡的太空射击游戏 有哪些方法可以防止恶意玩家修改游戏以谋取私利 他可以做的服务器端难以限制的事情是自动瞄准 在可见区域外窥视 加速黑客攻击和其他事情 有哪些方法可以防止这种情况发生 假设服务器是任何语言 并且客户端通过 W
  • 故障模块:kernelbase.dll。应用程序崩溃

    I Have an application done in Net framework 3 5 C Net I installed the application in Windows 7 But while opening some fo
  • Enum.IsDefined 带有标记的枚举

    我目前正在看书C 4 0 简而言之顺便说一句 我认为这是一本很棒的书 即使对于高级程序员来说也可以作为很好的参考 我回顾了有关基础知识的章节 发现了一个技巧 可以在使用标记枚举时判断枚举中是否定义了某个值 书中指出 使用Enum IsDef
  • 为什么大写字母不能用于定义值的模式匹配?

    为什么我可以使用小写字母作为名称 val a bC 1 2 1 2 match case a bC gt 并且不能使用大写字母 compile errors not found value A BC val A BC 1 2 compile
  • Django + PostgreSQL:填充范围内缺失的日期

    我有一张表 其中一列为date 每个日期可以有多个条目 date 2015 07 20 2015 07 20 2015 07 23 2015 07 24 我想使用 Django ORM 和 PostgreSQL 作为数据库后端来获取以下形式
  • gcc 链接共享库与符号链接

    我有两个库 例如两个烤面包机库libtoaster a so and libtoaster b so以及所有相关的主要 次要 修订符号链接 例如libtoaster a so 1 0 0等等 这两个库都实现了相同的烤面包机接口 但只是进行了
  • 使用 R,循环数据帧,并为循环中创建的对象分配适当的名称

    这是数据分析师一直在做的事情 特别是在处理缺少响应的调查数据时 通常首先对一组完整的数据矩阵进行乘法插补 将模型拟合到每个矩阵 然后组合结果 目前我正在手工做事并寻找更优雅的解决方案 想象一下有 5 个 csv工作目录中的文件 名为dat1
  • 如何运行 Github 存储库?

    我是一个编码新手 所以这可能是一个愚蠢的问题 我正在做一个 SQL 项目来学习该语言 我想知道是否有办法下载并执行 Github 存储库 我以前没有使用过 Github 谢谢 如果你是新手 我认为你应该学习如何使用git 您可以参考以下链接
  • 詹金斯没有声纳​​运行选项?

    我正在寻找在我们的詹金斯服务器上安装 sonarQube 我能找到的文档告诉我在中配置声纳运行器 Jenkins gt manage Jenkins gt Configure system 但是那里没有 声纳跑步者 选项 有一个 声纳 选项
  • 从AWS lambda@edge访问原始URL

    我正在尝试使用 AWS Cloudfront 上的 lambda edge 实现多个网站的 代理 我的设置大致是 DNS domain com gt some uuid cloudfront net Cloudfront 分发 Cloudf
  • VIM 折叠头中的语法高亮显示

    有没有办法让 VIM 继续对用作折叠标题的行应用格式 例如 我有以下代码 int foo int a int b int c 折叠后 我看到 4 lines int foo int a int b 但是 根据 Folded 类 整行都会突出
  • MySQL - 我们可以按列位置而不是名称排序吗?

    我在谷歌上查看过但找不到它 我们可以在 MySQL 中使用字段的位置进行排序吗 假设我有字段ID FirstName LastName Age但我想按字段 4 排序 我可以这样做吗ORDER BY FieldPos4按年龄订购 我还没有找到
  • 在 C# 字符串/字符编码中,GetBytes()、GetString() 和 Convert() 之间有什么区别?

    我们在将 Unicode 字符串转换为 UTF 8 字符串以通过网络发送时遇到问题 Start with our unicode string string unicode Convert u10A0 Get an array of byt
  • DataGridView 滚动事件(和 ScrollEventType.EndScroll)

    交接时DataGridView Scroll事件 您可以检查是否是滚动结束 当用鼠标拖动滚动条时 这大概是在释放鼠标按钮时 问题是这似乎永远不会发生 e Type从来没有ScrollEventType EndScroll 这有什么问题吗 如
  • 如何避免 DOM 解析添加 html doctype、 和 标签? [复制]

    这个问题在这里已经有答案了
  • Python 相当于 R c() 函数,用于数据帧列索引?

    我想使用列索引从 pandas 数据帧中选择特定的列 特别是 我想通过生成的列索引来选择列索引c 12 26 69 85 96 99 134 928 933 935 940 967 我想知道如何在 Python 中做到这一点 我在想类似下面
  • 在 Python 中拒绝负数作为异常

    我正在尝试运行一个接受数字的基本提示 然后对其运行递归函数 任何负数都会导致递归错误 因为函数无法处理它们 现在 我通过 Python 了解到 像这样的情况需要 尝试 例外 模型 这是我想出的 try choice int input En