Miten tekisi seuraavanlaisen:
Cmabrigden yilopitson tuktimusken muakaan, ei ole väilä msisä jäjretsyksessä sanan kijraimet ovat, ainoa täkreä aisa on, että esnimmäinen ja viimienen kijrain ovat oikelila piakiolla. Loput voiavt olla missä jäjretsyskessä tahasna ja imhinen voi sitli lukea tesktin ongemlitta, koksa aiovt eiävt lue jokaitsa kijraitna eriskeen, vain sanan kokoniasuuetna.
Cmabrigden yilopitson tuktimusken muakaan, ei ole väilä msisä jäjretsyksessä sanan kijraimet ovat, ainoa täkreä aisa on, että esnimmäinen ja viimienen kijrain ovat oikelila piakiolla. Loput voiavt olla missä jäjretsyskessä tahasna ja imhinen voi sitli lukea tesktin ongemlitta, koksa aiovt eiävt lue jokaitsa kijraitna eriskeen, vain sanan kokoniasuuetna.
Vastaukset 4
Vanhimmat
import sys,random
for sana in sys.stdin.read().split():
valissa=list(sana[1:-1])
random.shuffle(valissa)
sys.stdout.write(" " sana[0] "".join(valissa) sana[-1])
Tämä toimii teksteille, joissa sanojen pituus on vähintään kaksi merkkiä. Odotettavissa on siis ongelmia mm. lukujen kanssa. Harjoitustehtäväksi jää korjata ohjelma siten, että yhden merkin mittaiset sanat käsitellään myös oikein.
Näköjään harjoitustehtäväksi jäi myös sisennyksen korjaaminen, koska tämä keskustelupalsta näköjään syö rivien alusta tyhjät merkit pois. Ei kovin hyvä palsta julkaista Python-koodia. =)
Tällainen ratkaisu tuli ekana mieleen. Tällaisen muutoksen voi lähdekoodiin tehdä mekaanisesti ja tämä tulostaa vain sen oikean koodin. Evalilla voisi tehdä sellaisen, joka suorittaa...
for line in """\
0:import sys,random
0:for sana in sys.stdin.read().split():
4:valissa=list(sana[1:-1])
4:random.shuffle(valissa)
4:sys.stdout.write(" " sana[0] "".join(valissa) sana[-1])\
""".split('\n'):print " "*int(line.split(":")[0]) line.split(":",1)[1]
Joo, ei ole yhtä kaunis kuin sika pienenä...
tabulaattori
ainakin
tulee
tekstiin
kun
käyttää
copy-pastea
:-)
Esikatselu kuitenkin vie sisennykset pois :(