我正在尝试创建一个列表,显示一组选项以对列表进行更改。 但它没有用,有人可以告诉我它有什么问题。
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"
答案 0 :(得分:4)
几件事
input
在python 2.x中很危险,请尝试使用raw_input
输入将评估给出的任何内容,即使import os;os.deltree("C:");
不要尝试这样做,这将允许恶意用户在运行软件的系统上执行他们想要的任何内容
答案 1 :(得分:1)
这是我在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
答案 2 :(得分:0)
修正并注释,它们主要是语法错误。
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