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:
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.
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}')
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))`
Î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.
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))
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.
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