[Python] Python challenge

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kooka
  • Registratie: Juli 2004
  • Laatst online: 07-06 09:09
Wie kent de Python challenge op http://www.pythonchallenge.com?
Heeft iemand er ervaring mee?

Op deze site is het de bedoeling om door middel van Python programmeren achter de url van het volgende level te komen.

In de andere hoek van de ring: ik, een Python beginneling.

Een van de redenen dat ik dit topic gestart heb, is dat ik een vastloop bij level 1.
Spoilertag hieronder.

spoiler: Probleem bij level 1
In level 1 moet je een tekst 'decoderen' door de letters 2 posities in het alfabet naar voren te schuiven. Ik heb een programmaatje geschreven dat een bestand met de text inleest en elke letter omzet in een cijfer, bij dat cijfer twee optelt en dan weer omzet in een letter. Het probleem is alleen dat, ondanks dat ik een for-loop gebruik, het programma alleen het eerste karakter pakt. (en dat dan weer wel goed decodeert) Ik heb geprobeerd er een 'teller' bij te zetten zonder resultaat. (pseudo: n=0, read(n), n= n+1).


Ik heb gegoogled voor een oplossing, maar kan niets vinden over het uitlezen van letter-voor-letter door pyhton.
Kan iemand mij helpen?

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:34
Je kunt gewoon over een string itereren (elk karakter krijg je dan los terug):
Python:
1
2
3
4
5
6
input  = "Hello world"
output = ""
for c in input:
    # transformeer hier 'c' op de gewenste manier
    output += c
print output

Ik heb een iets andere aanpak gebruikt, door eerst een functie f te definiëren die een karakter transformeert; de transformatie zelf is dan simpelweg te doen met:
code:
1
print ''.join(map(f, "blablalbla"))

Maar begin eerst maar eens met een for-loop werkend krijgen. ;)

[ Voor 6% gewijzigd door Soultaker op 12-04-2011 22:54 ]


Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Als aanvulling op Soultaker, een handig hulpmiddel hier is ook string.letters:
Python:
1
2
import string
print string.letters.find("c") # prints 2

Hiermee kun je dus ook makkelijk testen of het teken een letter is of een punt ofzo.

edit: als je bij level 2 bent kun je een aantal oplossingen zien voor level 1. Kijk als beginner vooral niet naar de oplossing onder "Being a complete Newbie " _O-

[ Voor 25% gewijzigd door user109731 op 12-04-2011 23:11 ]


Acties:
  • 0 Henk 'm!

  • TweakBoy
  • Registratie: Augustus 2001
  • Laatst online: 22:12

TweakBoy

---

haha.. oldie...

spoiler:
Soultaker noemt de functie al eigenlijk in zijn code op een slinkse wijze,
stap 2 is een scanner achtig component in textherkenning

---


Acties:
  • 0 Henk 'm!

  • kooka
  • Registratie: Juli 2004
  • Laatst online: 07-06 09:09
He, bedankt voor jullie snelle antwoorden!!
ga er vanavond meteen mee aan de slag!

Acties:
  • 0 Henk 'm!

  • MrHaas
  • Registratie: Maart 2009
  • Laatst online: 13-06 21:17
Succes, er zitten erg leuke puzzeltjes bij. Groot deel van m'n kerstvakantie er aan besteed en tot 24 gekomen. Binnenkort maar weer es tijd vrijmaken om verder te gaan!

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Vermakelijk, ik kende 'm nog niet :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1