我如何编写一个代码,将用户输入形成一个数组,并从该数组中用户决定我们应该找到最小或最大的值?



我需要创建一个使用循环的代码来请求用户输入某些值。在这些值中,我需要询问用户是想让我找到最小的还是最大的,还是直接结束程序。如果在程序中输入数字-1000,则程序结束。基本上,我如何将我的选项菜单链接到每个选项的实际操作。以下是我目前所掌握的信息。

numbersEntered = []
lengthNumbers = int(input("Please enter the length of your list/array:"))
print("Please enter your numbers individually:")
for x in range(lengthNumbers):
data=int(input())
numbersEntered.append(data)
def menu():
print("[A] Smallest")
print("[B] Largest")
print("[C] Quit")
menu()
Options=float(input(f"Please select either option A,B,or C:"))
optionA = min(numbersEntered)
optionB = max(numbersEntered)
optionC = quit
while numbersEntered != C:
if numbersEntered == A:
print("The smallest number is:", min(numbersEntered))
elif numbersEntered == B:
print("The largest number is:", max(numbersEntered) )
elif numbersEntered ==-1000:
print("Quit")

我尝试了一个while循环来连接菜单到说的动作,但没有工作,我不知道为什么。我是一个初级程序员,所以我对这些东西很陌生。

你的while循环不正确。正确的方法是接收用户输入的字符串并采取相应的操作。下面是一个工作示例:

numbersEntered = []
lengthNumbers = int(input("Please enter the length of your list/array: "))
print("Please enter your numbers individually: ")
for x in range(lengthNumbers):
data = int(input())
if data == -1000:
print("-1000 received, exiting")
exit()
numbersEntered.append(data)

def menu():
print("[A] Smallest")
print("[B] Largest")
print("[C] Quit")

menu()
while True:
option = input("Please select either option A,B,or C: ")
if option == "A":
print("The smallest number is:", min(numbersEntered))
elif option == "B":
print("The largest number is:", max(numbersEntered))
elif option == "C":
print("Quit")
break

你很接近了,但是…

  • 程序并没有真正退出并绕过剩余的

    输入-1000时的程序。
  • 输入函数正在被转换为float类型而不是a字符串'A', 'B',或'C'.

  • while循环和底层if语句的类型有问题和值进行比较,如果输入'C'则不退出。

这是固定代码的通行证…有很多方法可以解决这个问题。你很接近,所以我添加了额外的注释,我希望能帮助你与流程和解决你的下一个编程难题。


numbersEntered = []
# moved functions outside program flow
def menu():
print("[A] Smallest")
print("[B] Largest")
print("[C] Quit")
#############################################
# program logic starts here.  
# You could put all this in a main() function
#############################################
while True:
lengthNumbers = int(input("Please enter the length of your list/array:"))
print("Please enter your numbers individually:")

for x in range(lengthNumbers):
data=int(input())
numbersEntered.append(data)
if (data == -1000):
break
# exit loop if -1000 or all elements have been entered
break

# removed the OptionA, B, C and values as they aren't necessary
# changed the while condition to skip if the user chose to exit in the 
#  input section
while numbersEntered[-1] != -1000:
# moved the menu and input inside the while loop to repeat the menu
menu()
# changed input from float to str and convert to uppercase
Options=str(input(f"Please select either option A,B,or C:")).upper()
# compare to strings ('A', 'B', or 'C') vs value of A, B, or C
if Options == 'A':
print("The smallest number is:", min(numbersEntered))
elif Options == 'B':
print("The largest number is:", max(numbersEntered) )
# check for 'C' input from user to break out of the while loop
elif Options == 'C':
break
# move the exit/quit message to the end of the program
print('Exited Program')

最新更新