diff --git a/03/ex1/ft_score_analytics.py b/03/ex1/ft_score_analytics.py index f299658..05cb088 100644 --- a/03/ex1/ft_score_analytics.py +++ b/03/ex1/ft_score_analytics.py @@ -1,14 +1,14 @@ import sys if __name__ == "__main__": - args = sys.argv - if len(args) <= 1: - print("No scores provided. Usage: python3\ + try: + args = sys.argv + if len(args) <= 1: + raise Exception("No scores provided. Usage: python3\ ft_score_analytics.py ...") - else: - scores = [0] * (len(args) - 1) - i = 0 - try: + else: + scores = [0] * (len(args) - 1) + i = 0 while i < len(args) - 1: scores[i] = int(args[i + 1]) i = i + 1 @@ -19,5 +19,7 @@ if __name__ == "__main__": print("High score:", max(scores)) print("Low score:", min(scores)) print("Score range", max(scores) - min(scores)) - except ValueError: - print("Invalid input, only numbers are accepted") + except ValueError: + print("Invalid input, only numbers are accepted") + except Exception as err: + print(err) diff --git a/03/ex2/ft_coordinate_system.py b/03/ex2/ft_coordinate_system.py index bc98910..d0563c8 100644 --- a/03/ex2/ft_coordinate_system.py +++ b/03/ex2/ft_coordinate_system.py @@ -14,16 +14,17 @@ if __name__ == "__main__": try: if len(argv) != 2: raise Exception("Invalid number of args") + print(f'Parsing coordinates: "{argv[1]}"') args = argv[1].split(",") if len(args) != 3: raise Exception( "Invalid argument format." + 'Try like this : "15,64,78"' ) int_args = (int(args[0]), int(args[1]), int(args[2])) - print("Parsing coordinates:", args[1]) + print(f"Parsed position: {int_args}") print_distance((0, 0, 0), int_args) except ValueError as err: - print(f'Parsing invalid coordinates: "{argv[1]}"') + print(f'Invalid coordinates: "{argv[1]}"') print(err) except Exception as err: print(err) diff --git a/03/ex3/ft_achievement_tracker.py b/03/ex3/ft_achievement_tracker.py index 673fdee..f5f1b4d 100644 --- a/03/ex3/ft_achievement_tracker.py +++ b/03/ex3/ft_achievement_tracker.py @@ -1,46 +1,94 @@ def tracker_system(players: dict[str, list[str]]) -> None: print("=== Achievement Tracker System ===\n") - for player in players: - print(f"Player {player} achievements: {set((players[player]))}") - print("\n=== Achievement Analytics ===") - unique_achievements: set[str] = set(()) - for player in players: - unique_achievements = unique_achievements | set((players[player])) - print(f"All unique achievements: {unique_achievements}") - print(f"Total unique achievements: {len(unique_achievements)}") - common_achievements: set[str] = unique_achievements - for player in players: - common_achievements = common_achievements & set((players[player])) - print(f"\nCommon to all players: {common_achievements}") - player_rare: dict[str, set[str]] = {} - for player in players: - temp = set((players[player])) - for other in players: - if other != player: - temp = temp - set((players[other])) - player_rare[player] = temp - rare_achievements: set[str] = set(()) - for n in player_rare: - rare_achievements = rare_achievements | player_rare[n] - print(f"Rare achievements (1 player): {rare_achievements}\n") - a_vs_b_common = set((players["Alice"])) & set((players["Bob"])) - print(f"Alice vs Bob common: {a_vs_b_common}") - alice_unique = set((players["Alice"])) - set((players["Bob"])) - print(f"Alice unique: {alice_unique}") - bob_unique = set((players["Bob"])) - set((players["Alice"])) - print(f"Bob unique: {bob_unique}") + try: + for player in players: + print(f"Player {player} achievements: {set((players[player]))}") + print("\n=== Achievement Analytics ===") + unique_achievements: set[str] = set(()) + for player in players: + unique_achievements = unique_achievements | set((players[player])) + print(f"All unique achievements: {unique_achievements}") + print(f"Total unique achievements: {len(unique_achievements)}") + common_achievements: set[str] = unique_achievements + for player in players: + common_achievements = common_achievements & set((players[player])) + print(f"\nCommon to all players: {common_achievements}") + except Exception as err: + print(err) + try: + player_rare: dict[str, set[str]] = {} + for player in players: + temp = set((players[player])) + for other in players: + if other != player: + temp = temp - set((players[other])) + player_rare[player] = temp + rare_achievements: set[str] = set(()) + for n in player_rare: + rare_achievements = rare_achievements | player_rare[n] + print(f"Rare achievements (1 player): {rare_achievements}\n") + a_vs_b_common = set((players["alice"])) & set((players["bob"])) + print(f"Alice vs Bob common: {a_vs_b_common}") + alice_unique = set((players["alice"])) - set((players["bob"])) + print(f"Alice unique: {alice_unique}") + bob_unique = set((players["bob"])) - set((players["alice"])) + print(f"Bob unique: {bob_unique}") + except Exception as err: + print(err) if __name__ == "__main__": - players = { - "Alice": ["first_kill", "level_10", "treasure_hunter", "speed_demon"], - "Bob": ["first_kill", "level_10", "boss_slayer", "collector"], - "Charlie": [ - "level_10", - "treasure_hunter", - "boss_slayer", - "speed_demon", - "perfectionist", + data = { + "alice": [ + "first_blood", + "pixel_perfect", + "speed_runner", + "first_blood", + "first_blood", + "boss_hunter", + ], + "bob": [ + "level_master", + "boss_hunter", + "treasure_seeker", + "level_master", + "level_master", + ], + "charlie": [ + "treasure_seeker", + "boss_hunter", + "combo_king", + "first_blood", + "boss_hunter", + "first_blood", + "boss_hunter", + "first_blood", + ], + "diana": [ + "first_blood", + "combo_king", + "level_master", + "treasure_seeker", + "speed_runner", + "combo_king", + "combo_king", + "level_master", + ], + "eve": [ + "level_master", + "treasure_seeker", + "first_blood", + "treasure_seeker", + "first_blood", + "treasure_seeker", + ], + "frank": [ + "explorer", + "boss_hunter", + "first_blood", + "explorer", + "first_blood", + "boss_hunter", ], } - tracker_system(players) + tracker_system(data) diff --git a/03/ex4/ft_inventory_system.py b/03/ex4/ft_inventory_system.py index a7cd3fc..04f3cc4 100644 --- a/03/ex4/ft_inventory_system.py +++ b/03/ex4/ft_inventory_system.py @@ -72,19 +72,22 @@ def dictionnary_properties_demo(inventory: dict[str, int]) -> None: def inventory_report(inventory: dict[str, int]) -> None: nb_unique_items = len(inventory) nb_item_in_inventory = 0 - for n in inventory: - nb_item_in_inventory += inventory[n] - if nb_item_in_inventory == 0: - print("Inventory is empty") - else: - print("=== Inventory System Analysis ===") - print(f"Total items in inventory: {nb_item_in_inventory}") - print(f"Unique item types: {nb_unique_items}") - current_inventory(inventory, nb_item_in_inventory) - inventory_statistics(inventory) - item_categories(inventory) - management_suggestions(inventory) - dictionnary_properties_demo(inventory) + try: + for n in inventory: + nb_item_in_inventory += inventory[n] + if nb_item_in_inventory == 0: + print("Inventory is empty") + else: + print("=== Inventory System Analysis ===") + print(f"Total items in inventory: {nb_item_in_inventory}") + print(f"Unique item types: {nb_unique_items}") + current_inventory(inventory, nb_item_in_inventory) + inventory_statistics(inventory) + item_categories(inventory) + management_suggestions(inventory) + dictionnary_properties_demo(inventory) + except Exception as err: + print(err) def main(argv: list[str]) -> None: diff --git a/03/ex5/ft_data_stream.py b/03/ex5/ft_data_stream.py index b058488..6521603 100644 --- a/03/ex5/ft_data_stream.py +++ b/03/ex5/ft_data_stream.py @@ -70,14 +70,14 @@ def game_data_stream_processor( def generator_demo() -> None: print("=== Generator Demonstration ===") - print("Fibonacci sequence (first 10): ", end="") + print("Fibonacci sequence (first 10):", end="") fib = fibonacci() for _ in range(10): - print(f"{next(fib)} ", end="") - print("\nPrime number (first 5): ", end="") + print(f" {next(fib)}", end="") + print("\nPrime number (first 5):", end="") prime = prime_number() for _ in range(5): - print(f"{next(prime)} ", end="") + print(f" {next(prime)}", end="") print("") diff --git a/03/ex6/ft_analytics_dashboard.py b/03/ex6/ft_analytics_dashboard.py index 293e048..546b07c 100644 --- a/03/ex6/ft_analytics_dashboard.py +++ b/03/ex6/ft_analytics_dashboard.py @@ -83,10 +83,19 @@ def comprehension_tester( try: print("=== game Analytics Dashboard ===\n") list_comprehension_example(data) + except Exception as err: + print(err) + try: print() dict_comprehension_example(data) + except Exception as err: + print(err) + try: print() set_comprehension_example(data) + except Exception as err: + print(err) + try: print() combined_analysis(data) except Exception as err: