Hello!
A segítségeteket szeretném kérni. Meg akarom érteni, hogy az alábbi egyszerű kódban miért jár más eredménnyel az end='' paraméter és az új sor '\n' használata. Ha jól tudom alapértelmezetten az end='' paraméter is '\n'.
A kettő között az a különbség jelentkezik, hogy az első kiíratás alá nem jön létre egy új üres sor, míg a második kiíratás esetben igen. Python 3.4.2 van telepítve.
#!/usr/bin/env python3
print("alma", "banan", end='\n')
print("citrom", '\n')
print("eper")
Kimenet:
#
alma banan
citrom
eper
#
- 1888 megtekintés
Hozzászólások
Ha több elem kiírásánál használod az end paramétert akkor az csak az utolsó elem után jut érvényre közöttük nem.
Mivel a citrom implicit tartalmaz egy '\n'-t, és ehhez jön még hozzá a ,'\n' amit mögé írtál. Ezért lesz új sor utána.
- A hozzászóláshoz be kell jelentkezni
Azt hiszem értem. A második sorban való újbóli '\n' használata miatt kaptam üres sort a citrom és eper karakterlánc között. Én azt hittem, hogy az end='\n' paraméter használata új üres sorokat hozz létre minden olyan kiírás után amelyikben használjuk. De ezek szerint üres sor csak ennek folytán sehol nem keletkezik, mindössze új sorban íródnak ki a print() függvények tartalmai. Köszönöm szépen a segítséget!
- A hozzászóláshoz be kell jelentkezni
Az első gondolatod helyes. A második nem, mert több elem esetén csak az utolsó után rakja ki az end-ben definiált sorvéget. Ami lehet akár üres is akkor nem lesz soremelés.
- A hozzászóláshoz be kell jelentkezni
Kezd összeállni a dolog. Azzal, hogy az első sorban megadtam az end='\n' paramétert, nem befolyásoltam semmit, hisz az amúgy is az alapértelmezett volt. A második sorban az implicit '\n' elvégezte a soremelést, de mivel ott szerepel még egy '\n' ezért újabb soremelés történt, ami ugye így egy üres sorhoz vezetett.
Ami azt a részt illeti, hogy "több elem esetén csak az utolsó után rakja ki az end-ben definiált sorvéget" azt én úgy értelmezem, hogy ha egy print() függvényen belül több elem van (ebben az esetben az "alma" és "banan") akkor csak az utolsó elem, azaz a "banan" karakterlánc után rakja ki az end-ben definiált sorvéget.
- A hozzászóláshoz be kell jelentkezni
próbáld ki ezt:
print('bigyó', '\n', end='')
- A hozzászóláshoz be kell jelentkezni
Kipróbáltam és az történt, hogy az '\n' elvégezte a soremelést, míg az end='' paraméter nem kapott értéket.
Emiatt csak egy soremelés történt, mintha csak azt írtam volna, hogy: print('bigyó').
Azt hiszem azt kellett megértsem, hogy az elemek között elhelyezett '\n' független az end='' paramétertől, az utóbbi több értéket is felvehet, nem csak új sor létrehozására képes. Viszont, ha az end='\n' értéket kap, akkor ugyan az a hatásuk. Köszönöm mindkettőtöknek a segítséget!
- A hozzászóláshoz be kell jelentkezni