Kezdőoldal » Számítástechnika » Programozás » Python 3.4.2 írtap egy scripte...

Sanya99 kérdése:

Python 3.4.2 írtap egy scriptet, de nem tudom mi a baja?

Figyelt kérdés

Itta a script(elméletileg a if-es sorral van valami):

sz = input(""""Adjon meg egy szöveget: """)

k = input("""Adjon meg egy betűt, amire kiváncsi, hogy hányszor szerepel a szövegben:""")

d = 0

i = 0

while i <= (len(sz)):

  if sz[i] == k:

  d = d+1

  i = i+1

print (d, k, """karakter szerepel ebben a szövegben.""")

x = input('Nyomjon Enter-t a kilépshez.')



2015. febr. 5. 20:50
 1/7 anonim ***** válasza:

Először is ne használj 3 idézőjelet, csak egyet, mert így átláthatatlan a forrás. A 3 idézőjel nem erre való.


Másodszor meg írd meg, hogy mit csinál a program, és mi a bajod azzal, amit csinál, ha válaszokat is akarsz, mert nem vagyunk gondolatolvasók.

2015. febr. 5. 21:06
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Hajtsd végre lépésenként a kódot és nézd meg, hogy melyik i értéknél ad ki hibát. Illetve próbáld értelmezni a hibaüzenetet. Gondolkozz el azon, hányszor fog végrehajtódni a ciklusmag?

Aztán rá fogsz jönni, hogy az ifes sor nagyon rendben van, nem az a hiba forrása.

2015. febr. 5. 21:31
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

#1:Ha elolvastad volna a leírást rendesen és értelmezed

is, akkor "nagyon" nehezen, de rájöhettél volna, hogy

mitcsinál a program. Ráadásul ha tudnám mi baja van

nem kérdeztem volna meg...


#2: [link]

2015. febr. 5. 21:56
 4/7 anonim ***** válasza:
próbáld meg úgy hogy a while i <= (len(sz) - 1):
2015. febr. 5. 22:05
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
100%

Először is van erre függvény:

sz = 'Hello World'

d = sz.count('l') #d=3 lesz, meg 3 db 'l' van a szövegben


Másodszor is ahogy azt másik is írták ne használj tripla idézőjelet ha a szöveg 1 soros. Tripla idézőjel akkor jó ha több soros szöveget írsz, így nem kell kiírni többek között a sortöréseket:


"""valami

akarmi

stb""" == 'valami\nakarmi\nstb'


Harmadszor: ha egy iterálható objektum elemein akarsz végigmenni, használj for ciklust:


d=0

for betu in szoveg:

 &enspd += betu==k


A hibát a while feltételében keresd.

Ha van egy 3 betűs szó, akkor annak betűi szó[0]+szó[1]+szó[2], és nem létezik olyan hogy szó[3], ekkor IndexError-t fogsz kapni. Ez azt jelenti, hogy nem létezik olyan indexű elem.


A végén pedig nem kell beolvasni az "x" változóba az inputot ha nem fogod használni, elég csak azt írni hogy:


input('Nyomj entert')

2015. febr. 5. 22:06
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

A példa ez akart lenni:


d=0

for betu in szoveg:

  d += betu==k


De szétszedhető úgy is ahogy te írtad:


if betu == k:

  d = d + 1


#4 Nem lenne okosabb a következő?

while i < len(sz):

2015. febr. 5. 22:11
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
100%

Sanyika,


én elolvastam rendesen, és nem azt kérdeztem, hogy szerinted mit kéne csinálnia, hanem hogy MIT CSINÁL.

Kiír eredményt?

Mit?

Elakad hibaüzenettel?

Ha igen, mi az?

Na ez egy értelmes kérdéskiírás. Nem az, hogy "de nem tudom mi a baja?".


Segíteni próbáltam, de rossz helyen, mert már megint beleszaladtam valakibe, aki a segítőknek szól be gondolkodás helyett. Azért köszönöd, hogy rád szántam az időmet, többet nem fogom.

2015. febr. 6. 00:50
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!