I. Без комментариев

Мы надеемся, вы пишите комментарии к своему коду. Если так, то интерпретатор удаляет их перед тем, как выполнить код. Напишите программу, которая выполняет данную функцию за интерпретатор.

Формат ввода

Вводятся строки программы.
Признаком остановки является пустая строка.

Формат вывода:

Каждую строку нужно очистить от комментариев.
А если комментарий — вся строка, то выводить её не надо.

Пример

Ввод

# Моя первая супер-пупер программа
print("What is your name?") #  Как тебя зовут?
name = input() #  Сохраняем имя
print(f"Hello, {name}!") #  Здороваемся# Конец моей супер-пупер программы

Вывод

print("What is your name?")
name = input()
print(f"Hello, {name}!")

Ввод

# Мой первый цикл
for i in range(10): # Считаем до 10
    print(i) # выводим число

Вывод

for i in range(10):
    print(i)

Решение

В целом, простая задача. Перебираем строки, ищем знак комментария #. Если нашли в первой позиции, то строку пропускаем, если нашли в любой другой – обрезаем до знака # и выводим. Если не нашли, тоже выводим.

Второй вариант чистит код от комментариев более аккуратно, но для прохождения тестов, достаточно первого.

Посмотреть код

Решение

Python
# простой код

while string := input():
    if not (pos := string.find('#')) + 1:
        print(string)
    elif string[:pos]:
        print(string[:pos])

Решение

Python
# более корректный код. 
# обрезаются пустые символы в конце строки.
# если в строке кроме комментария ничего не было, а комментарий начинался не с первого символа, то строка все равно игнорируется.

while string := input():
    if not (pos := string.find('#')) + 1:
        print(string)
    elif string[:pos].strip():
        print(string[:pos].rstrip())
Подписаться
Уведомить о
guest
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
ddd
ddd
23.02.2024 16:05

Вы чего то мудрите

while text := input():
if text[0] == ‘#’:
continue
if ‘#’ in text:
n = text.index(‘#’)
new_text = text[:n]
print(new_text)
else:
print(text)

lll
lll
Ответить на  Сергей Клочко
19.10.2024 20:25

Поясните тогда, пожалуйста, еще и за строку elif string[:pos].strip():
То есть elif – это условный оператор, в который нужно загонять условие. Как в таком случае “перевести на житейский” данную строку для понимания?