Python:将英里数转换为公里数

时间:2015-05-20 22:30:10

标签: python range

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

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

问题 - 编写一个程序disttable.py,以100英里的间隔打印100到1500英里之间的距离,打印一英里到一公里的转换表。编写一个函数来进行转换。一英里约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()内定义局部变量,所以我最终得到一个错误消息说明未定义局部变量。

3 个答案:

答案 0 :(得分:0)

那是因为你踩到了1501而不是100:

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

答案 1 :(得分:0)

您错误地使用了rangedocumentation说:

  

range(start, stop[, step])

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

答案 2 :(得分:0)

列表推导现在是做到这一点的最pythonic方式

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

结果是他们懒洋洋地评价哪个大名单意味着更少的记忆压力。