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.
281
3
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:Overfør det som en tupel:
En tupel med et enkelt element ser ud som
('this',)
.Her er nogle andre almindelige måder at gøre det på:
Overfør det som en ordbog:
Der'er også ny stil for strengformatering, som måske er lidt lettere at læse:
Brug new-style string formatering:
Brug new-style stringformatering med tal (nyttigt til omfordeling eller udskrivning af det samme tal flere gange):
Brug new-style strengformatering med eksplicitte navne:
Sammenkædning af strenge:
De to klareste, efter min mening:
Du skal bare sende værdierne som parametre:
Hvis du ikke ønsker, at der automatisk skal indsættes mellemrum ved hjælp af
print
i ovenstående eksempel, skal du ændre parameterensep
: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__
:Brug den nye
f
-strengformatering i Python 3.6:For at holde det enkelt, kan jeg personligt godt lide sammenkædning af strenge:
Det virker med både Python 2.7 og 3.X.
BEMÆRK: Hvis score er en int, skal du konvertere den til str:
Prøv bare: