Перейти к содержанию

Задача №1. Вывод песен из строки

Рекомендации

Перед тем, как приступить к разбору решения, попробуйте решить задачу самостоятельно. Это позволит вам:

  • запомнить основы синтаксиса языка;
  • отработать навык поиска решения проблем в интернете (например, на форумах).

Следует учитывать, что на 99% всех проблем, с которыми вы сталкиваетесь при решении задач по программированию, в интернете уже имеются ответы. Поэтому, важно нарабатывать навык "гугления", то есть самостоятельного поиска решения в сети интернет.

Условие задачи

Внимательно прочтите условие задачи и скопируйте в среду разработки.

# Есть строка с перечислением песен

my_favorite_songs = 'Waste a Moment, Staying\' Alive, A Sorta Fairytale, Start Me Up, New Salvation'

# Выведите на консоль с помощью индексации последовательно: первый трек, последний, второй, второй с конца
# Нельзя переопределять my_favorite_songs и запятая не должна выводиться.

Решение

Вариант решения 1

Воспользуемся индексацией строки и выведем первый трек. Сложно считать индексы в ручную.

print(my_favorite_songs[0:14])
Вариант решения 2

Попробуем найти для первой песни индекс запятой, которая разделяет песни. Используем методы find и rfind. Тем не менее, найти запятые для первой и последней песней не составит труда, но как быть с песнями в середине строки.

# Первая песня
print(my_favorite_songs[:my_favorite_songs.find(',')])
# Последняя песня
print(my_favorite_songs[my_favorite_songs.rfind(','):])
Вариант решения 3

Воспользуемся другим методом строк – split, который позволяет разделить строку по символам и превратить ее в список.

# разделить строку по запятой
song_list = my_favorite_songs.split(', ')
print(song_list) # ['Waste a Moment', " Staying' Alive", ' A Sorta Fairytale', ' Start Me Up', ' New Salvation']

# тип данных song_list
print(type(song_list)) # <class 'list'>
# длина song_list
print(len(song_list)) # 5

print(song_list[0])  # первая песня
print(song_list[-1]) # последняя песня
print(song_list[1])  # вторая песня 
print(song_list[-2]) # предпоследняя песня