Mai mult
Imprimați mai multe argumente în Python
Acesta este doar un fragment de codul meu:
print("Total score for %s is %s ", name, score)
Dar vreau să imprimați:
"scorul Total pentru (numele) este (scor)"
unde "nume" este o variabilă într-o listă și "scorul" este un număr întreg. Acest lucru este Python 3.3 dacă nu vă ajută deloc.
281
11
Există multe modalități de a face acest lucru. Pentru a repara dvs. curentă folosind codul
%
-formatare, aveți nevoie pentru a trece într-un tuplu:de imprimare("scorul Total pentru %s este %s" % (numele, scor))
Un tuplu cu un singur element se pare ca
('asta',)
.Aici sunt câteva alte modalități comune de a face asta:
de imprimare("scorul Total pentru %(n)s %(s)s" % {'n': numele, 's': scor})
Nu's, de asemenea, stil nou șir de formatare, care ar putea fi un pic mai ușor de citit:
de imprimare("scorul Total pentru {} este {}".format(nume, punctaj))
de imprimare("scorul Total pentru {0} este {1}".format(nume, punctaj))
de imprimare("scorul Total pentru {n} este {s}".format(n=numele, s=scorul))
de imprimare("scorul Total pentru " + str(nume) + " este " + str(scor))
Cea mai clară două, în opinia mea:
de imprimare("scorul Total pentru" nume "este", scor)
Dacă tu nu't vreau spații pentru a fi introdus în mod automat prin "imprimare" în exemplul de mai sus, schimba " sep " parametru:
de imprimare("scorul Total pentru " nume " este ", scor, sep='')
Daca're folosind Python 2, a câștigat't fi capabil de a utiliza ultimele două pentru că "imprimare" e't o funcție în Python 2. Cu toate acestea, puteți importa acest comportament din
__viitoarele__
:din viitoarele import print_function
print(f'scorul Total pentru {numele} este {scor}')
Există multe modalități de a tipări.
Las's au o privire cu un alt exemplu.
Utilizare:
.format()
:Sau:
Sau:
Sau:
În Python 3.6,
f-string
este mult mai curat.În versiunea anterioară:
În Python 3.6:
va face.
Este mai eficient și elegant.
Păstrarea este simplu, eu personal ca concatenarea șirurilor:
Acesta funcționează atât cu Python 2.7 3.X.
NOTĂ: Dacă scorul este o int, atunci, ar trebui să-l convertească la str:
Doar să încercați:
Doar urmați acest
SAU
Și uita de toate celelalte, altfel creierul câștigat't fi capabil de a harta toate formatele.
"%s "pot fi înlocuiți de
%d" sau " %f
Dacă "scorul" este un număr, apoi
Dacă scorul este un șir de caractere, apoi
Dacă scorul este un număr, apoi l's
%d
, dacă-l's un șir de caractere, apoi se's "%s", dacă scorul este un float, atunci's%f
Folosesc f-string`:
Sau
Utilizarea
.format
:Aceasta este ceea ce fac:
Amintiți-vă pentru a pune un spațiu după "pentru" și înainte și după
este
.