TypeError:一元+的错误操作数类型:' str' 15号线?

时间:2016-04-15 01:31:58

标签: python

好的,我试图解决这个问题并且没有任何结果。我很确定我有一个" duh"那一刻,一旦别人看到我的问题,我就会感到愚蠢,但我还是会问!我还没有得到我之前得到的错误,所以我甚至不确定如何修复它。任何帮助,将不胜感激! :d

def main():
    # Variables
    total_sales = 0.0

    # Initialize lists
    daily_sales = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
     days_of_week = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', + \
                     'Thursday', 'Friday','Saturday']

    for index in range(7):
        daily_sales[index] = float(input('Enter the sales for ' + \
                                     days_of_week[index] + ': '))

    for number in daily_sales:
        total_sales += number

    # Display total sales
    print ('Total sales for the week: $', + \
       format(total_sales, ',.2f'), sep='')

# Call the main function.
main()

2 个答案:

答案 0 :(得分:0)

我似乎无法复制您所获得的错误,但是从您的代码中我可以看到您希望用户输入每天的销售额并获得总数。这是一个关于我如何做的简单方法

def main():
    days_of_week = [
        'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
        'Saturday'
    ]

    # use a list comprehension to generate a list of entered values
    total = [float(input('Enter the sales for %s: ' % a))
             for a in days_of_week]

    # use sum function to calculate the total in the list
    print "Total sales for the week: $%s" % sum(total)

main()

答案 1 :(得分:0)

你的问题是:

print ('Total sales for the week: $', + \
   format(total_sales, ',.2f'), sep='')

具体来说,这里留下的部分是:

                                      + \
   format(total_sales, ',.2f')

最后一行\(不需要给出parens,但删除它不会有帮助)意味着你正在做+format(total_sales, ',.2f')format返回str,而str未实现一元+(因为一元+用于数学表达式)。

解决方法是摆脱+

print ('Total sales for the week: $',
       format(total_sales, ',.2f'), sep='')

您还可以使用str.format方法简化一下:

print('Total sales for the week: ${:,.2f}'.format(total_sales))