Com fer que els print‘s no afegeixin el final de línia

  1. Per explicar-ho farem servir exemples. En primer lloc definim una funció countup(n) que escriu els valors del 1 a n en ordre ascendent, un en cada línia:

    >>> countup(4)
    1
    2
    3
    4
    

    Una solució que fa servir el for in range la teniu al fitxer countup1.py:

    def countup(n):
        for i in range(1, n+1):    # El valor n+1 no forma part del range, per tant els valors de i dintre del for seran 1..n .
            print(i)                 # Escriu els valors 1..n, cadascú en la seva iteració i amb el seu FINAL DE LÍNIA.
    

    Cada print(i) escriu el valor de i i afegeix un final de línia, de forma que en la següent iteració el print del nou valor de i es farà en la línia següent. Tots i cadascun dels valors escrits porten el seu final de línia.


  1. Ara farem una nova funció que escriu tots els valors en una mateixa línia, separats per guions (‘-‘). Per tant després de l’últim valor no ha d’haver-hi un guió:

    >>> countup(4)
    1-2-3-4
    
    1. Una primera solució la teniu al fitxer countup2.py:

      def countup(n):
          for i in range(1, n+1):
              print(i, end='')         # Escriu els valors 1..n, SENSE FINAL DE LÍNIA.
              if i < n:                  # Si encara no és l'últim valor, llavors
                  print('-', end='')     # escriu el GUIÓ '-' després, també SENSE FINAL DE LÍNIA.
          print()                      # Quan el for acaba s'escriu l'únic FINAL DE LÍNIA, darrera del valor n.
      

    Per tant, si es vol que el print no inclogui un final de línia se li ha d’afegir a la instrucció print l’argument end=’‘. Amb això el següent print que es faci continuarà escrivint a la mateixa línia que l’actual.


  1. Una solució alternativa, que porta el print de l’últim valor fora del for, la teniu al fitxer countup3.py:

    def countup(n):
        for i in range(1, n):    # El for NO INCLOU el valor n perquè n NO PORTA GUIÓ '-' DARRERA.
            print(i,   end='')     # Escriu els valors 1..n-1, sense final de línia.
            print('-', end='')     # Escriu el GUIÓ '-' després de cada valor, sense final de línia.
        print(n)                 # Quan el for acaba s'escriu l'últim valor n,
                                 # AMB FINAL DE LÍNIA, i SENSE GUIÓ '-' DARRERA.
    

  1. Per últim, aquesta altre solució, que fa servir l’espai com a caràcter de final de línia (end=’-‘), la teniu al fitxer countup4.py:

    def countup(n):
        for i in range(1, n):    # El for NO INCLOU el valor n perquè n NO PORTA GUIÓ '-' DARRERA.
            print(i, end='-')      # Escriu els valors 1..n-1, AMB L'GUIÓ '-' com a caràcter DE FINAL DE LÍNIA.
        print(n)                 # Quan el for acaba s'escriu l'ultim valor n,
                                 # AMB FINAL ESTÀNDARD DE LÍNIA, i SENSE GUIÓ '-' DARRERA.