2016-04-22 48 views
-5

所以我在我的学校在Python中制作一个项目。我是python的新手,需要使用以下代码进行循环的帮助。该代码旨在开始一圈,然后打印时间结束。我试图让循环开始并无限次地询问这个问题,直到它被告知这样做。所以它应该做的事情:它询问什么时候开始,然后结束,当它被告知。我这样做了,但现在我需要让它循环,直到它被告知停止。制作一个循环,当被告知这样做时打破

import time 

def end(): 
    end = time.time() 
    elapsed = end - start 
    print "%s seconds" % (elapsed) 

def lap(): 
    lapping = raw_input("lap? (l to lap)") 
    if lapping == "l": 
     end() 

starting = raw_input("start? (s to start)") 
if starting == "s": 
    start = time.time() 

ending = raw_input("end? (e to end)") 

if ending == "e": 
    end() 

lap() 
+2

请更正缩进。循环在哪里? – jofel

+0

你到目前为止学到了什么关键词,可以让你做一个循环?你认为你需要哪一个? – Sayse

+0

Stackoverflow用户低估了这6次的耻辱。 没有什么比干掉noobs更好吗? ... – Gewure

回答

1

您应该先看documentation。可以使用的循环是forwhile循环。

您可以尝试使用for循环。

你的代码有点不清楚,因此我不知道你是否需要在你的项目的代码中保留你的函数。不过,下面是一个稍微相关的简单的例子,(虽然它不使用你的功能,但可以很容易地修改,包括他们)

import time 

lapping = raw_input("How many laps do you want to do?") 

for i in range (lapping):  # The for loop repeats the following block of code 
    start = time.time() 

    print "You are on lap number %s" % (i) 

    ## can add more detailed code here for your specific application 

    end = time.time() 
    elapsed = end - start 

    print "Lap time: %s" % (elapsed) 
+0

这很有帮助。我能够修改它,但是当我运行它时,它会显示相同的圈数。它要求圈数做,然后说你在所有圈数的第8圈,然后显示计算所需的时间,而不是询问何时停止。我能够解决时间问题,但我不知道如何让数字从1开始,然后以输入的数字结束。谢谢你的回答,所以它对我有很大的帮助。 –

1

我想你想达到这样的事:

import time 

while True: 
    starting = raw_input("start? (s to start)") 
    if starting == "s": 
     start = time.time() 
     ending = raw_input("end? (e to end)") 
    if ending == "e": 
     break 

但是,很显然,你错过了一些关于如何在python中实现控制流的基本知识。请首先阅读https://docs.python.org/2/tutorial/controlflow.html