To jest mój kod:

from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
import re
import time

print('MAIN MENU')
print('1. Plot Graph A')
print('2. Plot Graph B')
print('3. Plot Graph C')
print('4. History')
print('5. Exit/Quit')

choice=raw_input('Please choose an option')
if choice == '1':
   import plotA
elif choice == '2':
   import plotB
elif choice == '3':
   import plotC
elif choice == '4':
   import history
elif choice == '5':
   exit()
elif choice!='':
   print('Try Again')

Więc kiedy uruchomię moduł, mogę wejść do wyboru, np. Wchodzę do "4", kiedy się skończy, powinieneś ponownie wpisać swoje wybory, ale nie może

Wiem, że nie możesz go po prostu zaimportować, ale nie znam innego sposobu robienia tego

Z góry dziękuję:)

0
user3926620 13 sierpień 2014, 11:37

3 odpowiedzi

Najlepsza odpowiedź

Może chcesz tego?

from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
import re
import time


def get_choice():
    print('MAIN MENU')
    print('1. Plot Graph A')
    print('2. Plot Graph B')
    print('3. Plot Graph C')
    print('4. History')
    print('5. Exit/Quit')

    choice = raw_input('Please choose an option: ')
    if choice == '1':
        import plotA
    elif choice == '2':
        import plotB
    elif choice == '3':
        import plotC
    elif choice == '4':
        import history
    elif choice == '5':
        exit()
    else:
        print('Try Again')
        get_choice()


if __name__ == '__main__':
    get_choice()

Możesz zadzwonić z dowolnego miejsca. przykład:

elif choice == '4':
    import history
    get_choice()

Jeśli nie chcesz korzystać z funkcji rekurencyjnej;

from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import numpy as np
import re
import time


def get_choice():
    print('MAIN MENU')
    print('1. Plot Graph A')
    print('2. Plot Graph B')
    print('3. Plot Graph C')
    print('4. History')
    print('5. Exit/Quit')

    choice = raw_input('Please choose an option: ')
    if choice == '1':
        import plotA
    elif choice == '2':
        import plotB
    elif choice == '3':
        import plotC
    elif choice == '4':
        import history
    elif choice == '5':
        exit()
    else:
        print('Try Again')
        return False
    return True


if __name__ == '__main__':
    while True:
        if get_choice() is True:
            break
-1
mccakici 13 sierpień 2014, 08:47

Jeśli chcesz ponownie iterować opcje, możesz użyć a podczas gdy pętla:

while True:
    choice=raw_input('Please choose an option')
    if choice == '1':
       import plotA
    elif choice == '2':
       import plotB
    elif choice == '3':
       import plotC
    elif choice == '4':
       import history
    elif choice == '5':
       exit() # or just break
    elif choice!='':
       print('Try Again')
2
Ashoka Lella 13 sierpień 2014, 07:41

Odpowiedź Ashoka Lella jest w porządku, ale nie zapomnij o break.

while True:
    choice=raw_input('Please choose an option')
    if choice == '1':
       import plotA
       break
    elif choice == '2':
       import plotB
       break
    elif choice == '3':
       import plotC
       break
    elif choice == '4':
       import history
       break
    elif choice == '5':
       exit() # or just break
    elif choice!='':
       print('Try Again')
1
Community 23 maj 2017, 10:26