Udskriv flere argumenter i Python

Dette er blot et uddrag af min kode:

print("Total score for %s is %s  ", name, score)

Men jeg vil have den til at udskrive:

"Samlet score for (navn) er (score)"

hvor name er en variabel i en liste og score er et heltal. Dette er Python 3.3, hvis det hjælper på nogen måde.

Der er mange måder at gøre dette på. Hvis du vil rette din nuværende kode ved hjælp af %-formatering, skal du indsende en tupel:

  1. Overfør det som en tupel:

     print("Samlet score for %s er %s" % (navn, score)))

En tupel med et enkelt element ser ud som ('this',).

Her er nogle andre almindelige måder at gøre det på:

  1. Overfør det som en ordbog:

     print("Samlet score for %(n)s er %(s)s" % {'n': navn, 's': score})

Der'er også ny stil for strengformatering, som måske er lidt lettere at læse:

  1. Brug new-style string formatering:

     print("Samlet score for {} er {}".format(name, score)))
  2. Brug new-style stringformatering med tal (nyttigt til omfordeling eller udskrivning af det samme tal flere gange):

     print("Samlet score for {0} er {1}".format(name, score))
  3. Brug new-style strengformatering med eksplicitte navne:

     print("Samlet score for {n} er {s}".format(n=navn, s=score))
  4. Sammenkædning af strenge:

     print("Samlet score for " + str(name) + " er " + str(score)))

De to klareste, efter min mening:

  1. Du skal bare sende værdierne som parametre:

     print("Samlet score for", name, "is", score)

    Hvis du ikke ønsker, at der automatisk skal indsættes mellemrum ved hjælp af print i ovenstående eksempel, skal du ændre parameteren sep:

     print("Samlet score for ", navn, " er ", score, sep='')

    Hvis du bruger Python 2, vil du ikke kunne bruge de to sidste, fordi print ikke er en funktion i Python 2. Du kan dog importere denne adfærd fra __future__:

     from __future__ import print_function
  2. Brug den nye f-strengformatering i Python 3.6:

     print(f'Samlet score for {navn} er {score}')
Kommentarer (4)

For at holde det enkelt, kan jeg personligt godt lide sammenkædning af strenge:

print("Total score for " + name + " is " + score)

Det virker med både Python 2.7 og 3.X.

BEMÆRK: Hvis score er en int, skal du konvertere den til str:

print("Total score for " + name + " is " + str(score))
Kommentarer (0)

Prøv bare:

print("Total score for", name, "is", score)
Kommentarer (0)