Python 3 中的 int() 与 float() 输入及其实用程序?

Nao*_*son 4 python floating-point int python-3.x

这并不是指我的特定代码,因此我希望这不会违反提出问题的社区标准。我还在学习中,所以如果这类问题不合适,请告诉我,以供以后参考!

当我开始学习使用 Python 3 时,我试图彻底了解某些命令的实用性。我以前从未编码过,所以我没有任何其他语言的背景。我希望有人能帮助我更彻底地理解这一点。

基本上,我明白,当提示用户输入数值时,有时写正确float(input()),有时写正确int(input())。我在数学中知道整数是整数,浮点数是用整数部分、基数和尾数定义的任何数字(例如 4.32)。我不明白将用户输入转换为其中一种的效用。

例如,如果我编写int(input("Input a decimal. "))并且用户输入4.3,程序将返回值错误。这有什么用处呢?所以:

  1. input()将 an 转换为float()or有什么用处int()
  2. 我知道何时需要一个整数(例如,如果我希望用户输入将特定数字与其自身相乘的次数),但为什么我需要浮点输入?
  3. 一般来说,我什么时候需要实现其中之一,以及如何识别程序需要哪一个?
  4. 除了用户输入之外,在其他什么情况下我还想实现任一命令?
  5. 如果有人对如何以及何时转换某些定义的变量或输入有任何其他阅读,请发送给我!

编辑:

这是我编写的代码示例,我认为它突出了我对是否以及何时使用int()and的困惑float()

price=input("How much did the item cost?: $")
if float(price)<0:
    print("The price cannot be negative.")
else:
    price=int(float(price)*100)
    paid=input("How much did the customer pay?: $")
    paid=int(float(paid)*100)
Run Code Online (Sandbox Code Playgroud)

我这样做正确吗?这是其中一部分的较大程序工作正常,但我不确定是否添加了不必要的命令或正确实现了命令。

非常感谢你的帮助!

内奥米

dur*_*rsk 6

它与实用程序无关,它与您的程序应该/需要接受的可能值范围有关。

如果它需要接受整数和浮点数作为输入,那么您应该转换为,float因为浮点数可以表示整数。

但是,如果您的程序要求输入专门为整数,那么您应该将其转换为int.

编辑:

在您的示例中,您应该始终使用float,因为金钱具有十进制值。

如果你问“你买了多少香蕉?” 您需要转换为,int因为这些值将是0, 1, 2, 3, 4, .... 然后当你问“你买这些香蕉花了多少钱?” 您想要转换为,float因为这些输入的范围可以是等3.15, .77, 1, 1.00, ...

  • @NaomiJacobson - 不要使用这个答案。这是不对的。继续做你正在做的事情。货币应转换为其最小面额并存储为整数以避免浮点错误。 (2认同)