gpt4 book ai didi

python - 如何检测Python程序中是否未给出输入

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:32 25 4
gpt4 key购买 nike

我有一个 python 程序,它提示用户输入位置或索引,并根据位置或索引删除列表中的元素。 python 程序可以工作,但我遇到了以下问题:如果没有给出用户输入,它会自动删除列表中的整行。

示例:

lst = [1,2,3,4,5]
enter position: 2

output: [1,2,4,5]

enter position: #user just pressed enter without giving any input

output: []

我正在一个类中编写该函数,其中:

def delete(self,index):
"""
This function deletes an item based on the index
:param self: the array
:param index: the index of an item in the array
:return: the array is updated
:raises: IndexError if out of range
"""
if not index:
self.__init__()
if index<0:
index = index + self.count
for i in range(index, self.count -1):
self._array[i] = self._array[i+1]
self.count-=1

提示用户输入是这样的:

position = int(input("Enter position:"))

由于位置只接收整数,因此不可能只按“输入”而不收到错误,因此我正在寻找一种方法,如果用户没有给出任何位置,它会注册它并只打印一个空的位置列表而不是错误消息。

最佳答案

您正在寻找的是 try- except block 。请参阅以下示例:

input_invalid = true
while input_invalid:
user_input = input("Enter position: ")
try:
user_input = int(user_input)
input_invalid = false
except ValueError:
print("Please enter a valid integer!")

这里,try- except block 捕获任何错误(指定类型)in except) 在代码块内抛出。在这种情况下,错误是由于尝试对不包含整数的字符串调用 int() (ValueError) 造成的。您可以使用它来显式防止错误并控制程序的逻辑流程,如上所示。

不使用 try- except 的替代解决方案是使用 .isdigit() 方法预先验证数据。如果您要使用 .isdigit() (我个人认为更好),您的代码将如下所示:

input_invalid = true
while input_invalid:
user_input = input("Enter position: ")
if user_input.isdigit():
input_invalid = false
else:
print("Please enter a valid integer!")

希望这有帮助!

关于python - 如何检测Python程序中是否未给出输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260026/

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