为什么Python解释器认为我的Int输入是字符串?

时间:2016-02-25 00:49:21

标签: python-3.x type-conversion

我试图编写一个程序,在七天的时间内获得销售收入,然后找到总和,平均值,然后是最高和最低销售额。我现在被卡住了,因为我无法弄清楚如何让翻译器将我的输入作为Floats而不是字符串?

以下是代码:

def main():
    weekly_sales_analysis()

def weekly_sales_analysis():
    sales_list = []
    sales1 = input('Enter the sales for Mon: ')
    sales_list.append(sales1)
    sales2 = input('Enter the sales for Tues: ')
    sales_list.append(sales2)
    sales3 = input('Enter the sales for Wed: ')
    sales_list.append(sales3)
    sales4 = input('Enter the sales for Thurs: ')
    sales_list.append(sales4)
    sales5 = input('Enter the sales for Friday: ')
    sales_list.append(sales5)
    sales6 = input('Enter the sales for Sat: ')
    sales_list.append(sales6)
    sales7 = input('Enter the sales for Sun: ')
    sales_list.append(sales7)

    total_sales = sum(sales_list)
    print(total_sales)

    average = sum(sales_list)/7
    print(total_weekly_sales)

当我运行程序时,我得到了

"unsupported operand type(s) for +: 'int' and 'str'"

每当我尝试转换澄清时,输入都是这样的浮点数:

sales1 = input(float('Enter the sales for Mon: '))

它告诉我它无法将字符串转换为浮点数。

1 个答案:

答案 0 :(得分:1)

你几乎就在那里。在返回值后,您需要将input函数的结果转换为float ,如下所示:

sales1 = float(input('Enter the sales for Mon: '))

否则,您正在尝试将字符串'Enter the sales for Mon: '投射到float,这显然不会起作用 - 根本无法用数字解释该值

回答您的第一个问题,input in Python 3.x takes all input as a string