无法将字符串转换为浮点数 Python 并且代码未产生预期的输出

Cannot convert string into float Python and code isn't producing the expected output

任务

给定膳食价格(一顿饭的基本成本), 小费百分比(作为小费添加的膳食价格的百分比), 和一顿饭的税收百分比(作为税收添加的膳食价格的百分比), 查找并打印这顿饭的总费用。

总餐费=餐费+小费+税)

def solve(meal_cost,tip_percent,tax_percent):
    if __name__ == '__main__':
        meal_cost = float(input())

        tip_percent = int(input())

        tax_percent = int(input())

        tc = float(meal_cost + (tip_percent * meal_cost * 0.01) + (tax_percent * 0.01 * meal_cost))

        print(round(tc))

solve(12,20,8)

代码未产生预期的输出。任何人都可以解释这个错误吗? 错误消息是 "ValueError: could not convert string to float: '' "。

错误来自 input() 函数。 一旦您使用了 solve 函数,input() 函数就是期望值,但您可能键入 Enter 以使 solve 继续前进。解决 enterprete enter 并引发 ValueError。

你应该这样写你的代码:

def solve(meal_cost,tip_percent,tax_percent):
    if __name__ == '__main__':
        meal_cost = float(meal_cost)
        tip_percent = int(tip_percent)
        tax_percent = int(tax_percent)
        tc = float(meal_cost + (tip_percent * meal_cost * 0.01) + (tax_percent * 0.01 * meal_cost))
        print(round(tc))

solve(12,20,8)
15

然而,如果您真的希望您的函数使用 input() 函数进行交互,您可以这样写:

def solve():
    if __name__ == '__main__':
        meal_cost = float(input("enter meal_cost value : "))
        tip_percent = int(input("enter tip_percent value : "))
        tax_percent = int(input("enter tax_percent value : "))
        tc = float(meal_cost + (tip_percent * meal_cost * 0.01) + (tax_percent * 0.01 * meal_cost))
        print(round(tc))

solve()

顺便说一下,不需要在你的函数中写 if __name__ == '__main__': ;-)