[mccabe] 循环复杂度过高错误是什么意思?

2024-02-06

我正在 repl.it 中为一个学校项目创建一个 CYOA,并且需要一个列表,所以我所做的就是在每次输入时为用户添加一个选项来查看他们的项目。在主要的分割处我放了

Items = ["Flask of Root Beer"]
print ("Intro:\nYou think to yourself as a 24yo dude with no life ahead of him 'Why am i stuck working in the urban district when I could be in the forest district exploring or something'. With the volcano looming over you, you head out the next morning leaving everything behind you and pursuing your dream of exploration. ")
print ()
print ("You depart from your house with your flask of root beer \nin your pocket and discover a fork in the road. ")
orig_path=input("Do you go left, straight, or right? ")
print ()
if orig_path == "show items" or "items":
  print (Items)
if orig_path == "left":
  print ("You go to the left and you see a light over in the distance.")
  ufo_light=input("Do you investigate? ")
  if ufo_light == "show items" or "items":
    print (Items)
  if ufo_light == ("yes"):
    print ("You investigate the bright light and you see that it's a crashed alien ship!")
    ufo_four_choice=input("You go into the ship and see that there are four things of note. The console, a alien gun on the floor, some green blood right next to it, and a labeled distress call button. Which one do you investigate first? ")
    if ufo_four_choice == "show items" or "items":
      print (Items)
    if ufo_four_choice == "console" or "the console":
      print ("End")
    if ufo_four_choice == "alien gun" or "the alien gun":
      print ("End")
    if ufo_four_choice == "alien blood" or "blood" or "green blood":
      print ("End")
    if ufo_four_choice == "distress call button" or "button" or "labeled distress call button":
      print ("End")

这是我收到的错误https://i.stack.imgur.com/UvOxN.jpg https://i.stack.imgur.com/UvOxN.jpg正如我所说,这是为了学校,所以我只是在学习,所以我没有尝试太多来解决这个问题。我不知道该怎么办,因为我不知道错误是什么。如果您能解释那是什么,我们将不胜感激。


这不是一个真正的错误。这是来自 linter 的警告,告诉您您违反了正确的做法。具体来说,您的代码可以采用太多不同的路径(每个路径有两个)if)。代码的执行路径越多,理解起来就越困难。

为了解决这个问题,您可以分解该函数并确保所有这些ifs 实际上是必需的。


另请注意,

if ufo_four_choice == "show items" or "items":

类似的线条也被打破了。看here https://stackoverflow.com/questions/15112125/how-to-test-multiple-variables-against-a-value.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[mccabe] 循环复杂度过高错误是什么意思? 的相关文章

随机推荐

  • 在 UITableView 中滚动时视图被替换

    我是一名 Android 开发人员 对 iOS 应用程序开发非常陌生 我正在尝试构建一个简单的聊天系统 每个单元格中只有一行数据 我正在使用自定义UIView类来生成气泡和UILabel and an UIImageView以编程方式 当我
  • Python 从键列表生成动态字典

    我确实有一个清单 如下所示 keyList1 Person Male Boy Student id 123 Name value1 Roger 如何生成可以按如下方式检索的动态字典 mydict Person Male Boy Studen
  • Bigquery - 计划存储过程不再工作

    最近 Bigquery UI 发生了变化 似乎不再可以安排存储过程自动执行 使用 UI 只是不断要求插入目标表 如果我放置一个虚拟表 则会创建计划 但是当尝试执行时只会抛出一个错误 表明在执行存储过程时我们无法拥有目标表 有人遇到这个问题并
  • SQL 注入预防 - GET_VARS

    我有一个网址 有效时将如下所示 site com page php id 12345 我试图了解我们是否容易受到 sql 注入的攻击 在这个特定的实例中 该值只能是正整数值 因为它是一个 ID 号 我们有时确实使用其他变量 可以是字母或文本
  • Groovy 中分割字符串的惯用方法

    是否有更好 更短 更好的方法来执行以下操作 filename AA BB CC DD EE FF xyz parts filename split packageName parts 0 parts 1 parts 2 parts 3 pa
  • AngularJS - 单个模板中的多个 ng-view

    我正在使用 AngularJS 构建一个动态 Web 应用程序 是否可以有多个ng view在一个模板上 你可以只拥有一个ng view 您可以通过多种方式更改其内容 ng include https docs angularjs org
  • 文件内容更改后使用 ifstream 从同一文件读取(直到 EOF)

    要求 我必须读到 EOF 16 个字节 时间 来自特定文件 以及 然后说睡5秒 现在 5秒后 当我尝试阅读时 从文件 其内容将 到那时已被附加 预期的设计必须是这样的 它从它所在的点读取 之前离开并再次扫描 内容 一次 16 个字节 直到
  • bigint 通过 PDO 截断?

    我遇到了将大整数存储在 a 中的问题BIGINT通过 PDO 在 MySQL 上列 如果我运行这个测试 number 30123456789 var dump number prints string 11 30123456789 new
  • 使用 Connect-MSOLservice 与服务主体连接

    我正在尝试使用在 AzureAD 中创建的服务主体通过 PowerShell 脚本进行连接 我成功创建了 SP 创建了密钥 还创建了自签名证书并将其与帐户关联 我知道如何使用 Connect AzureAD 但 Connect MSOLse
  • 可以使用按钮删除从项目添加的数据库条目吗?

    我正在尝试使用 Android 编程 大书呆子牧场指南 自学 Android 开发 其中一个练习 如果您熟悉这本书 请从第 14 章开始 涉及创建一个工具栏 其中包含一个项目 该项目将新条目添加到单击该项目时的数据库 一个挑战问题是删除条目
  • 使用 JGit 从 Git 检索提交消息日志

    我只想从 Git 存储库检索提交日志 其中包含您在特定存储库上完成的所有提交的消息 我找到了一些实现此目的的代码片段 并以异常结束 try FileRepositoryBuilder builder new FileRepositoryBu
  • Kivy 窗口隐藏/显示

    我是一个Python编程新手 学习让我创建一个项目 这就是我正在尝试做的事情 我想创建一个在系统托盘中运行的程序 并且 fire 是一个在后台加载的程序 在后台加载 这样我可以减少 Kivy 的启动时间 在这里和谷歌搜索后 我找不到答案 我
  • Azure ARM 角色分配不同的资源组

    我正在尝试创建一个具有 VM 的 ARM 模板 我希望 VM 具有AcrPull向位于不同资源组中的容器注册表进行角色分配 我将范围属性设置为 ACR 的 ID 我从https resources azure com https resou
  • 正则表达式 标签解析src、宽度、高度

    你可能会对这句话做出反应 H使用正则表达式进行 TML 解析是一个完全糟糕的主意 下列的this https stackoverflow com questions 1732348 regex match open tags except
  • 添加对消息的反应。 Discord.py 重写

    我正在尝试使用自定义表情符号添加对消息的反应 由于某种原因 我在网上找不到太多与此相关的内容 并且我花了过去 3000 万的时间试图找出不同的方法 到目前为止还没有任何效果 这是在齿轮内部 第一种方法 accept decline awai
  • Xcode + 删除所有断点

    有什么方法可以删除Xcode中的所有断点吗 那么有一个三步的方法 按 CMD 7 显示所有断点 在 Xcode4 中按 CMD 6 在 Xcode3 中按 CMD ALT B 使用 CMD A 选择所有断点 然后使用退格键删除它们 就像删除
  • 乔姆斯基语言类型

    我试图理解四种不同的乔姆斯基语言类型 但我发现的定义对我来说没有任何意义 我知道类型 0 是自由语法 类型 1 是上下文相关的 类型 2 是上下文无关的 而类型 3 是常规的 那么 有人可以解释一下这一点并将其放在上下文中吗 谢谢 语言是属
  • 有没有办法在没有 .* 或 ->* 运算符的情况下调用成员函数

    调用方法如下D foo通过指向成员函数的指针调用函数将生成错误 必须使用 or gt 在 f 中调用指向成员函数的指针 当然这不是我们调用成员函数指针的方式 正确的调用方式是 d f 5 OR p gt f 5 我的问题是 有没有办法在左侧
  • 如何使用 scipy.optimize.linprog 获得整数解?

    当我解决线性规划问题时 就像下面的公式一样 我希望 x 的结果全部为 int 类型 考虑以下问题 最小化 f 1 x 0 4 x 1 须遵守 3 x 0 1 x 1 lt 6 1 x 0 2 x 1 lt 4 x 1 gt 3 where
  • [mccabe] 循环复杂度过高错误是什么意思?

    我正在 repl it 中为一个学校项目创建一个 CYOA 并且需要一个列表 所以我所做的就是在每次输入时为用户添加一个选项来查看他们的项目 在主要的分割处我放了 Items Flask of Root Beer print Intro n