Kezdőoldal » Számítástechnika » Programozás » Szeretnék egy kis segítséget...

Szeretnék egy kis segítséget Pythonban. (? )

Figyelt kérdés

Sziasztok a következő a feladat:


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

karaktereit.

Így például « zorglub » ­ból « bulgroz» lesz.


El is készítettem:


a = "szia"

n=a[3]

b=0

while b < 4:

....print (a[3-b],)

....b=b+1


Csak egy gond van vele: Nem egy sorba írja ki a "aizs" szót, hanem:

a

i

z

s


Nem tudom, hogy csinálhatnám meg, hogy egy sorba írja..

Találtam egy ilyet, hogy:


>>> a, b, c = 1, 1, 1

>>> while c < 11 :

... print b,

... a, b, c = b, a+b, c+1

Amikor elindítjuk a programot, a következőt kapjuk :

1 2 3 5 8 13 21 34 55 89

A Fibonacci sor tagjai ugyanabba a sorba vannak kiírva. Ezt annak a vesszőnek köszönhetjük, amit a print

utasítást tartalmazó sor végére írtunk. Ha töröljük a vesszőt, akkor a számok egymás alá lesznek írva.


A segítségeket előre is megköszönném...


Az én esetemben, tökmindegy hova rakom a vesszőt, ugyanúgy egymás alá irkálja...



2015. nov. 8. 16:35
1 2
 1/15 anonim ***** válasza:
100%
2015. nov. 8. 16:41
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:

Köszönöm.


print (a[3-b],end="",flush=True)

Így már működik. :P

2015. nov. 8. 16:49
 3/15 anonim ***** válasza:
100%

Szöveg megfordítása egyébként ennyi Pythonban:

print("szia"[::-1])

2015. nov. 8. 18:00
Hasznos számodra ez a válasz?
 4/15 A kérdező kommentje:

Köszi, ezt megjegyzem.


Egyébként, egy könyv alapján megyek végig, ott pedig, még nem írtak ilyet.

2015. nov. 8. 21:21
 5/15 anonim ***** válasza:

Csak szólok, hogy a feladat az volt, hogy "egy új változóba fordított sorrendben másolja át egy karakterlánc karaktereit."

Azzal, hogy kiíratsz valamit, a feladatot még nem oldottad meg.

További kérdések:

a = "szia"

n=a[3] # ez minek ide???

b=0

while b < 4: # mi ez a 4? Ha a = "szevasz", akkor már ez nem működik...

....print (a[3-b],) # mi ez a 3? Ha a = "szevasz", akkor már ez nem működik..

....b=b+1


Egy fokkal jobb megoldás:

a = "szia"

b = 0

uj = ""

while b < len(a):

....b.append(a[len(a)-1-b])

....b = b + 1

print(uj)


Az igazi persze tényleg az, hogy

uj = a[::-1]


de ezt majd később tanulod úgyis.

2015. nov. 9. 10:02
Hasznos számodra ez a válasz?
 6/15 A kérdező kommentje:

Igen, átnéztem utána, rájöttem, hogy az a "n", ott tök felesleges volt....


Egyébként, a kódodba használt "append"-et sem tanultam még, szóval abból gazdálkodtam, amit tudtam....

2015. nov. 9. 21:55
 7/15 anonim ***** válasza:

Hát ez baj, amikor nem tudja az ember, hogy amikor segítséget akar adni, mennyi előzetes ismeretet feltételezzen. Ha nagyon minimumról indultál, és a legminimálisabb eszközkészletet tételezek fel, akkor ezt javasolnám:


string = "cirmoscica"

rev_string = ""

for i in range(1,len(string)+1):

rev_string = rev_string + string[-i]


print rev_string


Bár ha az indexelést tudod, akkor a [::-1] is ismerős lehet, lévén indexelésen alapuló megoldás (mondjuk én se ismertem :).

2015. nov. 9. 23:37
Hasznos számodra ez a válasz?
 8/15 A kérdező kommentje:

Köszönöm... :D


Egyébként:

[link]


Itt haladok sorban... bár az elmúlt ~2 napban (+ a mai nap) nem volt időm rá, mivel nem ezt tanulom a suliban...


50. Oldalt a "Gyakorlatok"-nál járok....


Sajnos, még a "for" szót sem tanultam...

2015. nov. 10. 17:58
 9/15 A kérdező kommentje:

Eljutottam most idáig:


a="mindegymicsoda"

b=0

c=len(a)

while b<=c:

....print (c-b)

....b=b+1


Nos, szépen ki is írja egymás alá az "a" betűinek a sorszámát... viszont emlékeim szerint nem tanultam olyat, amivel ezeket a "számokat" "betűkké" tudnám alakítani....


Próbáltam olyat is, hogy: print (a[c-b]) viszont itt nyilván nem fogadta el....


Próbáltam az int függvénnyel kezdeni valamit, de ugyanez lett a helyzet.. bár mondjuk az a stringet számmá alakítja, de egy próbát megért...

2015. nov. 10. 18:35
 10/15 anonim ***** válasza:

Gondolom azért mert indexelési hibát kapsz. Ha megszámolod a sorszámokat, 14-től a 0-ig, 15 darab szám lesz ott. A szöveg viszont csak 14 karakteres!


A c=14 és a b=0-val indítasz. Amikor azt írod hogy a[c-b] akkor az a[14-0] vagyis a[14]. Az "a" szövegben viszont csak 0 és 13 között tudod indexelni a betűket, vagyis az a[13] az utolsó betű, a[14]-re már "IndexError" kivételt dob.

Megoldás hogy a "b" változó kezdőértéke ne 0 legyen hanem 1, vagy a "c" legyen len(a)-1.


Mindig olvasd el a hibaüzenetet mert megmondja mi a hiba!

2015. nov. 10. 19:15
Hasznos számodra ez a válasz?
1 2

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!