2016-06-06 4 views
0

В настоящее время я завершаю программу, которая генерирует демографическую модель. Программа должна повториться, поэтому, когда вы делаете один вариант, она должна вернуться в меню.Как использовать while, чтобы повторить программу

Я пробовал различные решения для решения этой проблемы, таких как создание функции для меню (однако функции ограничивают вас от глобальных переменных)

Я также попытался создать то время цикла, который выглядит примерно так:

import csv 
import time 
time.sleep(1) 
menu = True 
while menu: 
    print ("1. Set the Generation 0 values") 
    print ("2. Display the Generation 0 values") 
    print ("3. Run the model") 
    print ("4. Export data") 
    print ("5. Exit") 

но придумать, как это:

1. Set the Generation 0 values 
2. Display the Generation 0 values 
3. Run the model 
4. Export data 
5. Exit 
1. Set the Generation 0 values 
2. Display the Generation 0 values 
3. Run the model 
4. Export data 
5. Exit 

он придумывает, как это повторяемость!

Итак, главный вопрос: как я могу повторить меню, я знаю, что использование цикла while помогает, но как я могу остановить его от повторения?

ответ

0

Вам нужно что-то в цикле, которое установит menu в False. В противном случае - это бесконечный цикл, поэтому, конечно, просто продолжайте повторять меню.

Что-то вроде:

while menu: 
    print ("1. Set the Generation 0 values") 
    print ("2. Display the Generation 0 values") 
    print ("3. Run the model") 
    print ("4. Export data") 
    print ("5. Exit") 
    choice = input("Please select your choice (1-5)") 

    if choice == '1': 
     pass #replace by code for choice 1 
    elif choice == '2': 
     pass #replace by code for choice 2 
    elif choice == '3': 
     pass #replace by code for choice 3 
    elif choice == '4': 
     pass #replace by code for choice 4 
    else: 
     menu = False #anything other than 1-4 breaks out of loop 

В комментариях я сказал что-то вроде «заменить кодом для выбора 3». Если рассматриваемый код содержит более 1 или 2 строк, он должен быть абстрагирован до функции, так что в приведенном выше коде вы могли бы просто иметь простые вызовы функций для разных случаев.

Смежные вопросы