Python3 print() függvény kulcsszó-paraméterei

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
#

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.

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!

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.

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!