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.

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:

  1. Trece ca 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:

  1. Trece ca un dicționar:

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:

  1. Utilizarea de stil nou șir de formatare:

de imprimare("scorul Total pentru {} este {}".format(nume, punctaj))

  1. Utilizarea de stil nou șir de formatare cu numerele (utilă pentru reordonare sau imprimare același de mai multe ori):

de imprimare("scorul Total pentru {0} este {1}".format(nume, punctaj))

  1. Utilizarea de stil nou șir de formatare cu nume explicite:

de imprimare("scorul Total pentru {n} este {s}".format(n=numele, s=scorul))

  1. Concatena șiruri:

de imprimare("scorul Total pentru " + str(nume) + " este " + str(scor))

Cea mai clară două, în opinia mea:

  1. Trece doar valori ca parametri:

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

  1. Utilizați noul " f " -șir de formatare în Python 3.6:

print(f'scorul Total pentru {numele} este {scor}')

Comentarii (4)

Există multe modalități de a tipări.

Las's au o privire cu un alt exemplu.

a = 10
b = 20
c = a + b

#Normal string concatenation
print("sum of", a , "and" , b , "is" , c) 

#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c)) 

# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))  

#New style string formatting
print("sum of {} and {} is {}".format(a,b,c)) 

#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))

EDIT :

#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')
Comentarii (1)

Utilizare: .format():

print("Total score for {0} is {1}".format(name, score))

Sau:

// Recommended, more readable code

print("Total score for {n} is {s}".format(n=name, s=score))

Sau:

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

Sau:

`print("Total score for %s is %d" % (name, score))`
Comentarii (0)

În Python 3.6, f-string este mult mai curat.

În versiunea anterioară:

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

În Python 3.6:

print(f'Total score for {name} is {score}.')

va face.

Este mai eficient și elegant.

Comentarii (0)

Păstrarea este simplu, eu personal ca concatenarea șirurilor:

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

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:

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

Doar să încercați:

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

Doar urmați acest

idiot_type = "the biggest idiot"
year = 22
print("I have been {} for {} years ".format(idiot_type, years))

SAU

idiot_type = "the biggest idiot"
year = 22
print("I have been %s for %s years."% (idiot_type, year))

Și uita de toate celelalte, altfel creierul câștigat't fi capabil de a harta toate formatele.

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

"%s "pot fi înlocuiți de %d" sau " %f

Comentarii (0)

Dacă "scorul" este un număr, apoi

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

Dacă scorul este un șir de caractere, apoi

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

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

Comentarii (0)

Folosesc f-string`:

print(f'Total score for {name} is {score}')

Sau

Utilizarea .format:

print("Total score for {} is {}".format(name, score))
Comentarii (0)

Aceasta este ceea ce fac:

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

Amintiți-vă pentru a pune un spațiu după "pentru" și înainte și după este.

Comentarii (0)