以下代码之间有什么区别?

时间:2020-04-10 15:46:31

标签: python python-3.x string floating-point typeerror

Python

代码-1

hrs = input("Enter Hours:")
rate = input("Enter Rate:")
pay = float(hrs * rate)
    print("Pay:", pay)

代码-2

 hrs = input("Enter Hours:")
 rate = input("Enter Rate:")
 pay = float(hrs) * float(rate)
    print("Pay:", pay)

在执行代码时-1我收到以下错误- “ TypeError:不能在第5行上将序列乘以'str'类型的非整数”,但是代码-2完全可以正常运行。我只想知道这两个代码之间真的有什么区别吗?如果是,那是什么? (我是刚开始编程的新手)

2 个答案:

答案 0 :(得分:2)

此代码float(hrs * rate)无法工作,因为hrsrate都是字符串。您期望"hello" * "world"的结果是什么?

另一方面,当您执行float(hrs) * float(rate)时,您会将两次调用float的结果相乘-换句话说,您将两个浮点数相乘。

答案 1 :(得分:0)

在第一个代码中,您首先将2个变量相乘,然后将其转换为float,但是如果其中一个变量为str(在这种情况下均为两者),则将出现错误。

在第二个代码中,您在乘法之前将它们分别转换为float,这就是为什么完全没有错误的原因