code: def block(self):
          
          if (self.is_actinoid or self.is_lanthanoid) and self.Z not in [71, 103]:
              return "f"
          elif self.is_actinoid or self.is_lanthanoid:
              return "d"
          elif self.group in [1, 2]:
              return "s"
          elif self.group in range(13, 19):
              return "p"
          elif self.group in range(3, 13):
              return "d"
          raise ValueError("unable to determine block")
docs: Return the block character "s,p,d,f"