当前位置: 首页 > 面试题库 >

Python数学-TypeError:“ NoneType”对象不可下标

彭涵衍
2023-03-14
问题内容

我正在制作一个用于数学的小程序(没有特殊原因,只是出于某种原因),并且遇到错误“ TypeError:’NoneType’对象无法下标。

我从未见过此错误,所以我不知道这意味着什么。

import math

print("The format you should consider:")
print str("value 1a")+str(" + ")+str("value 2")+str(" = ")+str("value 3a ")+str("value 4")+str("\n")

print("Do not include the letters in the input, it automatically adds them")

v1 = input("Value 1: ")
v2 = input("Value 2: ")
v3 = input("Value 3: ")
v4 = input("Value 4: ")

lista = [v1, v3]
lista = list.sort(lista)

a = lista[1] - lista[0]

list = [v2, v4]
list = list.sort(list)

b = list[1] = list[0]

print str(a)+str("a")+str(" = ")+str(b)

错误:

Traceback (most recent call last):
  File "C:/Users/Nathan/Documents/Python/New thing", line 16, in <module>
    a = lista[1] - lista[0]
TypeError: 'NoneType' object is not subscriptable

问题答案:
lista = list.sort(lista)

这应该是

lista.sort()

.sort()方法就位,并返回None。如果您希望某些东西不就地返回值,则可以使用

sorted_list = sorted(lista)

除了#1:请勿致电您的清单list。那掩盖了内置列表类型。

除了#2:我不确定这行是做什么的:

print str("value 1a")+str(" + ")+str("value 2")+str(" = ")+str("value 3a ")+str("value 4")+str("\n")

简单吗

print "value 1a + value 2 = value 3a value 4"

?换句话说,我不知道您为什么在已经存在的东西上调用str。

除了#3:有时您使用print("something")(Python 3语法),有时您使用print "something"(Python
2)。后者会在py3中给您一个SyntaxError,因此您必须运行2.
*,在这种情况下,您可能不想养成这个习惯,否则您将结束打印元组并加上额外的括号。我承认它在这里可以很好地工作,因为如果括号中只有一个元素,它不会被解释为元组,但是它对于python来说似乎很奇怪。



 类似资料:
  • 问题内容: 它告诉我第1行和第5行(是调试/编程的新手,不确定是否有帮助) 为什么会给我这个错误? 问题答案: 你想给函数传递 对象 到你的功能,而不是结果 调用 来(这是因为不返回任何东西)。 所以试试这个: 也许这可以帮助您更好地理解:

  • 问题内容: 我正在尝试在python中使用pyodbc运行SQL命令。其中SQL命令包含多个SELECT命令和IF语句。 但我收到如下错误 问题答案: 包含多个SQL语句的SQL命令文本称为 匿名代码块 。匿名代码块可以返回多个结果,每个结果可以是 行数 包含零个或多个数据行的结果集,或 一个错误。 以下示例失败… …,因为第一个返回行计数,第二个返回其结果集。 解决方法是启动匿名代码块,该代码块

  • 问题内容: 基本上,我有一个输入,用户会将数字值(浮动输入)放入其中,然后将所有这些上述列表索引设置为该值。出于某种原因,我无法在没有设置的情况下设置它们: 错误。我是在做错事还是只是以错误的方式看待它? 问题答案: 是一个花车。正在尝试访问浮点数的第一个元素。相反,做 要么

  • 问题内容: 错误 :Tkinter回调跟踪中的异常(最近一次调用最近):文件“ /tools/python/2.7.2/lib/python2.7/lib- tk/Tkinter.py”,行1410,在 调用 返回self.func( * args)填充listb.pop [0]中的文件“ ./edit.py”,第581行,TypeError:’builtin_function_or_method

  • 问题内容: 我有一个标记文件/标记格式的标记文件,并且尝试了一个函数,该函数返回带有(单词,标签)列表中单词的元组。 在python 2.7中效果很好,但是在python 3.4中,它给了我以下错误: 有人可以帮忙吗? 问题答案: 在Python 2中,返回一个列表。在Python 3中,返回一个可迭代的对象。但是您只需调用即可将其放入列表,如: 在这种情况下,将是: 通过列表,您可以使用索引:

  • 问题内容: 我正在按照课堂作业的说明进行操作,并且应该在文本文件中查找前200个最常用的单词。 这是代码的最后一部分: 但是,当我在vocab 200行之后按Enter键时,它将返回: 关于如何解决此问题的任何建议,以便它可以正确返回答案? 问题答案: 看起来您正在使用Python3。在Python 3中,返回一个可迭代但不可索引的对象。最简单(但效率不高)的解决方案是: