Python [mccabe]圈复杂度过高的错误意味着什么?

Python [mccabe]圈复杂度过高的错误意味着什么?,python,python-3.x,Python,Python 3.x,我正在repl.it中为一个学校项目创建一个CYOA,需要有一个列表,所以我所做的是在每次输入时为用户提供一个选项以查看他们的项目。在主劈叉处,我把 Items=[“根啤酒瓶”] 打印(“简介:\你认为自己是一个24岁的年轻人,没有生活在他面前,'为什么我只能在市区工作,而我可以在森林区探索什么的。'随着火山逼近你,你第二天早上出发,把一切抛在脑后,追求你的探索梦想。”) 打印() 打印(“你带着口袋里的一瓶根啤酒离开家,发现了一个岔路口。”) orig_path=input(“您是向左走、直线

我正在repl.it中为一个学校项目创建一个CYOA,需要有一个列表,所以我所做的是在每次输入时为用户提供一个选项以查看他们的项目。在主劈叉处,我把

Items=[“根啤酒瓶”]
打印(“简介:\你认为自己是一个24岁的年轻人,没有生活在他面前,'为什么我只能在市区工作,而我可以在森林区探索什么的。'随着火山逼近你,你第二天早上出发,把一切抛在脑后,追求你的探索梦想。”)
打印()
打印(“你带着口袋里的一瓶根啤酒离开家,发现了一个岔路口。”)
orig_path=input(“您是向左走、直线走还是向右走?”)
打印()
如果原始路径==“显示项目”或“项目”:
打印(项目)
如果原始路径==“左”:
打印(“你走到左边,看到远处有一盏灯。”)
ufo_灯=输入(“你调查了吗?”)
如果ufo_灯==“显示项目”或“项目”:
打印(项目)
如果ufo_灯==(“是”):
打印(“你调查了明亮的光线,发现那是一艘坠毁的外星飞船!”)
ufo_four_choice=input(“你进入飞船,看到有四件值得注意的东西。控制台,地板上有一把外星人的枪,它旁边有一些绿色的血液,还有一个贴有标签的遇险呼叫按钮。你首先调查哪一件?”)
如果ufo四个选项==“显示项目”或“项目”:
打印(项目)
如果ufo四个选项==“控制台”或“控制台”:
打印(“结束”)
如果ufo_four_choice==“外星枪”或“外星枪”:
打印(“结束”)
如果ufo_four_choice==“外星人血液”或“血液”或“绿色血液”:
打印(“结束”)
如果ufo四个选项==“遇险呼叫按钮”或“按钮”或“标签遇险呼叫按钮”:
打印(“结束”)
这就是我得到的错误
正如我所说的,这是为了学校,所以我只是在学习,所以我没有尝试过解决这个问题。我不知道该怎么办,因为我不知道那个错误是什么。如果您能解释一下,我们将不胜感激。

这不是一个实际的错误。这是一个来自皮棉的警告,告诉你你违反了正确的做法。具体地说,您的代码可能有太多不同的路径(如果,则每个路径两条)。代码的执行路径越多,就越难理解

为了解决这个问题,您可以将函数分解,并确保实际需要所有这些
if
s


还注意到

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

类似的线也断了。请参阅。

圈复杂度是根据程序中的“路径数”来衡量软件的“复杂程度”。一般来说,我认为这是一个衡量有多少条件分支的指标


有一个更完整的描述。这个错误意味着你的程序有太多的代码块,例如循环、定义、类、if/else和try/except中的制表符或空格。尽量减少它们的数量,尽可能使用技巧或数据结构。

完全无关,但请参阅。