Hướng dẫn display menu function python - chức năng menu hiển thị python

Tôi đang làm việc để làm một menu trong Python cần:

  1. In ra một menu với các tùy chọn được đánh số
  2. Để người dùng nhập tùy chọn được đánh số
  3. Tùy thuộc vào số tùy chọn mà người dùng chọn, hãy chạy một hàm cụ thể cho hành động đó. Hiện tại, chức năng của bạn chỉ có thể in ra rằng nó đang được chạy.
  4. Nếu người dùng nhập vào một cái gì đó không hợp lệ, nó sẽ cho người dùng biết họ đã làm như vậy và phát lại menu
  5. Sử dụng từ điển để lưu trữ các tùy chọn menu, với số lượng tùy chọn làm khóa và văn bản để hiển thị cho tùy chọn đó làm giá trị.
  6. Toàn bộ hệ thống menu sẽ chạy bên trong một vòng lặp và tiếp tục cho phép người dùng đưa ra lựa chọn cho đến khi họ chọn thoát/thoát, tại thời điểm đó chương trình của bạn có thể kết thúc.

Tôi chưa quen với Python và tôi không thể hiểu những gì tôi đã làm sai với mã.

Cho đến nay đây là mã của tôi:

ans=True
while ans:
    print (""""
    1.Add a Student
    2.Delete a Student
    3.Look Up Student Record
    4.Exit/Quit
    """")
    ans=input("What would you like to do?" 
    if ans=="1": 
      print("\nStudent Added") 
    elif ans=="2":
      print("\n Student Deleted") 
    elif ans=="3":
      print("\n Student Record Found") 
    elif ans=="4":
      print("\n Goodbye") 
    elif ans !="":
      print("\n Not Valid Choice Try again") 

Trả lời

Đây là những gì anh ấy muốn rõ ràng:

menu = {}
menu['1']="Add Student." 
menu['2']="Delete Student."
menu['3']="Find Student"
menu['4']="Exit"
while True: 
  options=menu.keys()
  options.sort()
    for entry in options: 
      print entry, menu[entry]

    selection=raw_input("Please Select:") 
    if selection =='1': 
      print "add" 
    elif selection == '2': 
      print "delete"
    elif selection == '3':
      print "find" 
    elif selection == '4': 
      break
    else: 
      print "Unknown Option Selected!" 

ALG

14.4K4 Huy hiệu vàng42 Huy hiệu bạc54 Huy hiệu đồng4 gold badges42 silver badges54 bronze badges

Đã hỏi ngày 13 tháng 11 năm 2013 lúc 21:20Nov 13, 2013 at 21:20

7

def my_add_fn():
   print "SUM:%s"%sum(map(int,raw_input("Enter 2 numbers seperated by a space").split()))

def my_quit_fn():
   raise SystemExit

def invalid():
   print "INVALID CHOICE!"

menu = {"1":("Sum",my_add_fn),
        "2":("Quit",my_quit_fn)
       }
for key in sorted(menu.keys()):
     print key+":" + menu[key][0]

ans = raw_input("Make A Choice")
menu.get(ans,[None,invalid])[1]()

Đã trả lời ngày 13 tháng 11 năm 2013 lúc 21:30Nov 13, 2013 at 21:30

Joran Beasleyjoran BeasleyJoran Beasley

107K12 Huy hiệu vàng150 Huy hiệu bạc175 Huy hiệu đồng12 gold badges150 silver badges175 bronze badges

Chỉ cần có một vài sửa đổi nhỏ cần thiết:

ans=True
while ans:
    print ("""
    1.Add a Student
    2.Delete a Student
    3.Look Up Student Record
    4.Exit/Quit
    """)
    ans=raw_input("What would you like to do? ") 
    if ans=="1": 
      print("\n Student Added") 
    elif ans=="2":
      print("\n Student Deleted") 
    elif ans=="3":
      print("\n Student Record Found") 
    elif ans=="4":
      print("\n Goodbye") 
    elif ans !="":
      print("\n Not Valid Choice Try again") 

Tôi đã thay đổi bốn trích dẫn thành ba (đây là số cần thiết cho báo giá đa dòng), thêm một khung đóng sau "What would you like to do? " và thay đổi đầu vào thành raw_input.

Đã trả lời ngày 13 tháng 11 năm 2013 lúc 21:28Nov 13, 2013 at 21:28

Hướng dẫn display menu function python - chức năng menu hiển thị python

ChrisprosserchrisprosserChrisProsser

12.2k6 Huy hiệu vàng35 Huy hiệu bạc44 Huy hiệu đồng6 gold badges35 silver badges44 bronze badges

Điều này nên làm điều đó. Bạn đã thiếu một ) và bạn chỉ cần """ không phải 4 người trong số họ. Ngoài ra, bạn không cần một Elif ở cuối.

ans=True
while ans:
    print("""
    1.Add a Student
    2.Delete a Student
    3.Look Up Student Record
    4.Exit/Quit
    """)
    ans=raw_input("What would you like to do? ")
    if ans=="1":
      print("\nStudent Added")
    elif ans=="2":
      print("\n Student Deleted")
    elif ans=="3":
      print("\n Student Record Found")
    elif ans=="4":
      print("\n Goodbye") 
      ans = None
    else:
       print("\n Not Valid Choice Try again")

Đã trả lời ngày 13 tháng 11 năm 2013 lúc 21:30Nov 13, 2013 at 21:30

Hướng dẫn display menu function python - chức năng menu hiển thị python

Joran Beasleyjoran Beasleyjramirez

107K12 Huy hiệu vàng150 Huy hiệu bạc175 Huy hiệu đồng7 gold badges32 silver badges46 bronze badges

Chỉ cần có một vài sửa đổi nhỏ cần thiết:

def addstudent():
    print("Student Added.")

Tôi đã thay đổi bốn trích dẫn thành ba (đây là số cần thiết cho báo giá đa dòng), thêm một khung đóng sau "What would you like to do? " và thay đổi đầu vào thành raw_input.

Đã trả lời ngày 13 tháng 11 năm 2013 lúc 21:28

Chrisprosserchrisprosser

my_dict = {key:definition,...}

12.2k6 Huy hiệu vàng35 Huy hiệu bạc44 Huy hiệu đồngNov 13, 2013 at 21:32

Hướng dẫn display menu function python - chức năng menu hiển thị python

Điều này nên làm điều đó. Bạn đã thiếu một ) và bạn chỉ cần """ không phải 4 người trong số họ. Ngoài ra, bạn không cần một Elif ở cuối.Jacqlyn

JRAMIREZJRAMIREZ3 gold badges12 silver badges39 bronze badges