Rework of module 03

This commit is contained in:
2026-02-12 11:35:37 +01:00
parent 05a3ddc8b6
commit 161ab4339c
6 changed files with 130 additions and 67 deletions

View File

@@ -1,14 +1,14 @@
import sys import sys
if __name__ == "__main__": if __name__ == "__main__":
args = sys.argv try:
if len(args) <= 1: args = sys.argv
print("No scores provided. Usage: python3\ if len(args) <= 1:
raise Exception("No scores provided. Usage: python3\
ft_score_analytics.py <score1> <score2> ...") ft_score_analytics.py <score1> <score2> ...")
else: else:
scores = [0] * (len(args) - 1) scores = [0] * (len(args) - 1)
i = 0 i = 0
try:
while i < len(args) - 1: while i < len(args) - 1:
scores[i] = int(args[i + 1]) scores[i] = int(args[i + 1])
i = i + 1 i = i + 1
@@ -19,5 +19,7 @@ if __name__ == "__main__":
print("High score:", max(scores)) print("High score:", max(scores))
print("Low score:", min(scores)) print("Low score:", min(scores))
print("Score range", max(scores) - min(scores)) print("Score range", max(scores) - min(scores))
except ValueError: except ValueError:
print("Invalid input, only numbers are accepted") print("Invalid input, only numbers are accepted")
except Exception as err:
print(err)

View File

@@ -14,16 +14,17 @@ if __name__ == "__main__":
try: try:
if len(argv) != 2: if len(argv) != 2:
raise Exception("Invalid number of args") raise Exception("Invalid number of args")
print(f'Parsing coordinates: "{argv[1]}"')
args = argv[1].split(",") args = argv[1].split(",")
if len(args) != 3: if len(args) != 3:
raise Exception( raise Exception(
"Invalid argument format." + 'Try like this : "15,64,78"' "Invalid argument format." + 'Try like this : "15,64,78"'
) )
int_args = (int(args[0]), int(args[1]), int(args[2])) 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) print_distance((0, 0, 0), int_args)
except ValueError as err: except ValueError as err:
print(f'Parsing invalid coordinates: "{argv[1]}"') print(f'Invalid coordinates: "{argv[1]}"')
print(err) print(err)
except Exception as err: except Exception as err:
print(err) print(err)

View File

@@ -1,46 +1,94 @@
def tracker_system(players: dict[str, list[str]]) -> None: def tracker_system(players: dict[str, list[str]]) -> None:
print("=== Achievement Tracker System ===\n") print("=== Achievement Tracker System ===\n")
for player in players: try:
print(f"Player {player} achievements: {set((players[player]))}") for player in players:
print("\n=== Achievement Analytics ===") print(f"Player {player} achievements: {set((players[player]))}")
unique_achievements: set[str] = set(()) print("\n=== Achievement Analytics ===")
for player in players: unique_achievements: set[str] = set(())
unique_achievements = unique_achievements | set((players[player])) for player in players:
print(f"All unique achievements: {unique_achievements}") unique_achievements = unique_achievements | set((players[player]))
print(f"Total unique achievements: {len(unique_achievements)}") print(f"All unique achievements: {unique_achievements}")
common_achievements: set[str] = unique_achievements print(f"Total unique achievements: {len(unique_achievements)}")
for player in players: common_achievements: set[str] = unique_achievements
common_achievements = common_achievements & set((players[player])) for player in players:
print(f"\nCommon to all players: {common_achievements}") common_achievements = common_achievements & set((players[player]))
player_rare: dict[str, set[str]] = {} print(f"\nCommon to all players: {common_achievements}")
for player in players: except Exception as err:
temp = set((players[player])) print(err)
for other in players: try:
if other != player: player_rare: dict[str, set[str]] = {}
temp = temp - set((players[other])) for player in players:
player_rare[player] = temp temp = set((players[player]))
rare_achievements: set[str] = set(()) for other in players:
for n in player_rare: if other != player:
rare_achievements = rare_achievements | player_rare[n] temp = temp - set((players[other]))
print(f"Rare achievements (1 player): {rare_achievements}\n") player_rare[player] = temp
a_vs_b_common = set((players["Alice"])) & set((players["Bob"])) rare_achievements: set[str] = set(())
print(f"Alice vs Bob common: {a_vs_b_common}") for n in player_rare:
alice_unique = set((players["Alice"])) - set((players["Bob"])) rare_achievements = rare_achievements | player_rare[n]
print(f"Alice unique: {alice_unique}") print(f"Rare achievements (1 player): {rare_achievements}\n")
bob_unique = set((players["Bob"])) - set((players["Alice"])) a_vs_b_common = set((players["alice"])) & set((players["bob"]))
print(f"Bob unique: {bob_unique}") 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__": if __name__ == "__main__":
players = { data = {
"Alice": ["first_kill", "level_10", "treasure_hunter", "speed_demon"], "alice": [
"Bob": ["first_kill", "level_10", "boss_slayer", "collector"], "first_blood",
"Charlie": [ "pixel_perfect",
"level_10", "speed_runner",
"treasure_hunter", "first_blood",
"boss_slayer", "first_blood",
"speed_demon", "boss_hunter",
"perfectionist", ],
"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)

View File

@@ -72,19 +72,22 @@ def dictionnary_properties_demo(inventory: dict[str, int]) -> None:
def inventory_report(inventory: dict[str, int]) -> None: def inventory_report(inventory: dict[str, int]) -> None:
nb_unique_items = len(inventory) nb_unique_items = len(inventory)
nb_item_in_inventory = 0 nb_item_in_inventory = 0
for n in inventory: try:
nb_item_in_inventory += inventory[n] for n in inventory:
if nb_item_in_inventory == 0: nb_item_in_inventory += inventory[n]
print("Inventory is empty") if nb_item_in_inventory == 0:
else: print("Inventory is empty")
print("=== Inventory System Analysis ===") else:
print(f"Total items in inventory: {nb_item_in_inventory}") print("=== Inventory System Analysis ===")
print(f"Unique item types: {nb_unique_items}") print(f"Total items in inventory: {nb_item_in_inventory}")
current_inventory(inventory, nb_item_in_inventory) print(f"Unique item types: {nb_unique_items}")
inventory_statistics(inventory) current_inventory(inventory, nb_item_in_inventory)
item_categories(inventory) inventory_statistics(inventory)
management_suggestions(inventory) item_categories(inventory)
dictionnary_properties_demo(inventory) management_suggestions(inventory)
dictionnary_properties_demo(inventory)
except Exception as err:
print(err)
def main(argv: list[str]) -> None: def main(argv: list[str]) -> None:

View File

@@ -70,14 +70,14 @@ def game_data_stream_processor(
def generator_demo() -> None: def generator_demo() -> None:
print("=== Generator Demonstration ===") print("=== Generator Demonstration ===")
print("Fibonacci sequence (first 10): ", end="") print("Fibonacci sequence (first 10):", end="")
fib = fibonacci() fib = fibonacci()
for _ in range(10): for _ in range(10):
print(f"{next(fib)} ", end="") print(f" {next(fib)}", end="")
print("\nPrime number (first 5): ", end="") print("\nPrime number (first 5):", end="")
prime = prime_number() prime = prime_number()
for _ in range(5): for _ in range(5):
print(f"{next(prime)} ", end="") print(f" {next(prime)}", end="")
print("") print("")

View File

@@ -83,10 +83,19 @@ def comprehension_tester(
try: try:
print("=== game Analytics Dashboard ===\n") print("=== game Analytics Dashboard ===\n")
list_comprehension_example(data) list_comprehension_example(data)
except Exception as err:
print(err)
try:
print() print()
dict_comprehension_example(data) dict_comprehension_example(data)
except Exception as err:
print(err)
try:
print() print()
set_comprehension_example(data) set_comprehension_example(data)
except Exception as err:
print(err)
try:
print() print()
combined_analysis(data) combined_analysis(data)
except Exception as err: except Exception as err: