0

我正在编写我打算用于管理酒厂仓库的第一个程序。该程序应该显示托盘位于哪个位置以及有关它的其他信息。

我的问题是它看起来很乱,所以我编写了一个简单的函数来打印行以排列所有数字。但是,每当我lines在 print 命令中调用该函数时,它都会返回一个NoneType Error.

我尝试lines单独运行该函数,它工作正常,它只是在print函数中时搞砸了。

print('pallet program')
warehouse={'a1':{'location':'A1','name':'Gran cuvee','year':'2016','amountbottle':'600','amountboxes':'40'},
           'a2':{'location':'A2','name':'Merlot','year':'2017','amountbottle':'400','amountboxes':'60'},
           'a3':{'location':'A3','name':'Vranec','year':'2016','amountbottle':'100','amountboxes':'30'},
           'a4':{'location':'A4','name':'Cabarnet sauvignon','year':'2019','amountbottle':'900','amountboxes':'10'}
           }
def lines(a):
    print('-'*(10-len(a)))

print('Pallet 1:\nLocation:'+warehouse['a1']['location']+
      '\nName of wine:'+warehouse['a1']['name']+
      '\nYear:'+warehouse['a1']['year']+
      '\nAmount:\n   Bottles:'+warehouse['a1']['amountbottle']+'\n   Boxes:'+lines(warehouse['a1']['amountboxes'])+warehouse['a1']['amountboxes'])

有什么我想念的吗?我不想要一个返回函数,因为它会改变字典中的值。或者我认为。我是新手。

4

2 回答 2

0

lines()不返回字符串,因此您无法打印它。尝试这个:

def lines(a):
    return '-' * (10 - len(a))
于 2019-07-29T20:10:16.283 回答
0

当您访问lines()print()函数时, print 会尝试打印您的函数返回的任何内容。由于它不返回任何内容,因此您会收到错误消息。如果您定义返回字符串的函数,它会起作用:

def lines(a):
    return ('-'*(10-len(a)))
于 2019-07-29T20:10:36.573 回答