Elemente in Deinem Namen

Ich habe ein kurzes Python Skript geschrieben, um schnell die Elemente in deinem Namen zu finden, wie es in der Serie "Breaking Bad" der Fall ist.
Supplies
Computer
Python IDE
Easy Programming
Zuerst werden die beiden Arrays initiiert, die die Elemente beinhalten:
kurz = ["Ac","Ag","Al","Am","Ar","As","At","Au","B","Ba","Be","Bh","Bi","Bk","Br","C","Ca","Cd","Ce","Cf","Cl","Cm","Cn","Co","Cr","Cs","Cu","Db","Ds","Dy","Er","Es","Eu","F","Fe","Fl","Fm","Fr","Ga","Gd","Ge","H","He","Hf","Hg","Ho","Hs","I","In","Ir","K","Kr","La","Li","Lr","Lu","Lv","Mc","Md","Mg","Mn","Mo","Mt","N","Na","Nb","Nd","Ne","Nh","Ni","No","Np","O","Og","Os","P","Pa","Pb","Pd","Pm","Po","Pr","Pt","Pu","Ra","Rb","Re","Rf","Rg","Rh","Rn","Ru","S","Sb","Sc","Se","Sg","Si","Sm","Sn","Sr","Ta","Tb","Tc","Te","Th","Ti","Tl","Tm","Ts","U","V","W","Xe","Y","Yb","Zn","Zr"] elem = ["Actinium","Silber","Aluminium","Americium","Argon","Arsen","Astat","Gold","Bor","Barium","Beryllium","Bohrium","Bismut","Berkelium","Brom","Kohlenstoff","Calcium","Cadmium","Cer","Californium","Chlor","Curium","Copernicium","Cobalt","Chrom","Caesium","Kupfer","Dubnium","Darmstadtium","Dysprosium","Erbium","Einsteinium","Europium","Fluor","Eisen","Flerovium","Fermium","Francium","Gallium","Gadolinium","Germanium","Wasserstoff","Helium","Hafnium","Quecksilber","Holmium","Hassium","Iod","Indium","Iridium","Kalium","Krypton","Lanthan","Lithium","Lawrencium","Lutetium","Livermorium","Moscovium","Mendelevium","Magnesium","Mangan","Molybdän","Meitnerium","Stickstoff","Natrium","Niob","Neodym","Neon","Nihonium","Nickel","Nobelium","Neptunium","Sauerstoff","Oganesson","Osmium","Phosphor","Protactinium","Blei","Palladium","Promethium","Polonium","Praseodym","Platin","Plutonium","Radium","Rubidium","Rhenium","Rutherfordium","Roentgenium","Rhodium","Radon","Ruthenium","Schwefel","Antimon","Scandium","Selen","Seaborgium","Silicium","Samarium","Zinn","Strontium","Tantal","Terbium","Technetium","Tellur","Thorium","Titan","Thallium","Thulium","Tennessine","Uran","Vanadium","Wolfram","Xenon","Yttrium","Ytterbium","Zink","Zirconium"]
Danach folgt das speichern deines Namens in eine Variable. Über ein Input-Feld wird dein Name abgefragt.
name = input("Dein Name?") print("Folgende Elemente sind in deinem Namen:")
Der Name wird mit der Funktion "list()" in einzelne Buchstaben aufgeteilt.
buchst = list(name)
Die Variable "store" wird gebraucht, damit ein Buchstabe nicht zweimal in der Liste der Elemente erscheint. Z.B. bei "Bob" würde zwei Mal "Bor" als Output erscheinen.
store = []
Zuerst vergleichen wir jeden einzelnen Buchstaben des Namens mit allen Einträgen in der Liste der Elemente (kurz[]).
Für jeden Buchstaben muss geschaut werden, ob er gleich einem Eintrag in der Liste ist und nicht in der Variable "store" bereits vorhanden ist. Falls beides wahr ist, dann wird der Buchstabe des Namens der einem Element entspricht, in die Variable "store" gespeichert und das Element ausgegeben. Die Methode "lower()" hilft dabei, die Gross-/Kleinschreibung zu ignorieren.
#single letter elements for b in range(len(buchst)): for k in range(len(kurz)): if (buchst[b].lower()==kurz[k].lower() and (buchst[b].lower() not in store)): store.append(buchst[b].lower()) print(kurz[k],elem[k])
Jetzt wiederholt es sich für zwei Buchstaben. Eine neue Variable "bnew" speichert jeweils die ersten zwei Buchstaben deines Namens, dann die nächsten zwei. Z.B. Hans wird zu "ha", dann zu "an" und dann zu "ns".
#two letter elements for b in range(len(buchst)): if (b+1)<len(buchst): bnew = buchst[b]+buchst[b+1] for k in range(len(kurz)): if (bnew.lower()==kurz[k].lower()): print(kurz[k],elem[k])
Der Output sieht wie folgt aus (im Jupyter Notebook):
Dein Name?bryan cranston Folgende Elemente sind in deinem Namen: B Bor Y Yttrium N Stickstoff C Kohlenstoff S Schwefel O Sauerstoff Br Brom Cr Chrom Ra Radium
Downloads
Fazit
Das Programm ist weder Ressourcen-schonend noch effizient programmiert. Quick and Dirty zum Ziel ;)