带变量的语法错误

时间:2017-07-12 09:17:00

标签: python python-3.x python-3.6

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

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)

我希望它看起来像这样:

enter image description here

当我运行此操作时,我在List(最后一行)中收到语法错误。我认为我输入的所有括号都是正确的,为什么我会收到此错误?

此外,如果您在代码中看到另一个错误,请告诉我相关信息!

编辑:在回答一些答案时,这是sublime文本中的代码。看,一切似乎都很好

enter image description here

5 个答案:

答案 0 :(得分:3)

您只需要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)

答案 1 :(得分:1)

您没有关闭第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 ,但它至少表明了撇号错误。

enter image description here

编辑2,括号怎么样?

enter image description here

答案 2 :(得分:1)

这应该更好:

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)

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

答案 3 :(得分:1)

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

这将有效:

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 ++”。那么这些错误就不太可能发生。

答案 4 :(得分:-1)

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

为了更好地对您提供的数据进行排序,请使用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)