Оцените мой код
Всем привет, вчера я скачал python. Попробовал написать создание простого списка с вводом данных от пользователя. При указании длины списка проверяется, чтобы вводилось только положительное число без букв и др. символов. Прошу подсказать, можно ли его как-то причесать и упростить? Вот так получилось:
a = None
print("\nЗапущен алгоритм составления списка.")
user_input = input("Укажите длину списка: ")
if user_input.isnumeric() == True and int(user_input) > 0:
a = True
else:
while a != True:
if user_input.isnumeric() != True:
user_input = input("\nДля указания длины списка допускаются только числа.\nУкажите
длину списка: ")
elif int(user_input) <= 0:
user_input = input("\nСписок не может быть пустым.\nУкажите длину списка: ")
else: break
user_list = []
print("\nСписок для", user_input, "значений успешно создан!")
for stroke in range (int(user_input)):
stroke += 1
if stroke == 1:
user_list.append(input("Введите первое значение в списке: "))
else:
user_list.append(input("Введите " f'{stroke}' "-е значение в списке: "))
user_input = input("\nДанные внесены в список.\nПоказать содержимое? (Да\Нет): ")
while user_input != "Да" and user_input != "да":
user_input = input('\nТребуется ответ "Да"или "Нет".\nПоказать содержимое?: ')
else:
print("\n", user_list)
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Можно и покомпактнее сделать:
print("\nЗапущен алгоритм составления списка.")
while True:
user_input = input("Укажите длину списка: ")
if user_input.isdigit() and int(user_input) > 0:
break
else:
print("\nДопускаются только положительные числа.")
user_list = []
print(f"\nСписок для {user_input} значений успешно создан!")
for stroke in range(1, int(user_input) + 1):
user_list.append(input(f"Введите {stroke}-е значение в списке: "))
user_input = input("\nДанные внесены в список. Показать содержимое? (Да/Нет): ")
while user_input.lower() not in ["да", "нет"]:
user_input = input('\nТребуется ответ "Да" или "Нет".\nПоказать содержимое?: ')
if user_input.lower() == "да":
print("\n", user_list)