[python] karakter inlezen
-
- Berichten: 11
[python] karakter inlezen
hallo mensen
ik heb een vraag over python
ik ben bezig met een programmaatje.
maar ik zit met een probleem. ik wil dat je een letter invoert en dan geeft hij een ander letter dit lijkt misschien stom maar wat ik er mee van plan ben is best wel cool
dit is wat ik tot nu heb
maar hij geeft altijd fout als ik a intypen
import sys
print ('type een leter in')
inp = sys.stdin.readline()
a = 'a'
if inp == a:
print'lol'
else:
print 'fout'
wat doe ik fout
alvast bedankt
ik heb een vraag over python
ik ben bezig met een programmaatje.
maar ik zit met een probleem. ik wil dat je een letter invoert en dan geeft hij een ander letter dit lijkt misschien stom maar wat ik er mee van plan ben is best wel cool
dit is wat ik tot nu heb
maar hij geeft altijd fout als ik a intypen
import sys
print ('type een leter in')
inp = sys.stdin.readline()
a = 'a'
if inp == a:
print'lol'
else:
print 'fout'
wat doe ik fout
alvast bedankt
- Berichten: 7.390
Re: [python] karakter inlezen
Dat duurde even voor ik het vond. Ik zat me blind te staren want ik zag de fout niet.
Ik denk dat ik een oplossing heb gevonden. Verander
naar
Dan wordt er net één char ingelezen. Anders denk ik dat de \n wordt meegenomen.
Als iemand iets anders weet, dan hoor ik het ook graag!
Ik denk dat ik een oplossing heb gevonden. Verander
Code: Selecteer alles
inp = sys.stdin.read()
Code: Selecteer alles
inp = sys.stdin.read(1)
Als iemand iets anders weet, dan hoor ik het ook graag!
"C++ : Where friends have access to your private members." Gavin Russell Baker.
-
- Berichten: 11
Re: [python] karakter inlezen
sorry nee dat werkt ook niet en
dan krijg ik dit
ik snap het zelf ook niet meer maar bedankt voor het proberen
dan krijg ik dit
Code: Selecteer alles
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Bureaublad\lol.py", line 4, in <module>
inp = sys.stdin.read(1)
AttributeError: read
>>>
ik snap het zelf ook niet meer maar bedankt voor het proberen
- Berichten: 2.609
Re: [python] karakter inlezen
Het is een simpele vraag, maar dat blijkt niet zo evident te zijn in Python.
Kijk hier eens. Als ik op google zoek kom ik steeds op diezelfde code terecht.
Dit is wat ik zelf heb bedacht: het is niet echt een mooie oplossing, maar als je het als volgt doet dan werkt je programma wel:
Kijk hier eens. Als ik op google zoek kom ik steeds op diezelfde code terecht.
Dit is wat ik zelf heb bedacht: het is niet echt een mooie oplossing, maar als je het als volgt doet dan werkt je programma wel:
Code: Selecteer alles
import sys
print ('type een leter in')
inp = sys.stdin.readline()
if inp == 'a\n':
print 'lol'
else:
print 'fout'
-
- Berichten: 11
Re: [python] karakter inlezen
er stond read ik weet niet of dat goed was ik heb er readline van gemaakt en dan geeft ie direct fout
Code: Selecteer alles
import sys
print ('type een leter in')
inp = sys.stdin.readline(1)
a = 'a'
if inp == 'a':
print'll'
else:
print 'fout'
- Berichten: 2.609
Re: [python] karakter inlezen
Probeer eens met de code die ik hierboven gaf. Het idee is dat je niet probeert van die ene character te lezen, maar dat je je bewust bent van het feit dat je die newline meekrijgt en daar rond werkt.
Je kan ook gewoon zeggen dat je van inp enkel het eerste karakter wil overhouden.
Je kan ook gewoon zeggen dat je van inp enkel het eerste karakter wil overhouden.
-
- Berichten: 11
Re: [python] karakter inlezen
het werkt inderdaad
maar wat betekent
dan die 'a\n'
dat snap ik niet helemaal maar heel erg bedankt nu kan ik door met het programmaatje
maar bedankt
maar wat betekent
Code: Selecteer alles
if inp == 'a\n':
dat snap ik niet helemaal maar heel erg bedankt nu kan ik door met het programmaatje
maar bedankt
- Berichten: 2.609
Re: [python] karakter inlezen
Je verwacht dat er 'a' staat in de input van de gebruiker. Maar door de functie die je aanroept krijg je ook steeds nog een witregel mee. Als je len(inp) bekijkt zal je zien dat die 2 is ipv 1.
De code voor een witregel wordt gegeven door '\n' als je weet dat die witregel mee in inp zit dan kan je daar rekening mee houden door hem ofwel te verwijderen, ofwel door hem ook in de controle te zetten.
if inp = 'a\n' kijkt dus na of in inp een a staat, gevolgd door een witregel.
a = 'a'
if inp == a:
Die regel vond ik een beetje overbodig. Ik heb die op 1 lijn geschreven.
De code voor een witregel wordt gegeven door '\n' als je weet dat die witregel mee in inp zit dan kan je daar rekening mee houden door hem ofwel te verwijderen, ofwel door hem ook in de controle te zetten.
if inp = 'a\n' kijkt dus na of in inp een a staat, gevolgd door een witregel.
a = 'a'
if inp == a:
Die regel vond ik een beetje overbodig. Ik heb die op 1 lijn geschreven.
Ik ben benieuwdmaar wat ik er mee van plan ben is best wel cool
-
- Berichten: 11
Re: [python] karakter inlezen
oké nu snap ik het ja wat ik ga maken is een soort van vertaler als je hoi intypt dan laat het programmaatje hoi zien in het 'standard galactic alfabet' dat moet het worden.
maar erg bedankt voor de uitleg. ik kan het wel zo gebruiken maar het is beter om te weten hoe het werkt.
nu moet ik alleen nog zorgen dat als je meerdere Letters intypt hij ze allemaal vertaald ik heb wel een idee hoe ik het ga doen maar suggesties zijn welkom.
maar erg bedankt voor de uitleg. ik kan het wel zo gebruiken maar het is beter om te weten hoe het werkt.
nu moet ik alleen nog zorgen dat als je meerdere Letters intypt hij ze allemaal vertaald ik heb wel een idee hoe ik het ga doen maar suggesties zijn welkom.
Code: Selecteer alles
ant = ''
dan iets wat letter voor letter doet
ant = inp + ant
zo iets
ik ken iemand die weet hoe dat moet moet ik binnen kort eens vragen