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)]
结果是他们懒惰地评估这对于大列表意味着更少的内存压力。
我是一名统计学专业的本科生,正试图兼职学习一些编程。我买了一本 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)]
结果是他们懒惰地评估这对于大列表意味着更少的内存压力。