Python: 将英里转换为公里

Python: Converting Miles to Kilometers

我是一名统计学专业的本科生,正试图兼职学习一些编程。我买了一本 python 书,但遇到了一个问题。

本章介绍了For循环和前面介绍的函数。

问题 - 编写一个程序 disttable.py,以 100 英里为间隔打印 100 到 1500 英里之间距离的 table 英里到公里的转换。编写一个函数来进行转换。一英里约1.609公里。

到目前为止我的代码 -

def mile(x): 
        return 1.609 * x
def main():
    for n in range(100,100,1501):
        print(n,miles(n))

当我调用 main() 时,没有任何反应。没有错误信息。

我试图将 for 循环放在 main() 内,但是,当我将 for 循环移到那里时,我不确定如何在 main() 内定义局部变量,所以我最终得到一条错误消息,指出未定义局部变量。

那是因为你步进了 1501 而不是 100:

def mile(x): 
        return 1.609 * x
def main():
    for n in range(100,1501,100):
        print(n,mile(n))

您使用 range 不正确。 documentation 表示:

range(start, stop[, step])

从 100 到 100,步长为 1501 不会给你任何值,所以你的范围是空的,循环永远不会运行。你的意思可能是 range(100, 1501, 100).

列表理解现在是执行此操作的最 pythonic 方式

def mile(x):
     return 1.6*x 
def main():
     print [(x, mile(x)) for x in range(100,1501,100)]

结果是他们懒惰地评估这对于大列表意味着更少的内存压力。