Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- demons = input().split(",")
- demons = [s.strip() for s in demons]
- demons_dict = {}
- pattern_health = r"[^0-9\+\-\/\*\.]"
- pattern_damage = r"([\*\/])?(-?\d+(\.\d+)?)?"
- for demon in demons:
- health = 0
- damage = 0
- multy_division = []
- if demon not in demons_dict:
- demons_dict[demon] = (0, 0)
- str_health = re.findall(pattern_health, demon)
- health = sum([ord(s) for s in str_health])
- matches_digits = re.finditer(pattern_damage, demon)
- for match in matches_digits:
- if match.group(1):
- multy_division.append(match.group(1))
- if match.group(2):
- damage += float(match.group(2))
- if multy_division:
- for sign in multy_division:
- if sign == "/":
- damage /= 2
- elif sign == "*":
- damage *= 2
- demons_dict[demon] = (health, damage)
- sorted_demons = sorted(demons_dict.items())
- for dem, data in sorted_demons:
- print(f"{dem} - {data[0]} health, {data[1]:.2f} damage")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement