2016-03-23 12 views
1

Ich versuche, ein Periodensystem zu erstellen (ein einfaches), in dem ich die Ordnungszahl eines Elements eingeben kann und es Details des Elements geben wird. Ich habe das Fenster und die Etiketten erstellt, aber das Problem ist mit der Schaltfläche. Ich versuche, Wörterbuch mit der Tastenfunktion zu verwenden. Kann mir jemand sagen, was ich falsch hier tue? Vielen DankKann ich ein Wörterbuch mit einer benutzerdefinierten Funktion verwenden?

 from Tkinter import * 

    """p={} 
    p={"1":["hydrogen",'group 1','Electronic configuration- 1s1'] , 
     "2":["helium",'group 18','Electronic configuration- 1s2'], 
     "3":["lithium",'group 1','Electronic configuration- [He] 2s1'], 
     "4":["beryllium",'group 2','Electronic configuration- [He] 2s2'], 
     "5":["boron",'group 13','Electronic configuration- [He] 2s2 2p1'], 
     "6":["carbon",'group 14','Electronic configuration- [He] 2s2 2p2'], 
     "7":["nitrogen",'group 15','Electronic configuration- [He] 2s2 2p3'], 
     "8":["oxygen",'group 16','Electronic configuration- [He] 2s2 2p4'], 
     "9":["fluorine",'group 17','Electronic configuration- [He] 2s2 2p5'], 
     "10":["neon",'group 18','Electroni?c configuration- [He] 2s2 2p6'], 
     } 
     def search(): 
     x=raw_input('enter the atomic no. of the element you wanna search') 
     for i in x: 
      if i==x: 
       print p[i] 
      else: 
       break 
     search() 


     def search(): 
      c=Label(ptable,text='Help me ',fg='blue',bg='red',font= ('Helpme',14)).place(relx=0.5,rely=0.8, anchor=S) 




    ptable=Tk() 
    ptable.geometry('550x250+100+50') 
    ptable.title('Periodic Table') 
    ptable.config(background='red') # we can use either 'config' or 'configure', farak nin pdega 


    f=StringVar() 




    a=Label(ptable,text='My Periodic table', fg='blue',font=('My Periodic table',16,'bold'),bg='red').place(relx=0.5, rely=0.05, anchor=CENTER) 
    b=Label(ptable,text='Enter atomic number of the element',bg='red',font= ('Enter atomic number of the element',13,'bold')).place(relx=0,rely=0.3, anchor=W) 


    x=Entry(ptable,textvariable=f).place(relx=0.9, rely=0.3, anchor=E) 



    button=Button(ptable,text='FIND OUT!',command=search).place(relx=0.5, rely= 0.6 , anchor=S) 






    ptable.mainloop() 

und während Sie gerade dabei sind u kann mir auch sagen, wie ein Bild in diesem Programm hinzufügen, wenn ich wollte? Danke ^^

+0

"und während Sie gerade dabei sind ..." wird nicht gut angenommen. Stellen Sie eine andere separate Frage. Auch was ist mit dem '" "" 'am Anfang? –

+0

Auch search() wurde zweimal deklariert. Ein Link zu einem Tutorial auf Wörterbücher http://www.tutorialspoint.com/python/python_dictionary.htm Weitere Tutorials auf https: //wiki.python.org/moin/BeginnersGuide/Programmers –

+0

Woops, siehe Antwort unten. –

Antwort

0

Das folgende wird nicht immer funktionieren. Fügen Sie eine Druckanweisung für Zahlen größer als 9 hinzu, um selbst zu sehen. Verwenden Sie auch nicht "i", "l" oder "o" als Namen für einzelne Zeichen, da sie wie Zahlen aussehen können.

for i in x: 
     if i==x: 
+0

@alex hall Das ist, weil ich ursprünglich wollte, dass das "" "- Programm die Referenz für die Befehlsschaltfläche ist, aber es stellte sich nicht heraus Nun, anstatt es zu starten und einen Fehler zu bekommen, machte ich einen Kommentar und sah, was im ganzen Programm falsch war. Deshalb habe ich hier gefragt ^^ –

Verwandte Themen