mirror of
https://github.com/DavidGailleton/42-Piscine_Python.git
synced 2026-03-13 20:56:54 +01:00
Rework of module 03
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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("")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user