class IBList:
maxlen = 100 # pre-allocated size of list
def __init__(self):
self.r = 0 # current size of list
self.list = [0] * self.maxlen
Как вернуть элемент по индексу r и вернуть строку "ошибка", если r < 0 или r > size - 1 и заменить на элемент e по адресу проиндексировать r и вернуть заменяемый элемент?






Вы можете использовать лен (), чтобы получить длину списка. Также вы можете заменить значения из списка с помощью mylist[index] = new_value.
def my_func(lst, r, e):
if r < 0 or r > len(lst)-1:
return 'error'
else:
lst[r] = e
return lst[r]
lst = [1, 2, 3, 4, 5]
r = 2
e = 22
print(my_func(lst, r, e))
Вот решение, разделяющее вашу проблему на две отдельные функции get_elem и elem_replace:
class IBList:
maxlen = 100 # pre-allocated size of list
def __init__(self):
self.r = 0 # current size of list
self.list = [0] * self.maxlen
def get_elem(self,r):
if r >= 0 and r <= len(self.list)-1:
return self.list[r]
else:
return 'error'
def elem_replace(self,r,e):
elem = self.get_elem(r)
if not elem == 'error':
self.list[r] = e
return elem
else:
return None # Handle this case any way you want.
спасибо, но у меня еще нет метода обучения try-except в моем syallbus, любого способа получить элемент с индексом r и вернуть ошибку в одном коде. Затем замените элемент e на индекс r и верните элемент, который заменяется, и верните строку «ошибка» в другом коде, если r<0 или r>size -1. оба в разных кодах?
@Peter, извините за задержку с ответом, я обновил свой ответ, если вы хотите взглянуть.
Можете ли вы привести пример входных и ожидаемых значений?