Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: OPGELOST Python probleempje  (gelezen 1137 keer)

Offline BaukeP

  • Lid
OPGELOST Python probleempje
« Gepost op: 2009/09/07, 21:39:31 »
Hallo,

Ik probeer een beetje Python te leren. Er staat veel materiaal op internet maar wat ik wil kan ik natuurlijk niet vinden. Voor een doorgewinterde Python gebruiker is het een fluitje van een cent (neem ik aan).

Ik heb al het volgende:

#!/usr/bin/env python
import gtk
clipboard = gtk.clipboard_get()

lijst ={1:"weinig",2:"iets",3:"iets meer",4:"Vier",5:"Vijf"}

nr1=raw_input('Eerste getal: ')
nr2=raw_input('Tweede getal: ')

print (lijst[int(nr1)]+lijst[int(nr2)])      #ter controle
clipboard.set_text(lijst[int(nr1)]+lijst[int(nr2)])
clipboard.store()

Lijst is voorbeeld; de echte bevat ruim 200 combinaties. Is misschien een betere oplossing voor?
 
Dit werkt prima, maar alleen als ik dit proef.py betand in de terminal uitvoer.

Wat ik wil is of in de terminal of in Alt-F2 kunnen intikken van: code 1,4 of code (1,4)
en dan het verwachte antwoord krijgen (in het clipboard).

Het is duidelijk dat ik ergens iets mis. Maar wat en hoe?

Graag een beetje hulp

Alvast weer bedankt

Bauke
« Laatst bewerkt op: 2009/09/08, 06:50:13 door BaukeP »

Re: Python probleempje
« Reactie #1 Gepost op: 2009/09/07, 21:55:04 »
Niet getest, maar zoiets?

Starten met: proef.py 1 4

#!/usr/bin/env python
import sys
import gtk
clipboard = gtk.clipboard_get()

lijst ={1:"weinig",2:"iets",3:"iets meer",4:"Vier",5:"Vijf"}

uitkomst = lijst[int(sys.argv[1])]+lijst[int(sys.argv[2])]
print (uitkomst)      #ter controle
clipboard.set_text(uitkomst)
clipboard.store()

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: Python probleempje
« Reactie #2 Gepost op: 2009/09/07, 22:01:06 »
#!/usr/bin/env python
import gtk
import sys

clipboard = gtk.clipboard_get()

#lijst ={1:"weinig",2:"iets",3:"iets meer",4:"Vier",5:"Vijf"}
lijst = ["weinig", "iets", "iets meer", "Vier", "Vijf"]

if len(sys.argv) == 1:
    nr1=int(raw_input('Eerste getal: '))
    nr2=int(raw_input('Tweede getal: '))
elif len(sys.argv) > 2:
    nr1=int(sys.argv[1])#raw_input('Eerste getal: ')
    nr2=int(sys.argv[2])#raw_input('Tweede getal: ')
    print (lijst[nr1]+lijst[nr2])      #ter controle
    clipboard.set_text(lijst[nr1]+lijst[nr2])
    clipboard.store()
else:
    print("Not enough arguments")

Opmerking:
lijst kan beter een type lijst [] zijn, als je toch alleen maar opeenvolgende getallen gebruikt.

Om nu het bestand benaderbaar te maken met bijv ALT+F2 moet je een aantal stappen volgen
#maakt het bestand uitvoerbaar
chmod +x /pad/naar/file.py

#maak een symbolische koppeling naar de map /usr/bin zodat het systeem het programma kan vinden
sudo ln -s /pad/naar/file.py /usr/bin/programmanaam
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline BaukeP

  • Lid
Re: Python probleempje
« Reactie #3 Gepost op: 2009/09/07, 23:04:03 »
Heren,

Hartelijk dank. Werkt als een zonnetje!

Bauke