Kezdőoldal » Számítástechnika » Programozás » Az alábbi program (python 3)...

Az alábbi program (python 3) miért nem működik?

Figyelt kérdés

Egy programot akartam írni, ami képes a caesar kódolásra és ez nagyjából sikerült is, viszont csak úgy, hogy egyesével meg kellett írnom minden egyes betűjéhez a kódolandó szónak 60 sort, így ezt le akartam egyszerűsíteni.


Az "a" betű kódolása:


while True:

word = input(":")

lst = list(word)


for i in range(2):

if lst[i] == "a":

lst[i] = "b"

result = "".join(lst)

print(result)


Ahogy észrevettem a hiba az lst[i]-ben van, vistont a python logikája alapján az i betűnek működnie kéne. Miért nem jó ag lst után az i és hogyan lehetne megoldani, hogy ehez hasonló módon jó legyen?



2018. júl. 11. 10:38
 1/3 anonim ***** válasza:
0%
Wat?
2018. júl. 11. 10:44
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

1. Használj kódmegosztó oldalt - pastebin, hastebin - mert így a Pythonban igen fontos indentálás elveszik (illetve jobban is olvashatóbb).

2. while True: - minek a végtelen ciklus?

3. for i in range(2): - mi van ha nem kettő betűből áll a bevitt szöveg?)

4. if lst[i] == "a": - a helyett, hogy egyenként leellenőrizgeted a betűket (ez egy fajta megoldás):

* a kód elején létrehozol egy, az ABC betűit tartalmazó listát: abc = list("abcdefghijklmnopqrstuvwxyz")

* a bevitt szöveg karakterein végigmenő ciklusban leellenőrzöd, hogy az adott karakter kisbetűs változata megtalálható-e az ABC betűit tartalmazó listában

* ha igen, a bevitt szöveg karaktereit tartalmazó lista adott elemét az ABC betűit tartalmazó lista megfelelő elemével helyettesíted


Itt megnézheted: [link]

2018. júl. 11. 12:19
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

Kösz a szakszerű választ!


1. Legközelebb pastebint fogok használni.


2. A végtelenített ciklus arra volt, hogy ne kelljen folyamatosan újraindítani a programot.


3. Igen, problémáim voltak a betűk számával, egyenlőre úgy oldottam meg, hogy csak adott számú betűből álló szót kódoljon.


4. A programod tökéletes és valószínűleg a a lehető legrövidebb, viszont, mivel sem a .lower, sem a .index parancsot nem ismertem így más módszerrel próbáltam megoldani, de most utána néztem és így már világos a működésük.


Azt viszont még mindig nem értem, hogy a te programodban miért működött a lst[i] parancs és az enyémben miért nem?

2018. júl. 11. 13:44

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!