我正在创建n个变量,每当出现错误时,我都会为该变量赋予特定的值.

示例:

a = "abc"
b = 0

def lastnext (word, count):
    last = word[count - 1]
    next = word[count + 1]
   
    return last,next


print(lastnext (a,b))

这样,每当b = (len( a ) - 1)(在本例中是b = 2)时,变量next就会给我IndexError,因为没有word[ 3 ].然后,我想"返回"变量的特定值,例如None.

我想过对每个变量使用tryexcept方法,但我想对于n个变量来说情况会完全不同.

推荐答案

您可以对单词进行切片并使用or作为默认值

def lastnext (word, count):
    return word[count-1:count] or None, word[count+1:count+2] or None

a = 'abc'
for i in range(len(a)):
    print(lastnext(a, i))

输出

(None, 'b')
('a', 'c')
('b', None)

Python相关问答推荐

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

sys.modulesgo 哪儿了?

在for循环中仅执行一次此操作

Python中的函数中是否有充分的理由接受float而不接受int?

有什么方法可以避免使用许多if陈述

如何从FDaGrid实例中删除某些函数?

max_of_three使用First_select、second_select、

Pandas 滚动最接近的价值

需要计算60,000个坐标之间的距离

运行总计基于多列pandas的分组和总和

Python中绕y轴曲线的旋转

所有列的滚动标准差,忽略NaN

Python+线程\TrocessPoolExecutor

Pandas—在数据透视表中占总数的百分比

给定高度约束的旋转角解析求解

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

需要帮助重新调整python fill_between与数据点

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

dask无groupby(ddf. agg([min,max])?''''

在Python中计算连续天数