5.3 输入数字

    我们已经见过如何使用 raw_input() 来得到字符串。但是如果希望得到一个数该怎么做呢?毕竟,我们之所以讨论输入,原本就是为了让用户为我们的温度转换程序输入温度。

    如果你读过第 4 章,应该已经知道答案了。可以从 raw_input() 给我们的字符串使用 int()float() 函数创建一个数。可以像这样:

    temp_string = raw_input()
    fahrenheit = float(temp_string)

    先使用 raw_input() 得到用户的输入(一个字符串)。然后使用 float() 由这个字符串创建一个数。得到温度(作为浮点数)后,为它指定名字 fahrenheit

    不过还有一种简便方法。只需一步就可以完成所有这些工作,如下:

    fahrenheit = float(raw_input())

    所做的工作是一样的。它由用户得到字符串,然后从这个字符串创建一个数。这里只是稍稍少写一点代码。

    下面在我们的温度转换程序中使用这种方法。试着运行代码清单 5-3 中的程序,看看会得到什么。

    代码清单 5-3 使用 raw_input() 转换温度

    空标题文档 - 图1

    还可以把代码清单 5-3 最后 3 行合并为一行,像这样:

    print "That is", celsius, "degrees Celsius"

    这实际上是之前 3 个 print 语句的简写形式。

    结合 int() 使用 raw_input()

    如果你希望用户输入的数总是整数(而不是小数),可以用 int() 来转换,例如:

    response = raw_input("How many students are in your class: ")
    numberOfStudents = int(response)

    像(Python)程序员一样思考
    得到数字输入还有一种方法。Python 2 有一个名叫 input() 的函数,可以直接提供一个数,所以不必使用 int()float() 来转换。我们在第 1 章的猜数程序中用过这个函数,因为这是从用户得到一个数的最简单的方法。
    但为了保持一致,我们在本书的剩余部分会始终使用 raw_input()。而且,Python 3 中去除了 input() 函数(可以直接获取数字而不需要进行转换),只有 raw_input()。更令人感到混乱的是,Python 2 中的 raw_input() 在 Python 3 中改名为 input(),但它的功能仍然和你在这一章中见到的这个函数一样,只会得到字符串。因为我们很清楚怎样从一个字符串创建一个数,所以建议使用 raw_input(),而不要用 Python 2 中的 input()