我是一名本科生统计专业,试图学习一些编程。我买了一本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()
内定义局部变量,所以我最终得到一个错误消息说明未定义局部变量。
答案 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)
您错误地使用了range
。 documentation说:
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)]
结果是他们懒洋洋地评价哪个大名单意味着更少的记忆压力。