Nice topic, unclear assignment
I liked this topic, if only because it reminded me of one of the things I liked about quantum mechanics: the ability to predict the Periodic Table.
However, I have a bit of critique about this assignment.
It requires me to get a list of Symbol names, even though it was not given as part of the assignment. No problem, but if I have to scrape Wikipedia (e.g. Periodic table (electron configurations)), why not simply just make a big lookup table? Practical suggestion: add a minimal lookup table in the template, so people are discouraged from adding too much in there.
The order of the subshells is not clearly defined in the output (e.g. for Nickel: "[Ar] 4s² 3d⁸" or "[Ar] 3d⁸ 4s²", thus ordered by energy level or by quantum number), and is inconsistent between electron configuration (ordered by quantum number) and orbital model (ordered by energy level). Practical suggestion: make the required output explicit in the assignment.
There are some known exceptions to the Madelung/Klechkowski rule. It is not clear which output is required: the one calculated from the Klechkowski rule, or the one with the actual electron configuration as observed by experiments. I found it a bit frustrating to make the actual calculation, only to discover, that what was asked is basically a lookup value (I don't supposed the assignment was to implement something like the work of Meek and Allen: Configuration irregularities: deviations from the Madelung rule and inversion of orbital energy levels.) Practical suggestion: add the following table in the assignment.
Table with Exceptions to the Madelung/Klechkowski rule:
+=====+==============+====================+===============================+ | Z | Name | Calculated config | Actual electron configuration | +=====+==============+====================+===============================+ | 24 | Chromium | [Ar] 4s2 3d4 | [Ar] 4s1 3d5 | | 29 | Copper | [Ar] 4s2 3d9 | [Ar] 4s1 3d10 | | 41 | Niobium | [Kr] 5s2 4d3 | [Kr] 5s1 4d4 | | 42 | Molybdenum | [Kr] 5s2 4d4 | [Kr] 5s1 4d5 | | 44 | Ruthenium | [Kr] 5s2 4d6 | [Kr] 5s1 4d7 | | 45 | Rhodium | [Kr] 5s2 4d7 | [Kr] 5s1 4d8 | | 46 | Palladium | [Kr] 5s2 4d8 | [Kr] 4d10 | | 47 | Silver | [Kr] 5s2 4d9 | [Kr] 5s1 4d10 | | 57 | Lanthanum | [Xe] 6s2 4f1 | [Xe] 6s2 5d1 | | 58 | Cerium | [Xe] 6s2 4f2 | [Xe] 6s2 4f1 5d1 | | 64 | Gadolinium | [Xe] 6s2 4f8 | [Xe] 6s2 4f7 5d1 | | 78 | Platinum | [Xe] 6s2 4f14 5d8 | [Xe] 6s1 4f14 5d9 | | 79 | Gold | [Xe] 6s2 4f14 5d9 | [Xe] 6s1 4f14 5d10 | | 89 | Actinium | [Rn] 7s2 5f1 | [Rn] 7s2 6d1 | | 90 | Thorium | [Rn] 7s2 5f2 | [Rn] 7s2 6d2 | | 91 | Protactinium | [Rn] 7s2 5f3 | [Rn] 7s2 5f2 6d1 | | 92 | Uranium | [Rn] 7s2 5f4 | [Rn] 7s2 5f3 6d1 | | 93 | Neptunium | [Rn] 7s2 5f5 | [Rn] 7s2 5f4 6d1 | | 96 | Curium | [Rn] 7s2 5f8 | [Rn] 7s2 5f7 6d1 | | 103 | Lawrencium | [Rn] 7s2 5f14 6d1 | [Rn] 7s2 5f14 7p1 | +=====+==============+====================+===============================+