diff --git a/assignment-1.py b/assignment-1.py index fabe04b..834f9bf 100644 --- a/assignment-1.py +++ b/assignment-1.py @@ -1,117 +1,117 @@ -# DSL Assignment - 1 +''' +Problem Statement: In second year computer engineering class, group A student’s play cricket, group B students play badminton and group C students play football. +Write a Python program using functions to compute following: +a) List of students who play both cricket and badminton +b) List of students who play either cricket or badminton but not both +c) Number of students who play neither cricket nor badminton +d) Number of students who play cricket and football but not badminton. +(Note- While realising the group, duplicate entries should be avoided, Do not use SET built-in functions) -# List of players +Code from Data Structure Lab (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-codes/DSL +''' -cricket_players=[] -badminton_players=[] -football_players=[] +# BEGINNING OF CODE +# List to store players +cricketPlayers = [] +badmintonPlayers = [] +footballPlayers = [] -# Input values +# Input cricket +def cricketInput(): + total = int(input("Total number of CRICKET players:\t")) + for i in range(total): + players = int(input(f"Roll number of player {i+1}:\t")) + cricketPlayers.append(players) + print(f"\n----------\nStudents playing cricket:\t {cricketPlayers}\n----------\n") -## List for cricket players -def cricket_in(): - total=int(input("Total number of students playing cricket: \t")) - for i in range(total): - players=int(input("Enter roll number: \t")) - cricket_players.append(players) - print("Roll numbers of", total, "students playing cricket: \t", cricket_players) -cricket_in() +# Input badminton +def badmintonInput(): + total = int(input("Total number of BADMINTON players:\t")) + for i in range(total): + players = int(input(f"Roll number of player {i+1}:\t")) + badmintonPlayers.append(players) + print(f"\n----------\nStudents playing badminton:\t {badmintonPlayers}\n----------\n") -## List for badminton players -def badminton_in(): - total=int(input("Total number of students playing badminton: \t")) - for i in range(total): - players=int(input("Enter roll number: \t")) - badminton_players.append(players) - print("Roll numbers of", total, "students playing badminton: \t", badminton_players) -badminton_in() +# Input football +def footballInput(): + total = int(input("Total number of FOOTBALL players:\t")) + for i in range(total): + players = int(input(f"Roll number of player {i+1}:\t")) + footballPlayers.append(players) + print(f"\n----------\nStudents playing football:\t {footballPlayers}\n----------\n") -## List for football players -def football_in(): - total=int(input("Total number of students playing football: \t")) - for i in range(total): - players=int(input("Enter roll number: \t")) - football_players.append(players) - print("Roll numbers of", total, "students playing football: \t", football_players) -football_in() +# Playing both cricket and badminton +def CricketAndBadminton(): + listCricketAndBadminton = [] + for i in cricketPlayers: + if i in badmintonPlayers: + listCricketAndBadminton.append(i) + print(f"\n----------\nStudents playing cricket and badminton:\t {listCricketAndBadminton}\n----------\n") -# List of students playing cricket+badminton +# Either cricket or badminton but not both +def CricketOrBadminton(): + listCricketOrBadminton = [] + for i in cricketPlayers: + if i not in badmintonPlayers: + listCricketOrBadminton.append(i) + for i in badmintonPlayers: + if i not in cricketPlayers: + listCricketOrBadminton.append(i) + print(f"\n----------\nStudents playing cricket or badminton (but not both):\t {listCricketOrBadminton}\n----------\n") -cricket_and_badminton=[] +# Neither cricket nor badminton, i.e. football only +def FootballOnly(): + listCricketAndBadminton = [] + listFootballOnly = [] + for i in cricketPlayers: + listCricketAndBadminton.append(i) + for i in badmintonPlayers: + if i not in cricketPlayers: + listCricketAndBadminton.append(i) + for i in footballPlayers: + if i not in listCricketAndBadminton: + listFootballOnly.append(i) + print(f"\n----------\nTotal students playing football only are:\t{len(listFootballOnly)}\nList:\t{listFootballOnly}\n----------\n") -def cricket_and_badminton_fn(): - for i in cricket_players: - if i in badminton_players: - cricket_and_badminton.append(i) - print("Roll numbers of students playing cricket and badminton are: \t", cricket_and_badminton) +# Cricket and football but not badminton +def notBadminton(): + listNotBadminton = [] + for i in cricketPlayers: + if i in footballPlayers: + if i not in badmintonPlayers: + listNotBadminton.append(i) + print(f"\n----------\nTotal students not playing badminton (but do play cricket and football):\t{len(listNotBadminton)}\nList:\t{listNotBadminton}\n----------\n") -# List of students playing either cricket or badminton but not both - -cricket_or_badminton=[] - -def cricket_or_badminton_fn(): - for i in cricket_players: - if i not in badminton_players: - cricket_or_badminton.append(i) - for i in badminton_players: - if i not in cricket_players: - cricket_or_badminton.append(i) - print("Roll numbers of students playing either cricket or badminton are: \t", cricket_or_badminton) - -# Number of students playing neither cricket nor badminton - -football_only=[] -football_only_1=[] - -def football_only_fn(): - for i in cricket_players: - football_only.append(i) - for i in badminton_players: - if i not in cricket_players: - football_only.append(i) - for i in football_players: - if i not in football_only: - football_only_1.append(i) - print("Number of students playing neither cricket nor badminton: \t", len(football_only_1), "\n Roll numbers are:\t", football_only_1) - -# Number of students playing cricket and football but not badminton - -not_badminton=[] - -def not_badminton_fn(): - for i in badminton_players: - if i not in cricket_players: - not_badminton.append(i) - for i in badminton_players: - if i not in football_players: - not_badminton.append(i) - print("Number of students playing cricket and football but not badminton: \t", len(not_badminton), "\n Roll numbers are:\t", not_badminton) - -# Choosing an option -def choose_optn(): - while True: - print("Choose an operation to perform:") - print("1. List of students playing cricket and badminton both") - print("2. List of students playing either cricket or badminton") - print("3. List of students playing neither cricket nor badminton") - print("4. List of students playing cricket and football but not badminton") - print("5. Exit") - optn=int(input("Enter option number (1-5): \t")) - if optn==1: - cricket_and_badminton_fn() - if optn==2: - cricket_or_badminton_fn() - if optn==3: - football_only_fn() - if optn==4: - not_badminton_fn() - if optn==5: - print("## DESIGNED AND ENGINEERED BY KSHITIJ\n## END OF CODE") +# Main function with options +def main(): + print("----- ENTER ROLL NUMBERS IN LIST -----") + cricketInput() + badmintonInput() + footballInput() + print("----- ROLL NUMBERS SAVED -----\n") + while (1): + print("\n----- MAIN MENU -----") + print("1 -> Students playing both cricket and badminton") + print("2 -> Students playing either cricket or badminton, but not both") + print("3 -> Students playing neither cricket nor badminton (i.e. football only)") + print("4 -> Students playing cricket and football, but not badminton") + print("5 -> Exit") + + optn = int(input("Choose an option (1-5):\t")) + + if (optn == 1): + CricketAndBadminton() + elif (optn == 2): + CricketOrBadminton() + elif (optn == 3): + FootballOnly() + elif (optn == 4): + notBadminton() + elif (optn ==5): + print("\n\n## END OF CODE\n\n") quit() else: - print("\nPlease choose a valid option.\n") - choose_optn() -choose_optn() - -## END OF CODE + print("\n\nPlease choose a valid option (1-5)\n\n") +main() +# END OF CODE