Python

улучшить код программы на Pytho

Добрый день
задачи:
1) Создайте список, состоящий из строк.
2) Выведите все элементы списка в таком виде: «ИНДЕКС_ЭЛЕМЕНТА – ЭЛЕМЕНТ;»
3) Попросите пользователя ввести индекс того элемента, значение которого он хочет посмотреть.
4) Выведите значение элемента по индексу, полученному от пользователя.
Примечание: если пользователь ввёл индекс, которого нет, то написать ему об этом так: «Элемента с таким индексом не существует».

Написал так:

users = ["admin", "root", "user1", "boss"]
i = 0
while i < len(users):
print(i, users[i])
i = i + 1
print("Ведите номер элемента который хотите посмотреть:")

a = input()
if (a == "0"):
print("вы выбрали:", users[0])
elif (a == "1"):
print("вы выбрали:", users[1])
elif (a == "2"):
print("вы выбрали:", users[2])
elif (a == "3"):
print("вы выбрали:", users[3])
else:
print("Элемента с таким индексом не найдено")

PS при публикации вопроса - отступы исчезли

все работает как надо, но наверняка есть способ сделать if\elif более короткой строкой.
потому что, если у нас несколько строк в массиве - то не сложно проверить каждую, но если там большой список 100+ - то устать можно будет elif писать
Как сделать, подскажите плз.
Спасибо
a = int(input())

try:
____print(users[a])
except IndexError:
____print(f'Нет элемента с индексом {a}')
Ринат Камаев
Ринат Камаев
22 178
Лучший ответ
Илья Лащенко Спасибо, попробую, но мне кажется это С-синтаксис, фигурные скобки и fперед текстом
Juman Bolotbekov В данной "домашке" не подразумевается использовать исключения. Задача на построение алгоритма и умение пользоваться циклом while и условными операторами при изучении массивов.
Вот - https://pastebin.com/4LRk3VYx
Там всё с объяснениями.
Пожалуйста.
Илья Лащенко Спасибо. А если “for” пока нельзя использовать? Если пока задача сделать используя while или True?
names = ['Alpha', 'Beta', 'Gamma', 'Omega']
while True:
a = int(input('Введите индекс:'))
if a > 3:
print('!Неверный индекс!')
continue
if a <= 3:
print('Индекс:', names[a])

P.S. Надо добавить отступы
Я вот так сделал: (Понимаю, что уже неактуально, но для будущих поколений)

spisok = ['a', 'b', 'c', 'd', 'e']

print('введите индекс того элемента, значение которого хотите посмотреть:')

while True:
i = int(input(''))
if i >= len(spisok):
print('Элемент с таким индексом отсутствует')
continue
else:
print(i,'-', (spisok[i]))
Nurjas Duysenov
Nurjas Duysenov
473
#1
listStr = ['Привет','Мир','Массив','Строк']
#2
i=0
while i<len(listStr):
print(i,'-',listStr[i])
i+=1
#3
index = int(input('Введите индекс элемента - '))
#4
i=0
str1 = 'Нет такого значения с индексом = '
if index >= len(listStr):
print(str1,index)
else:
while i<len(listStr):
if i==index:
print('Значение введенного индекса', index,' = ', listStr[i])
i+=1
Илюс Валиев Третий пункт можно защитить от "дурака"
#3
while True:
inputN = input('Введите индекс элемента - ')
if inputN.isnumeric() == True:
index=int(inputN)
break
else:
print('Нужно ввести число')
continue
spisok = ['a', 'b', 'c', 'd', 'e']
i=0
while i < len(spisok):
print(spisok[i],"-",i)
i = i + 1
print('введите индекс того элемента, значение которого хотите посмотреть:')
while True:
i = int(input(''))
if i >= len(spisok):
print('Элемент с таким индексом отсутствует')
continue
else:
print(i,'-', (spisok[i]))
list = ['apple', 'fruit', 'pen', 'stick', 'tir']
i = int (input ('Введите индекс:' ))
if i < len(list):
print([i],list[i])
else:
print("Элемента с таким индексом не существует")