Advertisement
GalinaKG

Nether Realms

Jul 25th, 2022
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. import re
  2.  
  3. input_line = input()
  4. demon_names = re.findall(r'[^,\s]+', input_line)
  5. demons_dict = {}
  6.  
  7. for demon in range(len(demon_names)):
  8.     health = 0
  9.     pattern_health = r'[^0-9\+\-\*\/\.]'
  10.     health_expression = re.findall(pattern_health, demon_names[demon])
  11.     for ch in health_expression:
  12.         health += ord(ch)
  13.  
  14.     damage = 0
  15.     pattern_damage = r'(\-|\+)?\d+\.?\d*|\d'
  16.     damage_expression = re.finditer(pattern_damage, demon_names[demon])
  17.     for num in damage_expression:
  18.         damage += float(num.group())
  19.     if '*' in demon_names[demon]:
  20.         for i in range(demon_names[demon].count('*')):
  21.             damage *= 2
  22.     if '/' in demon_names[demon]:
  23.         for i in range(demon_names[demon].count('/')):
  24.             damage /= 2
  25.     demons_dict[demon_names[demon]] = [health, damage]
  26.  
  27. demons_dict = dict(sorted(demons_dict.items(), key=lambda x: x[0]))
  28. for k, v in demons_dict.items():
  29.     print(f'{k} - {v[0]} health, {v[1]:.2f} damage')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement