Python az iskolában Wiki
Advertisement

Bár a képernyőtörlés eléggé alapvető feladatnak látszik, aki végiggondolja, hogy az általa ismert nyelveken hogyan valósul meg, hamar rájön, hogy cseppet sem egyszerű dolog. Meglehetősen platformfüggő. Nem véletlen, hogy az érettségin sem elvárás… A Python – talán a jobb hordozhatóság érdekében – sok más programnyelvhez hasonlóan nem kínál beépített képernyőtörlő utasítást, de a kezdők tanításánál ez a probléma mégis jelentőséggel bír. Némi keresgélés után a következő képet sikerült alkotni:

Egy általános megoldás

Nem szép, de karakteres és grafikus felületen is működik:

print('\n' * 100)

Hátránya, hogy a kurzort a képernyő alján hagyja.

Karakteres felületen

Ez a módszer akár a karakteres shellablakban, akár a normál parancssorban jó, de platformfüggő.
Linuxban:

import os
os.system('clear')

Windowsban:

import os
os.system('cls')

Aki tudja a megoldást Macintoshra, írja ide.

Ez a két sor tökéletesen működik, ha programot futtatunk, ha azonban közvetlen parancsként adjuk ki a shellben, egy számot (pl. 0 vagy 256) ír ki a képernyő tetejére, ami a system függvény visszatérési értéke. Ezt úgy lehet elkerülni, ha belefoglaljuk egy értékadásba:

semmi=os.system('cls')

Végül pedig elhelyezhetjük ezt az utasítást egy olyan elágazásban, amely Windows és Linux esetén is működőképes, és e két rendszer között hordozható:

import os, platform
if platform.system() == 'Windows':
    os.system('cls')
else:
    os.system('clear')

Ezt akár egy függvénybe is beépíthetjük. (Az értékadást itt kihagytuk, mert az csak a shellben érdekes, és ott nem igazán probléma a hordozhatóság.)

Karakteres felületen, csak Unixban

Linux és BSD Unixok alatt használhatjuk a curses modul eszközeit, azonban ekkor a programunkat nem tudjuk átvinni Windowsra, ahol ez a modul jelenleg nem része a standard könyvtárnak.

Az IDLE-ben

A netes keresés azt mutatja, hogy a legjobb ismert megoldás a fenti „sok üres sor”, de egy fórumozó arra hívta fel a figyelmet, hogy mivel az IDLE nyílt forráskódú, akár bele is írhatjuk magunknak. :-)

Advertisement