为什么float(input()更喜欢使用input()?

时间:2015-10-01 17:31:10

标签: python-3.x

我正在通过rosettacode上的项目来学习Python编程。我试图研究我的问题的答案,但我猜我不太了解谷歌的答案恰到好处。

挑战在于:在此任务中,目标是从文本控制台输入一个字符串和整数75000。

我的代码:

Person = input('Enter your name, please:')
print('Hello', Person)
input('Enter 75000: ')
print('Thank you')

维基的答案部分地说:

  

从用户获取数字的首选方法是将输入作为字符串,并将其传递给任何一种数字类型,以创建适当数字的实例。

number = float(raw_input("Input a number: "))
     

Python 3.0等价物:

number = float(input("Input a number: "))
     

float可以替换为任何数字类型,例如int,complex或decimal.Decimal。每一个都有不同的预期输入。

虽然我的代码仍然有用,但我希望这样理解。

2 个答案:

答案 0 :(得分:1)

Python 3中的

input()(或Python 2中的raw_input())返回一个字符串。字符串不是float(或int),因此您无法使用它来计算某些内容。为此,您必须先将其转换为float或int。您可以使用float()int()来完成此操作。

所以你的代码“有效”,需要一些输入。但是输入的结果在两种情况下都是一个字符串,而不是任务最初请求的int。

答案 1 :(得分:0)

使用float(input("prompt")) 1 不是首选,如果您想要实际使用 该值为浮点数。

来自键盘的所有输入都以字符串形式出现。如果您只将它用作字符串(例如将其打印出来,保存到文件中等),则没有理由将其转换为浮点数。只有当您想将其用作转换它所需的实际数字时才能使用它。

1 如果您没有嵌入这样的功能,您可能会发现您的代码更容易测试,调试和维护。学习时尤其如此。通过将其拆分为两个语句,您可以更轻松地检查中间值(例如:转换前input()返回的内容)

s = input("prompt")
f = float(s)