2017-11-28 7 views
0

그래서 할당은 실행 날짜, 실행 한 시간 및 실행 한 마일 수를 저장하는 튜플 목록을 작성하는 것입니다. 프로그램은 사용자가 "완료"를 입력 할 때까지 실행 시간에 대한 정보를 입력하도록 사용자에게 계속 요청해야합니다. 출력은 'run_data'라는 목록에 저장된 모든 튜플이어야합니다.튜플을 저장하고 사용자가 '완료'를 입력 할 때까지 더 많은 값을 입력하도록 계속 요청하는 방법은 무엇입니까?

def data(date, time, distance): 

    list1 = [(date, time, distance)] 
    done = False 
    while input == done: 
     run_data = list1.append((date, time, distance)) 
def main(): 

    d = input('input the date of your run in the form mmdd: ') 
    t = input('input how long your run was in minutes: ') 
    m = input('input the distance you ran in miles: ') 

    running = data(d, t, m) 
    print(running) 
main() 

그것을 입력에 올 때 나는 오류가 없지만, 거리를 요구 한 후, 그것은 아무것도 출력하지 : 여기 내가 가진 것입니다. 나는 그것이 왜 출력되고 있는지 그리고 내가 어디로 잘못되었는지에 관해서 혼란 스럽다. 나는 파이썬을 사용하는 초보자이기 때문에 어떤 도움을 주시면 감사하겠습니다. 감사!

+0

'data' 함수는 값을 반환하지 않으므로'running'은'none'으로 설정됩니다. 그리고 while 입력 ... 루프 논리가 이상하게 보입니다.주의 깊게 읽는 것이 좋습니다. –

+0

'input'은 호출 될 때만 작동합니다 (뒤에 괄호가 추가됩니다). 그래서 while while input == done :'은 유용하지 않습니다. –

답변

1

이것 좀보세요. "done"이 될 때까지 루프를 메인에 놓습니다.

def data(date, time, distance): 
    return (date, time, distance) 


def main(tList): 
    while true: 
     d = input('input the date of your run in the form mmdd: ') 
     if d == 'done': 
      break 
     t = input('input how long your run was in minutes: ') 
     m = input('input the distance you ran in miles: ') 
     tList.append(data(d, t, m)) 


timeList = [] 
main(timeList) 
print(timeList) 
0

얻으려면 입력을 지속적으로 당신은 주로 작성할 수 있습니다

list1 = [] 
while True: 
     d = input('input the date of your run in the form mmdd: ') 
     t = input('input how long your run was in minutes: ') 
     m = input('input the distance you ran in miles: ') 

     list1.append((d, t, m)) 
     # YOu can ask the user if you want to add more data. 
     print "Would you like to add more data" 
     done = raw_input() 
     if(done == "yes" or "y"): 
      continue 
     else: 
      break 

print list1 

이 방법 당신은 지속적으로 데이터를 목록에 추가하고 마지막으로 목록을 인쇄 할 수 있습니다. 해피 코딩!