Kezdőoldal » Számítástechnika » Programozás » Miért nem működnek a Python-ba...

Miért nem működnek a Python-ban megírt egyszerü 'alap' kis programok sem?

Figyelt kérdés

Egy régi kérdést szeretnék feszegetni: Az alábbi kis program,szerintem sokatoknak ismert, a Fibonacci sor első pár elemét kellene kiírnia egy sorban:

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

>>> while c < 11:

print('b,')

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

Azonban nem, hogy NEM egy sorban történik a kiírás mint másoknál, ahogy olvastam, egymás alatt. Hanem az eredmeny a következő lesz:

>>>b

b

b

b és sorolhatnám. Ahogy megadjuk neki 11-ig írja ki az eredményt ami nem helyes. Csupa B-t kapok.A segítségeteket kérem abban, hogyan lehet ezt a 'kis' egyszerű feladatot megoldani. Biztos sokan tudjátok de nem 'alternatív' megoldások érdekelnek, hanem a fenti program miért nem működik ahogy kell. Egy Python programozásról szóló könyvből származik a példa ami itt tökéletesen lett másolva a kérdés a könyv van rosszul 'copyzva' vagy én hagytam figyelmen kívül valamit. Programozás terén egyébként abszolút kezdő kiváncsi kérdező vagyok, válaszotokat köszönöm.

Üdv,


2017. nov. 14. 12:00
 1/8 anonim ***** válasza:
100%
Talán azért, mert a '' jelek közé tett SZÖVEGET szövegként értelmezi?
2017. nov. 14. 12:03
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
A fenti válaszhoz annyit tennék hozzá, hogy a Python print függvénye automatikusan beilleszt egy újsort minden meghívás után, hogy könnyebben olvashatóbb legyen az output. Talán nem minden környezet alatt, de azért jellemzően igen. Annak, aki ahhoz van szokva, hogy minden apróságot magának kell beáll1tani (mert pl. C-ben programozott régebb), annak iszonyatosan zavaró lehet, nekem is ez volt az elején. Ha mindenképpen el akarod ezt nyomni és magad állítgatni az ilyen dolgokat is (amit amúgy melegen ajánlok, mert kicsit jobban a dolgok mögé látsz), akkor a sys osztály (könyvtár? Rég volt Python a kezemben, nem vagyok biztos) importálását javaslom, és a sys.stdout.write() függvénnyel dolgozz tovább.
2017. nov. 14. 20:12
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

A lényeg:

print('b,')

helyett

print(b,)

2017. nov. 14. 20:28
Hasznos számodra ez a válasz?
 4/8 tabaki ***** válasza:

#3:

Pontosabban:

print(b),


„Azonban nem, hogy NEM egy sorban történik a kiírás...”

Azonban DE, mivelhogy az utasítás végére tett vessző gondoskodik róla. Az a könyv eléggé félre lehet „copyzva”, de így legalább serkenti a gondolkodást.

2017. nov. 15. 00:07
Hasznos számodra ez a válasz?
 5/8 tabaki ***** válasza:

a, b, c = 1, 1, 1

while c < 11:

      print(b),

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


Kimenet:

1 2 3 5 8 13 21 34 55 89

2017. nov. 15. 00:12
Hasznos számodra ez a válasz?
 6/8 tabaki ***** válasza:

Khmmm... még egy kis kiigazítás. A sorvégi vessző a kettesben működik, a hármasban meg nem, ez is oka lehet az egymás alá írásnak. Python3-ban próbáld így írni a sort:

print(b, end = ' ')

2017. nov. 15. 01:20
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
0%

"Miért nem működnek a Python-ban megírt egyszerü 'alap' kis programok sem?"

Mert már az egyszerű 'alap' kis programokat is hibásan írtad meg.

Mi lesz később?

2017. nov. 15. 09:54
Hasznos számodra ez a válasz?
 8/8 tabaki ***** válasza:
100%

@#7:

Mivel magam sem értek hozzá, én ez egyszer nem lennék ilyen szigorú. Úgy tűnik, Kérdező még az alapokkal való ismerkedésnek is az elején van, csak a bemutatott példák alapján kíváncsiskodik, hogy hogy is megy ez. Egyelőre annyit tett, hogy megpróbálta a példát tökéletesen bemásolni, és eléggé lelombozó lehet, hogy máris mást kapott, mint amit a könyve ígért, meg aztán a megértésnek sem kedvez; Szerintem helyénvaló, hogy rákérdezett. Nyugi, eljön még az idő, amikor már olyasmit szúr el, amit tudnia kéne, akkor bezzeg ráhúzhatjuk majd a vizes lepedőt...

2017. nov. 15. 11:35
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!