2016-03-26 12 views
0

Birden çok işlev listesinden oluşan bir komut dizim var ve listenin her bir ucunda, komut dosyasının başına dönüp başka bir liste seçmeme izin verecek bir geri işlevi koymak istiyorum. örneğin:Python'da betiğin tepesine nasıl dönebilirim?

list = ("1. List of all users", 
    "2. List of all groups", 
    "3. Reset password", 
    "4. Create new user", 
    "5. Create new group", 
    "6. List all kernel drivers", 
    "7. List all mounts", 
    "8. Mount a folder", 
    "9. Exit") 
for i in list: 
    print(i) 

Ve eğer ben 1 seçip başka listesi açılır:

list = "1) Show user Groups \n2) Show user ID \n3) Show user aliases \n4) Add new aliases \n5) Change password \n6) Back" 
print 
print list 

Daha spesifik bir örnek.

+0

Bir çeşit döngü kullanın. Bunu nasıl yapacağınızı buradan öğrenebilirsiniz: http://www.tutorialspoint.com/python/python_while_loop.htm –

cevap

0

Kullanıcı açık bir şekilde programdan çıkmayana kadar bir süre döngü kullanabilirsiniz.

import os 



def show_users(): 
    print("1) show group user") 
    print("2) go back") 

    i = int(input()) 
    if i==1: 
     pass # do something 
    elif i==2: 
     show_list() 

def show_list(): 
    print("1) list of all users") 
    print("2) exit") 
    i = int(input()) 

    if i ==1: 
     show_users() 
    elif i==2: 
     exit(0) 


while True: 
    show_list() 
0

Bir süre döngü içinde bu yapabileceğini, sadece ilk soruya cevap 4 kadar bu seçenekler arasında çalışmasını sağlar. Her şeyi daha karmaşık hale getirmek için bir yerde bir başka yere yerleştirebilirsiniz.

keepGoing = True 
while keepGoing: 
    choice1 = raw_input('first answer') 
    if choice1 == '1': 
    choice2 = raw_input('second answer') 
    if choice2 == '1': 
     print('1 again') 
    else: 
     print('something different') 
    if choice1 == '2': 
    print('two') 
    if choice1 == 3: 
    print('three') 
    if choice1 == 4: 
    keepGoing = False 
İlgili konular