Wat is print(f )

Ik ben een python-script aan het lezen dat XML-bestanden invoert en een XML-bestand uitvoert. Ik begrijp echter de afdruksyntaxis niet. Kan iemand uitleggen wat Fin print(f"...")doet?

args = parser.parser_args()
print(f"Input directory: {args.input_directory}")
print(f"Output directory: {args.output_directory}")

Antwoord 1, autoriteit 100%

De Fbetekent Geformatteerde tekenreeks letterlijkeen het is nieuw in Python 3.6.


Een opgemaakte letterlijke tekenreeksof f-stringis een letterlijke tekenreeks die
voorafgegaan door 'F'of 'F'. Deze strings kunnen vervanging bevatten
velden, dit zijn uitdrukkingen die worden gescheiden door accolades {}. Terwijl
andere letterlijke tekenreeksen hebben altijd een constante waarde, opgemaakte tekenreeksen
zijn echt uitdrukkingen die tijdens runtime worden geëvalueerd.


Enkele voorbeelden van opgemaakte letterlijke tekenreeksen:

>>> name = "Fred"
>>> f"He said his name is {name}."
"He said his name is Fred."
>>> name = "Fred"
>>> f"He said his name is {name!r}."
"He said his name is Fred."
>>> f"He said his name is {repr(name)}." # repr() is equivalent to !r
"He said his name is Fred."
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal("12.34567")
>>> f"result: {value:{width}.{precision}}" # nested fields
result: 12.35
>>> today = datetime(year=2017, month=1, day=27)
>>> f"{today:%B %d, %Y}" # using date format specifier
January 27, 2017
>>> number = 1024
>>> f"{number:#0x}" # using integer format specifier
0x400

Antwoord 2, autoriteit 16%

de f-tekenreeks staat ook bekend als de letterlijke tekenreeks om een ​​variabele in de tekenreeks in te voegen en er een deel van te maken in plaats van te doen

x = 12
y = 10
word_string = x + ' plus ' + y + 'equals: ' + (x+y)

in plaats daarvan kunt u

x = 12
y = 10
word_string = f'{x} plus {y} equals: {x+y}'
output: 12 plus 10 equals: 22

dit zal ook helpen met spatiëring omdat het precies zal doen zoals de string is geschreven


Antwoord 3, autoriteit 9%

In Python 3.6 werd de f-string geïntroduceerd (PEP 498). Kortom, het is een manier om je string op te maken die leesbaarder en sneller is.

Voorbeeld:

agent_name = 'James Bond'
kill_count = 9
# old ways
print('{0} has killed {1} enemies '.format(agent_name,kill_count))
# f-strings way
print(f'{agent_name} has killed {kill_count} enemies')

De Fof Fvoor strings vertellen Python om naar de waarden binnen {} te kijken en deze te vervangen door de variabelenwaarden, indien aanwezig. Het beste van de is dat je coole dingen kunt doen in {}, b.v. {kill_count * 100}.

Lezingen:


Antwoord 4, autoriteit 2%

args = parser.parser_args()
print(f"Input directory: {args.input_directory}")
print(f"Output directory: {args.output_directory}")

is hetzelfde als

print("Input directory: {}".format(args.input_directory))
print("Output directory: {}".format(args.output_directory))

het is ook hetzelfde als

print("Input directory: "+args.input_directory)
print("Output directory: "+args.output_directory)

Antwoord 5, autoriteit 2%

Een tekenreeks met het voorvoegsel 'F'of 'F'en het schrijven van uitdrukkingen als {expression}is een manier om tekenreeksen op te maken, die kan de waarde van Python-expressies erin bevatten.

Neem deze code als voorbeeld:

def area(length, width):
    return length * width
l = 4
w = 5
print("length =", l, "width =", w, "area =", area(l, w))  # normal way
print(f"length = {l} width = {w} area = {area(l,w)}")     # Same output as above
print("length = {l} width = {w} area = {area(l,w)}")      # without f prefixed

Uitvoer:

length = 4 width = 5 area = 20
length = 4 width = 5 area = 20
length = {l} width = {w} area = {area(l,w)}

Antwoord 6

Met

f-string in python kunt u gegevens opmaken voor afdrukken met behulp van tekenreekssjablonen.
Het onderstaande voorbeeld zal u helpen om het te verduidelijken

Met f-snaar

name = 'Niroshan'
age  = 25;
print(f"Hello I'm {name} and {age} years young")

Hallo, ik ben Niroshan en 25 jaar jong


Zonder f-string

name = 'Niroshan'
age  = 25;
print("Hello I'm {name} and {age} years young")

Hallo, ik ben {name} en {leeftijd} jaar jong

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes