Python循环打印输出两次

时间:2020-04-24 19:40:46

标签: python loops for-loop printing while-loop

我之前曾发布过此问题,但由于没有帮助的答案而将其关闭了:/ 所以我再次发布它,看看是否可以得到不同的答案。我正在做一个练习题,我要输入车辆的速度以及该速度下的小时数。输出应为一个表格,列出每小时的距离。我写的代码可以实现我想要的功能,但是它可以将输出打印两次,但我不确定为什么。 这是我的代码:

def main():
  another_speed = 'y'

  while another_speed == 'y' or another_speed == 'Y':
      calc_distance()
      another_speed = input('Do you have another speed?')

def calc_distance():
    speed = float(input('What speed were you going?'))
    hour = int(input('How many hours were you traveling at that speed for?'))

    print("Hour\tDistance Traveled (mi)")
    print('---------------------------')

    for hour in range(1, hour +1):
        distance = speed * hour
        print(hour,'\t',distance)

main()

****************
OUTPUT:

What speed were you going? 40(ENTER)
How many hours were you traveling at that speed for? 4 (ENTER)
Hour    Distance Traveled (mi)    ------
---------------------------             |
1       40.0
2       80.0.                           |   <--- All i want to print          
3      120.0
4      160.0.                      -----
Hour    Distance Traveled (mi)
---------------------------
1       40.0                     
2       80.0                          <--- Not this again!
3      120.0
4      160.0

1 个答案:

答案 0 :(得分:0)

所以我发现这是我的文本编辑器。我正在使用木星笔记本。当程序卡在'[*]'位置时,我正在刷新内核,但从未尝试刷新内核并清除输出。

我创建了一个新的笔记本来运行我的代码,并且运行得很漂亮,所以我发现它不是我的代码。所以我回到了旧笔记本上,刷新了内核,清除了输出,现在它也可以正常工作了。

尽管我解决了我原来的答案。如果有人对刷新内核与刷新内核以及清除输出之间的区别有更深入的了解,如果在某些情况下何时使用每个内核,或者在刷新内核和清除每次输出的更多优势时,我将不胜感激-我的程序被卡住了,无法执行。谢谢!