Nieuws:

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

Auteur Topic: lijsten in python (vraag --> antwoord)  (gelezen 1396 keer)

lijsten in python (vraag --> antwoord)
« Gepost op: 2010/01/31, 21:12:24 »
ik zou graag een programma maken waarin je u postcode geeft en als "print" de gemeente krijgt
ik heb al bij "dictionary" gezocht maar dit is niet wat ik zoek (denk ik)
voorbeeld:
postcode = input ("geef je postcode")
gemeente = ?
print gemeente
zoiets zou het moeten zijn maar ik weet niet hoe of wat
(eerste post van mij):
http://forum.ubuntu-nl.org/programmeren/python-leren/

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: lijsten in python (vraag --> antwoord)
« Reactie #1 Gepost op: 2010/01/31, 21:31:04 »
eerst heb je een lijst nodig, wat een postcode om kan zetten naar gemeentes. Deze kan er zo uit zien:

# Lijst met elke een dictionary van bij elkaar horende gemeente en postcode
gemeentes = [
    {'postcode': 1234, 'gemeente': 'amsterdam'},
    {'postcode': 2345, 'gemeente': 'utrecht'}
]

# dan vraag je om de input van de user
postcode = raw_input("geef je postcode")

# scroll de lijst door en kijk of de postcode voor komt in de gemeentes lijst
for gemeente in gemeentes:
    if gemeente['postcode'] == int(postcode):
        # als de postcode voor komt, print de gemeente
        print gemeente['gemeente']

Zelf nog niet uitgeprobeerd, maar zou moeten werken
« Laatst bewerkt op: 2010/01/31, 22:14:47 door Ronnie »
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

Re: lijsten in python (vraag --> antwoord)
« Reactie #2 Gepost op: 2010/01/31, 21:42:20 »
Een dictionary is toch wat ge nodig hebt hoor :).

In plaats van de dictionaries is een lijst te zetten zoals ronnie, zou ik het gewoon zo doen:

postcodes = {'1234': 'amsterdam', '2345': 'utrecht'}

invoer = raw_input('Geef de postcode op: ')

print "De gemeente die u zoekt is: %s" %postcodes[invoer]
« Laatst bewerkt op: 2010/01/31, 21:45:48 door Nunslaughter »

Re: lijsten in python (vraag --> antwoord)
« Reactie #3 Gepost op: 2010/01/31, 21:43:07 »
eerst heb je een lijst nodig, wat een postcode om kan zetten naar gemeentes. Deze kan er zo uit zien:

# Lijst met elke een dictionary van bij elkaar horende gemeente en postcode
gemeentes = [
    {'postcode': 1234, 'gemeente': 'amsterdam'},
    {'postcode': 2345, 'gemeente': 'utrecht'}
]

# dan vraag je om de input van de user
postcode = [color=red][b]raw_[/b][/color]input("geef je postcode")

# scroll de lijst door en kijk of de postcode voor komt in de gemeentes lijst
for gemeente in gemeentes:
    if gemeente['postcode'] == int(postcode):
        # als de postcode voor komt, print de gemeente
        print gemeente['gemeente']

Zelf nog niet uitgeprobeerd, maar zou moeten werken
wat in het rood staat is er te veel aan denk ik zonder dat werkt het wel

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: lijsten in python (vraag --> antwoord)
« Reactie #4 Gepost op: 2010/01/31, 21:53:06 »
Een dictionary is toch wat ge nodig hebt hoor :).

In plaats van de dictionaries is een lijst te zetten zoals ronnie, zou ik het gewoon zo doen:

postcodes = {'1234': 'amsterdam', '2345': 'utrecht'}

invoer = raw_input('Geef de postcode op: ')

print "De gemeente die u zoekt is: %s" %postcodes[invoer]

Ja, zo is die nog beter.
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

Re: lijsten in python (vraag --> antwoord)
« Reactie #5 Gepost op: 2010/01/31, 22:22:35 »
Een dictionary is toch wat ge nodig hebt hoor :).

In plaats van de dictionaries is een lijst te zetten zoals ronnie, zou ik het gewoon zo doen:

postcodes = {'1234': 'amsterdam', '2345': 'utrecht'}

invoer = raw_input('Geef de postcode op: ')

print "De gemeente die u zoekt is: %s" %postcodes[invoer]

Ja, zo is die nog beter.
is inderdaad korter ...
al snap ik het niet echt het script maar dat komt hopelijk nog wel eens

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: lijsten in python (vraag --> antwoord)
« Reactie #6 Gepost op: 2010/01/31, 22:41:11 »
de eerste regel maakt een dictionary aan. de keys van de dictionary zijn de postcodes, de values van de dictionary zijn de gemeentes

de 2de regel vraagt de gebruiker om input. het is beter om raw_input() te gebruiken dan input()

de derde regel is wat ingewikkelder, namelijk
print "De gemeente die u zoekt is: %s"
%s wordt vervangen door de "uitkomst" van het commando achter %, dus postcodes[invoer]
postcodes[invoer] is een standaard dictionary call. het zoekt in de dictionary "postcodes" naar de key "invoer" en geeft de bijbehorende value
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