In [1]:
planets = {
  'Merkur': (3.2, 88),
  'Venus': (6.0, 225),
  'Tellus': (8.3, 365),
  'Mars': (12.6, 687),
  'Jupiter': (43.2, 4333),
  'Saturn': (79.3, 10759),
  'Uranus': (159.6, 30687),
  'Neptun': (246.0, 60190)
}
In [2]:
# f-string, enkleste variant

for planet, data in planets.items():
    linje = f"{planet}, {data[0]}, {data[1]}"
    print(linje)
Merkur, 3.2, 88
Venus, 6.0, 225
Tellus, 8.3, 365
Mars, 12.6, 687
Jupiter, 43.2, 4333
Saturn, 79.3, 10759
Uranus, 159.6, 30687
Neptun, 246.0, 60190
In [3]:
# f-string, med format-direktiver

for planet, data in planets.items():
    formatert_linje = f"{planet:>10s} {data[0]:>8.2f} {data[1]:>6}"
    print(formatert_linje)
    Merkur     3.20     88
     Venus     6.00    225
    Tellus     8.30    365
      Mars    12.60    687
   Jupiter    43.20   4333
    Saturn    79.30  10759
    Uranus   159.60  30687
    Neptun   246.00  60190

{planet:>10s} - variabelen planet skrives ut høyre-justert med 10 plasser - s angir string (men s kan også utelates)

{data[0]:>8.2f} - element 0 i variabelen data skrives ut med over 8 plasser, herav to desimaler - f angir float

{data[1]:>6d} - element 1 i variabelen data skrives ut med over 6 plasser - d angir int (men d kan også utelates)

In [ ]:
# Eksempel fra forelesning (som vist)

            sosi_file.write(".KURVE " + KURVE + ":" + "\n")
            sosi_file.write("..OBJTYPE GeofLinjeInfo" + "\n")
            sosi_file.write("..ID " + pel_ID + "\n")
            sosi_file.write("..DATAFANGSTDATO "
                            + DATAFANGSTDATO + "\n")  # Fra riggrapport
            sosi_file.write("..BORLENGDE " + BORLENGDE + "\n")
            # Settes fast i begynnelsen av denne fila
            sosi_file.write("..KVALITET " + KVALITET + "\n")
            sosi_file.write("..NØH" + "\n")
            sosi_file.write(N + " " + E + " " + H1 + "\n")
            sosi_file.write(N + " " + E + " " + H2 + "\n")
In [ ]:
# Samme program, men med f-strings:

            sosi_objekt = (
                f".KURVE {KURVE}:\n"
                f"..OBJTYPE GeofLinjeInfo\n"
                f"..ID {pel_ID}\n"
                f"..DATAFANGSTDATO {DATAFANGSTDATO}\n"  # Fra riggrapport
                f"..BORLENGDE {BORLENGDE}\n"
                f"..KVALITET {KVALITET}\n"  # Fast verdi for alle objekter
                f"..NØH\n"
                f"{N} {E} {H1}\n"
                f"{N} {E} {H2}")

            print(sosi_objekt, file=sosi_file)

Legg merke til:

  • bruk av parentes for å la en setning gå over flere linjer
  • f må stå på starten av hver linje
  • \n er brukt for å få linjeskift
  • print er brukt for å skrive til fil