Kezdőoldal » Számítástechnika » Programozás » Miért nem megy ez a Python...

Miért nem megy ez a Python program? (egyszerű kis feladat)

Figyelt kérdés

Feladat: "Írjon egy programot, ami meghatározza, hogy egy karakterlánc tartalmazzae az « e » karaktert."


Próbálkozás ami nem megy:


kl='live'

n=0

betu=0

e='e'


while kl[n]==e:

betu=betu+1

n=n+1

print betu,"darab e betut talaltam"


Kijavítaná valaki esetleg egy kis magyarázattal?



2012. febr. 3. 13:48
 1/10 A kérdező kommentje:

Pl itt egy következő feladat, lehet valamivel nem vagyok rendesen tisztába:

"Írjon egy programot, ami egy új változóba fordított sorrendben másolja át egy karakterlánc

karaktereit."


Tehát ha írok egy hello szót, azt úgy írja ki a végén hogy

olleh...while-ra van szükségem igaz?


a='levi'

n=3

b=0



while n==0:

b=a[n]

n=n-1


Ez így közelít a megoldáshoz?

Mivel van a gondom? Nagy szükségem lenne egy két segítségre, aki érti megkérem kicsit segítsen be.

2012. febr. 3. 14:01
 2/10 A kérdező kommentje:

>>> nev='levi'

>>> nev

'levi'

>>> nev[0]

'l'

>>> b=0

>>> b=nev[3]+nev[2]+nev[1]+nev[0]

>>> print b

ivel


Igy megírtam de scriptként hogyan építsem fel a programot, majd futtassam?

2012. febr. 3. 14:04
 3/10 iostream ***** válasza:

Első problémára:

if 'e' in 'live':

print 'bennevan'



Második problémára:

'hello'[::-1]

2012. febr. 3. 15:10
Hasznos számodra ez a válasz?
 4/10 iostream ***** válasza:
Jah és sok sikert, a Python egy gyönyörű és iszonyatosan erős nyelv.
2012. febr. 3. 15:10
Hasznos számodra ez a válasz?
 5/10 A kérdező kommentje:

Remek...bár nem hinném, hogy az első kurzusaimon feladott feladatokra ha ezt így elvinném, el is lenne fogadva a feladat, szerintem alaposabban kéri összedobni ezeknek az algoritmusát. De egy másik kérdés. Ha a hello szó megfordítása 'hello'[::-1] akkor egy listát hogyan fordítok meg?


pl. t3=[1,2,3]

2012. febr. 3. 15:18
 6/10 anonim ***** válasza:

Az első amit írtál már alapból elméleti hibás.

Mármint mit akarsz a "while kl[n]==e: "-vel?

Ez azt jelenti, hogy addig megy, amíg az n. betű "e".

Neked pedig nem ez kéne, hanem a szó végéig menni (azaz mondjuk amilyen hosszú, ahány karakter) és minden betűre megnézni, hogy egyenlő-e "e"-vel. Ha igen, akkor növeled a betű számot.

2012. febr. 3. 16:08
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

A lista megfordítás is olyan, mint egy szövegé (ha jól rémlik), szóval tök ugyan úgy csináld.

(De mintha ezt közben külön is megkérdezted volna és már kaptál volna rá választ.)

2012. febr. 3. 16:10
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
100%

Alaposabban összedobott algoritmus? A Python zenjére! Ennek a nyelvnek az a lényege, hogy egyszerű, letisztult, szép programokat lehet vele írni. Ha ezt beadod, a tanárnak el KELL fogadnia, mert nem attól szép a program, hogy hosszú. Plusz szabad a dokumentációt is olvasgatni, szóval ha azzal jön, hogy a szeletelést még nem tanultátok, akkor megmondod, hogy olvastál róla.


De az első, kérdésben kiírt programodban ott a hiba, hogy nem indul el. A feltétel, ami ellenőriz az, ahogy a kl string n-edik eleme 'e': ez hamis, hiszen n=0, vagyis az adott betű "l". Mivel hamis, a ciklus azonnal megszakad. Helyesen így kéne: addig megy, amíg _nem_ e, azaz:

while kl[n] != e:

Így végigmenne az e-ig, majd kilépne. Ez sem jó, mert te megszámolni akarod (bár egyszerűbb lenne csak kiírni az első találatnál), vagyis n-t kell inkrementálni ln(kl)-ig, azaz a szó karaktereinek számáig. Ez jelen esetben 4. Utána egy if ciklus, hogy ha e-t lát növelje a betu változót, és ezt írhatod ki a végén printtel. Azaz:

while n < len(kl):

if kl[n] == e:

i+=1 #ez megfelel az i=i+1-nek

n+=1

print betu, " darab e van benne"


Így érthető?

2012. febr. 3. 16:21
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:
Igen, köszi.
2012. febr. 3. 16:25
 10/10 iostream ***** válasza:
Ahogy az utolsó mondja. A Python egy erős nyelv, ennek megfelelően tömören tudod kifejezni, amit akarsz. Ez kb olyan, mint amikor C++-ban azt mondják, hogy írj egy listát, te pedig behúzd a <list> fejállományt, és vigyorogsz. Amit már megírtak azt nem kell mégegyszer megírni. Ha a strukturális programozást akarod gyakorolni, akkor meg érdemes egy olyan nyelvet választani, ami nem kínál magasabb szintű lehetőségeket (C, Pascal).
2012. febr. 5. 17:21
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!