gpt4 book ai didi

python - 如何向 while 循环添加 ValueError 异常?

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:21 26 4
gpt4 key购买 nike

我目前对学习 Python 还很陌生,必须完成一项作业,该作业要求我们创建一个程序,允许用户执行多项操作,其中之一是他们可以在列表中输入任意数量的数字,然后进行冒泡排序。我们不允许使用内置的排序函数或类似的函数。我想向我的代码/特别是我的函数添加一个异常(exception),该函数将输入的数字附加到列表中,这样如果用户输入整数以外的任何字符,我的程序不会中断,而是会弹出我自己的错误消息。我通常知道如何使用 while 循环和 try/exception 来执行此操作,但是我不确定在何处以及如何将其添加到我的代码中,因为无论哪种方式都会出现问题。

我尝试在整个函数的不同位置添加一个带有 try/exception 的 while 循环,但是发生了以下两种情况之一:我的列表没有更新。当用户输入数字时,程序应该打印用户输入的数字,并允许他们继续输入数字,直到输入“排序”,但是当我输入数字时添加 try/exception没有任何反应,或者我的程序打印“不需要交换”并且不再要求任何更多的数字。发生的另一件事是我收到以下错误: TypeError: object of type 'NoneType' has no len() 引用我的 BubbleSort() 函数不知道,这超出了我的想象。以下是将输入的数字附加到列表的函数:

def AppendList():
numberList = []
while True:
newNumbers = input("Please enter a number to add to the list. To begin "
"sorting your list, type 'sort'.\n ")
if newNumbers == "sort":
break
numberList.append(int(newNumbers))
print("This is how the list currently looks: " + str(numberList) + ",")
return numberList

TLDR;我希望我的程序允许用户在列表中输入数字。每次用户输入数字时,我的程序都应该说“这就是列表当前的样子...”,直到他们在控制台中输入“排序”。如果用户输入的字符不是数字,我希望弹出我自己的错误而不是程序中断。

这是整个程序本身的文本文件:https://pastebin.com/wkwmK49Q

最佳答案

在将其转换为整数的点周围包裹一个 try-except:

def AppendList():
numberList = []
while True:
newNumbers = input("Please enter a number to add to the list. To begin sorting your list, type 'sort'.\n ")
if newNumbers == "sort":
break
try:
numberList.append(int(newNumbers))
except ValueError:
print("Your error message")
print("This is how the list currently looks: " + str(numberList) + ",")
return numberList

关于python - 如何向 while 循环添加 ValueError 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54755806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com