English 中文(简体)
什么是打印(f"...)
原标题:What is print(f"...")
我正在读取一个 python 脚本, 它会输入 XML 文件并输出 XML 文件。 但是, 我无法理解打印语法 。 有人能解释打印( f) 中的 f 是什么吗? args = parser.parser_ args () print (f) “ 输入目录 : {args. input_ directory} ” ) print (f” 输出目录: {args.output_ directory} )
最佳回答
The f means Formatted string literals and it s new in Python 3.6. A formatted string literal or f-string is a string literal that is prefixed with f or F. These strings may contain replacement fields, which are expressions delimited by curly braces {}. While other string literals always have a constant value, formatted strings are really expressions evaluated at run time. Some examples of formatted string literals: >>> 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=2023, month=1, day=27) >>> f"{today:%B %d, %Y}" # using date format specifier January 27, 2023 >>> number = 1024 >>> f"{number:#0x}" # using integer format specifier 0x400
问题回答
In Python 3.6, the f-string, formatted string literal, was introduced(PEP 498). In short, it is a way to format your string that is more readable and fast. Example: agent_name = James Bond kill_count = 9 # old ways print("%s has killed %d enemies" % (agent_name,kill_count)) print( {} has killed {} enemies .format(agent_name,kill_count)) print( {name} has killed {kill} enemies .format(name=agent_name,kill=kill_count)) # f-strings way print(f {agent_name} has killed {kill_count} enemies ) The f or F in front of strings tell Python to look at the values , expressions or instance inside {} and substitute them with the variables values or results if exists. The best thing about f-formatting is that you can do cool stuff in {}, e.g. {kill_count * 100}. You can use it to debug using print e.g. print(f the {agent_name=}. ) # the agent_name= James Bond Formatting, such as zero-padding, float and percentage rounding is made easier: print(f {agent_name} shoot with {9/11 : .2f} or {9/11: .1%} accuracy ) # James Bond shoot with 0.82 or 81.8% accuracy Even cooler is the ability to nest and format. Example date from datetime import datetime lookup = { 01 : st , 21 : st , 31 : st , 02 : nd , 22 : nd , 03 : rd , 23 : rd } dato = datetime.now() print(f"{dato: %B %d{lookup.get(f {dato:%d} , th )} %Y}") # April 23rd 2022 Pretty formatting is also easier tax = 1234 print(f {tax:,} ) # separate 1k w comma # 1,234 print(f {tax:,.2f} ) # all two decimals # 1,234.00 print(f {tax:~>8} ) # pad left with ~ to fill eight characters or < other direction # ~~~~1234 print(f {tax:~^20} ) # centre and pad # ~~~~~~~~1234~~~~~~~~ The __format__ allows you to funk with this feature. Example class Money: def __init__(self, value, currency= € ): self.currency = currency self.value = value def __repr__(self): return f Money(value={self.value}, currency={self.currency}) def __format__(self, *_): return f"{self.currency}{float(self.value):.2f}" tax = 12.3446 money = Money(tax, currency= $ ) print(f {money} ) # $12.34 print(money) # Money(value=12.3446, currency=$) There is much more. Readings: PEP 498 Literal String Interpolation Python String Formatting
the f string is also known as the literal string to insert a variable into the string and make it part so instead of doing x = 12 y = 10 word_string = x + plus + y + equals: + (x+y) instead, you can do x = 12 y = 10 word_string = f {x} plus {y} equals: {x+y} output: 12 plus 10 equals: 22 this will also help with spacing due to it will do exactly as the string is written
A string prefixed with f or F and writing expressions as {expression} is a way to format string, which can include the value of Python expressions inside it. Take these code as an example: 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 Output: length = 4 width = 5 area = 20 length = 4 width = 5 area = 20 length = {l} width = {w} area = {area(l,w)}
args = parser.parser_args() print(f"Input directory: {args.input_directory}") print(f"Output directory: {args.output_directory}") is the same as print("Input directory: {}".format(args.input_directory)) print("Output directory: {}".format(args.output_directory)) it is also the same as print("Input directory: "+args.input_directory) print("Output directory: "+args.output_directory)
f-string in python lets you format data for printing using string templates. Below example will help you to clarify With f-string name = Niroshan age = 25; print(f"Hello I m {name} and {age} years young") Hello I m Niroshan and 25 years young Without f-string name = Niroshan age = 25; print("Hello I m {name} and {age} years young") Hello I m {name} and {age} years young
f function is Transferring data to other places in your content. It mostly used Changeable Data. class Methods (): def init(self ,F,L,E,S,T): self.FirstName=F self.LastName=L self.Email=E self.Salary=S self.Time =T def Salary_Msg(self): #f is called function f #next use {write in} return f{self.firstname} {self.Lastname} earns AUD {self.Salary}per {self.Time} "
That is f-strings(Formatted string literals) introduced in Python3.6 and it is simpler and more powerful than str.format(). For example, you can print a dictionary using f-strings as shown below. *You can use f"", F"", f or F : person = { name : Jone , age : 36} print(f"{person} {person[ name ]} {person[ age ]}") # { name : Jone , age : 36} # Jone # 36 And, you can set = just after the variables of a dictionary to print the dictionary with their variables using f-strings as shown below. *Of course, you can set = just after the variables of a string, number, boolean, list, the instance of a class, etc: person = { name : Jone , age : 36} # ↓ # ↓ # ↓ print(f"{person=} {person[ name ]=} {person[ age ]=}") # person={ name : Jone , age : 36} # person[ name ]= Jone # person[ age ]=36




相关问题
Can Django models use MySQL functions?

Is there a way to force Django models to pass a field to a MySQL function every time the model data is read or loaded? To clarify what I mean in SQL, I want the Django model to produce something like ...

An enterprise scheduler for python (like quartz)

I am looking for an enterprise tasks scheduler for python, like quartz is for Java. Requirements: Persistent: if the process restarts or the machine restarts, then all the jobs must stay there and ...

How to remove unique, then duplicate dictionaries in a list?

Given the following list that contains some duplicate and some unique dictionaries, what is the best method to remove unique dictionaries first, then reduce the duplicate dictionaries to single ...

What is suggested seed value to use with random.seed()?

Simple enough question: I m using python random module to generate random integers. I want to know what is the suggested value to use with the random.seed() function? Currently I am letting this ...

How can I make the PyDev editor selectively ignore errors?

I m using PyDev under Eclipse to write some Jython code. I ve got numerous instances where I need to do something like this: import com.work.project.component.client.Interface.ISubInterface as ...

How do I profile `paster serve` s startup time?

Python s paster serve app.ini is taking longer than I would like to be ready for the first request. I know how to profile requests with middleware, but how do I profile the initialization time? I ...

Pragmatically adding give-aways/freebies to an online store

Our business currently has an online store and recently we ve been offering free specials to our customers. Right now, we simply display the special and give the buyer a notice stating we will add the ...

Converting Dictionary to List? [duplicate]

I m trying to convert a Python dictionary into a Python list, in order to perform some calculations. #My dictionary dict = {} dict[ Capital ]="London" dict[ Food ]="Fish&Chips" dict[ 2012 ]="...

热门标签