创建一个简单的Python菜单

创建一个简单的Python菜单

问题描述:

我试图创建一个显示你一组选项做更改列表清单。 但它不工作谁能告诉我什么是错的吧。创建一个简单的Python菜单

menulist=("1. Print the list", 
     "2. Add a name to the list", 
     "3. Remove a name from the list", 
     "4. Change an item in the list", 
     "9. Quit") 

list=("johny","tom","kim","tim","jim") 

target=input("Pick an item from the menu:") 
while (target in list): 
    if target="1" 
     print list 
    elif target="2" 
     Addname=input("Type in a name to add:") 
     list=list.insert(Addname) 
      print menulist() 
    elif target="3" 
     Removename=input("What name would you like to remove:") 
     list=list.remove(Removename) 
      print menulist() 
    elif target="4" 
     Changename=input(What name would you like to change:") 
     changetoname=input("What is the new name:") 
     list=list.replace('Changename','changetoname') 
      print menulist() 
    elif target="9" 
      print"good bye" 
+1

你有没有开放“在'elif的目标=” 4" '分支 – akluth 2013-04-23 16:59:49

+3

你有各种各样的语法错误,比如没有':'条件语句后,您使用的赋值运算符('= ')当你想比较(''==),等等。你或许应该入门书到Python – 2013-04-23 17:00:16

+1

开始在Python? – 2013-04-23 17:02:19

几件事情

  1. 你的变量命名为列表,而不是一个错误究竟这是不好的形式
  2. 列表确实是一个元组,元组不能改变
  3. list.insert是无效的python
  4. input在python 2.x中是危险的,请尝试raw_input而不是
  5. 目标将永远不会在“清单”为此你将永远不会进入while循环
  6. 几个语法错误

输入将评估任何它被赋予甚至像import os;os.deltree("C:");DONT试试这个!这将允许恶意用户运行软件

+0

代码u能解释4号请@Joran Basley – user2312139 2013-04-23 17:20:57

在系统上执行任何他们想这是我在Python简单的菜单的例子。它是来自这个网站的旧版本的改进版本。

import os 
import msvcrt as m 

# Function for waiting for key press 
def wait(): 
    m.getch() 

# Clear screen before to show menu, cls is MS Windows command 
os.system('cls') 

ans=True 
while ans: 
    print(""" 
    Simple menu: 
    ------------ 

    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") 
     print("\nPress Enter...") 
     wait() 
     os.system('cls') 
    elif ans=="2": 
     print("\nStudent Deleted") 
     print("\nPress Enter...") 
     wait() 
     os.system('cls') 
    elif ans=="3": 
     print("\nStudent Record Found") 
     print("\nPress Enter...") 
     wait() 
     os.system('cls') 
    elif ans=="4": 
     print("\nGoodbye") 
     ans = None 
    else: 
     print("\nNot Valid Choice Try again") 
     print("\nPress Enter...") 
     wait() 
     os.system('cls') 
     ans = True 

修复和评论,他们主要是语法错误。

menulist= '''1. Print the list, 
    2. Add a name to the list, 
    3. Remove a name from the list, 
    4. Change an item in the list, 
    9. Quit''' #assuming you want to display menulist, having it as a tuple is useless 

lst=("johny","tom","kim","tim","jim") #don't use reserved names for variables, may mess up things 

target=raw_input("Pick an item from the menu:") 

if target=="1": #this is an equality operator, whereas = is used to assign a variable (This checks the equality basically) 
    print lst 

elif target=="2": 
    Addname=raw_input("Type in a name to add:") 
    list=list.append(Addname) #use append instead of insert, insert is for a specific position in list 
    print menulist #no parentheses, menulist is not a function; also this doesn't have to be indented 

elif target=="3": 
    Removename=raw_input("What name would you like to remove:") 
    list=list.remove(Removename) 
    print menulist #again, I took the parentheses away 

elif target=="4": 
    Changename=raw_input("What name would you like to change:") #you'd missed the " at the beginning 
    changetoname=raw_input("What is the new name:") 
    list=list.replace(Changename, changetoname) #removed the '. They're the variables, not the strings 'Changename' etc that you want to replace. 
    print menulist 

elif target=="9": 
    print"good bye" #excessive indenting 

else: #this replaces the initial while 
    #do nothing if the initial input is not 1,2,3,4 or 9 
    print menulist