python - 如何使 "ValueError"异常替换列表中的项目

标签 python python-3.x exception exception-handling

我正在尝试编写一段代码,它将遍历数字列表(在垂直条上拆分),如果用户输入非数字,将抛出异常并将所述对象替换为 0。它旨在按降序(从大到小)显示列表,中间有竖线。 这是我目前的代码,但我无法让它工作。

    numbers = input("Please enter several integer numbers separated by 
    vertical bars. ").split('|')
    for item in numbers:
        try:
            numbers = [int(item) for item in numbers]
        except ValueError:
            item = item.replace(item,'0')
    numbers = sorted(numbers, reverse = True)
    print(' | '.join(str(num) for num in numbers))

最佳答案

numbers = input("Please enter several integer numbers separated by vertical bars. ")
numbers = numbers.split('|')
temp = []
for item in numbers:
    try:
        temp.append(int(item))
    except ValueError:
        temp.append(0)
numbers = temp

请注意,我们在迭代时不会更改 numbers。完成相同任务的另一种方法是类似

def eval_number(s):
    try:
        return int(s)
    except ValueError:
        return 0

numbers = input("Please enter several integer numbers separated by vertical bars. ")
numbers = numbers.split('|')
numbers = list(map(eval_number, numbers))

关于python - 如何使 "ValueError"异常替换列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47544163/

相关文章:

java - 访问 FrameLayout 时出现运行时异常

python - Celery:发送任务时忽略交换名称

python - 传入文件的正则表达式语句

python - 如何在python中为linux设置复杂的环境变量?

python flask 在 '__main__' 中找不到 '' 模块

c# - 位图克隆问题

python - 使用服务器操作运行 python 代码时出错

python - 值错误 : need more than 1 value to unpack

python - Python 中的时间(以毫秒为单位)

java - 返回REST API的漂亮错误JSON