变量语法错误

Syntax error with a variable

我正在编写一个程序,以表格形式提供可用食品的数量。这是代码:

def kiwi(headline,leftwidth,rightwidth):
  print(str(headline).center(leftwidth+rightwidth,'-'))
  for k,v in List.items():
    print((str(k).ljust(leftwidth,'.') + str(v).rjust(rightwidth))

List={'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}

kiwi(PICNIC ITEMS AVAILABLE,12,5)

我希望它看起来像这样:

当我 运行 时,我在 List(倒数第二行)中遇到语法错误。我认为我输入的所有括号都是正确的,但为什么会出现此错误?

此外,如果您在代码中发现另一个错误,也请告诉我!

编辑:为了回应一些答案,这里是 sublime text 中的代码。看,一切似乎都很好

你没有关闭第 4 行的括号。第二个错误是,在第 2 行和第 4 行,使用 而不是 '

这是你的原始代码,在那上面,你甚至可以从它的颜色中看出问题所在。

                                                //|
def kiwi(headline,leftwidth,rightwidth):        //v
  print(str(headline).center(leftwidth+rightwidth,’-'))
  for k,v in List.items():  // <--
    print((str(k).ljust(leftwidth,’.’) + str(v).rjust(rightwidth))

List={'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}

kiwi(PICNIC ITEMS AVAILABLE,12,5)

编辑, 你说我正在使用 Sublime Text,但是,它至少表明撇号错误。

编辑2,括号呢?

这个应该更好:

def kiwi(headline,leftwidth,rightwidth, items_av):
  print(str(headline).center(leftwidth+rightwidth,'-'))
  for k,v in items_av.items():
    print((str(k).ljust(leftwidth,'.') + str(v).rjust(rightwidth))

items_av={'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}

kiwi("PICNIC ITEMS AVAILABLE",12,5, items_av)

您的代码中存在一些问题,请与您的版本进行比较

您在括号和字符串标识符 (') 上犯了一些错误。您多次使用 ` 而不是 '。

这会起作用:

def kiwi(headline,leftwidth,rightwidth):
  print(str(headline).center(leftwidth+rightwidth,'-'))
  for k,v in List.items():
    print((str(k).ljust(leftwidth,'.') + str(v).rjust(rightwidth)))

List={'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}

kiwi("PICNIC ITEMS AVAILABLE",12,5)

提示:使用具有适当语法高亮显示的编辑器,例如 Linux 上的 "geany" 或 Windows 上的 "Notepad++"。那么这些错误就不太可能发生了。

您只需要 kiwi 函数中的引号:

def kiwi(headline,leftwidth,rightwidth):
    print(str(headline).center(leftwidth+rightwidth,'*'))
    for k,v in List.items():
            print(str(k).ljust(leftwidth,'-') + str(v).rjust(rightwidth))

List={'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}

kiwi("PICNIC ITEMS AVAILABLE", 12, 5)

哈哈哈哈,回答多多。还有一个。

为了更好地对您提供的数据进行排序,请使用 type(list) 而不是 type(dict)

而下面的代码可以显示你想要的。

def kiwi(headline, leftwidth, rightwidth, items):
    print(str(headline).center(leftwidth+rightwidth, '-'))
    for k, v in items:
        print(str(k).ljust(leftwidth, '.') + str(v).rjust(rightwidth))

items_av = [('sandwiches', 4), ('apples', 12), ('cups', 4), ('cookies', 8000)]
kiwi("PICNIC ITEMS", 21, 5, items_av)