DSA Python Project – Music Playlist
by DataFlair Team
Program 1
# Music Play list based on Doubly Linked List
class Song: # Node of doubly linked list
def __init__(self, title):
self.prev = None
self.title = title
self.next = None
class MusicPlaylist:
def __init__(self):
self.head = None
self.tail = None
self.current = None
def add_song(self, title):
new_song = Song(title) # Create Node
if self.head==None:
self.head = self.tail = self.current = new_song
else:
self.tail.next = new_song
new_song.prev = self.tail
self.tail = new_song
print(f"Added: {title}")
def delete_current_song(self):
if not self.current:
print("No song to delete.")
return
print(f"Deleting: {self.current.title}")
if self.current.prev!=None:
self.current.prev.next = self.current.next
else:
self.head = self.current.next
if self.current.next!=None:
self.current.next.prev = self.current.prev
else:
self.tail = self.current.prev
temp = self.current
self.current = self.current.next if self.current.next else self.current.prev
del temp
if not self.current:
print("Playlist is now empty.")
else:
print(f"Now playing: {self.current.title}")
def next_song(self):
if self.head==None:
print("\nPlaylist is empty...")
else:
if self.current and self.current.next:
self.current = self.current.next
print(f"Now playing: {self.current.title}")
else:
print("You're at the end of the playlist.")
def prev_song(self):
if self.head==None:
print("\nPlaylist is empty...")
else:
if self.current and self.current.prev:
self.current = self.current.prev
print(f"Now playing: {self.current.title}")
else:
print("You're at the start of the playlist.")
# Show Play List Function
def display_playlist(self):
if self.head==None:
print("\nPlaylist is empty...")
return
print("\nPlaylist:")
temp = self.head
while temp:
if temp == self.current:
print(f"--> {temp.title} [CURRENT SONG]")
else:
print(f" {temp.title}")
temp = temp.next
print()
def clear_playlist(self):
while self.head:
temp = self.head
self.head = self.head.next
del temp
self.tail = self.current = None
def main():
playlist = MusicPlaylist()
while True:
print("\n---------------------Music Playlist--------------------")
print("1. Add Song")
print("2. Delete Current Song")
print("3. Next Song")
print("4. Previous Song")
print("5. Show Playlist")
print("6. Exit")
print("-----------------------------------------------------------")
choice = input("Enter your choice: ")
if choice == '1':
title = input("Enter song title: ")
playlist.add_song(title)
elif choice == '2':
playlist.delete_current_song()
elif choice == '3':
playlist.next_song()
elif choice == '4':
playlist.prev_song()
elif choice == '5':
playlist.display_playlist()
elif choice == '6':
playlist.clear_playlist()
print("Exiting playlist.")
break
else:
print("Invalid choice.")
if __name__ == "__main__":
main()
Tags: dsa pythondsa python programdsa python projectdsa using pythonmusic playlistmusic playlist in dsa using pythonmusic playlist projectmusic playlist project in dsa pythonmusic playlist using dsa python
DataFlair Team
DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.