我对Python非常陌生,所以我提前致歉!我正在尝试创建一个列表,用户可以选择添加数字,显示平均数,显示中位数,按顺序打印列表,按相反顺序打印列表或退出。我以为我在正确的轨道上,但我不能让它运行。谁能帮我?Python中的菜单列表
def main():
myList = [ ]
addOne(myList)
choice = displayMenu()
while choice != '6':
if choice == '1':
addOne(myList)
elif choice == '2':
mean(myList)
elif choice == '3':
median(myList)
elif choice == '4':
print(myList)
elif choice == '5':
print(myList)
choice = displayMenu()
print ("\nThanks for playing!\n\n")
def displayMenu():
myChoice = '0'
while myChoice != '1' and myChoice != '2' \
and myChoice != '3' \
and myChoice != '4' and myChoice != '5':
print("""\n\nPlease choose
1. Add a number to the list/array
2. Display the mean
3. Display the median
4. Print the list/array to the screen
5. Print the list/array in reverse order
6. Quit
""")
myChoice = input("Enter option---> ")
if myChoice != '1' and myChoice != '2' and \
myChoice != '3' and myChoice != '4' and myChoice != '5':
print("Invalid option. Please select again.")
return myChoice
#This should make sure that the user puts in a correct input
def getNum():
num = -1
while num < 0:
num = int(input("\n\nEnter a non-negative integer: "))
if num < 0:
print("Invalid value. Please re-enter.")
return num
#This is to take care of number one on the list: Add number
def addOne(theList):
while True:
try:
num = (int(input("Give me a number:")))
num = int(num)
if num < 0:
raise exception
print("Thank you!")
break
except:
print("Invalid. Try again...")
theList.append(num)
#This should take care of the second on the list: Mean
def mean(theList):
myList = []
listSum = sum(myList)
listLength = len(myList)
listMean = listSum/listLength
print("The mean is", listMean)
#This will take care of number three on the list: Median
def median(theList):
myList = []
return myList.median(theList.array(myList))
print("The median is", listMedian)
#This will take care of the fourth thing on the list: Print the list
def sort(theList):
theList.sort()
print(theList)
#This will take care of the fifth thing on the list
def reversesort(theList):
theList.sort(reverse=True)
print(theList)
main()
当我尽量选择选项2它给了我:
Traceback (most recent call last):
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 94, in <module>
main()
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 12, in main
mean(myList)
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 73, in mean
listMean = listSum/listLength
ZeroDivisionError: division by zero
当我尝试运行第三个选项它给了我:
Traceback (most recent call last):
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 94, in <module>
main()
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 14, in main
median(myList)
File "/Users/Gunter/Documents/CS 110/List and Traversal and Exception Handling.py", line 79, in median
return myList.median(theList.array(myList))
AttributeError: 'list' object has no attribute 'median'
你需要比“我无法让它运行”更具体。 –
我试过复制/粘贴这个,还有一些未定义的东西。你有什么问题?这应该是一个独立的例子吗? – roganjosh
如果我尝试选择计算平均值或计算平均值的选项,它会爆炸。如果我尝试选择该选项,则按顺序或反向打印列表,只显示一个空集。 –