Python String format() Method Explained with Examples

In Python, you have a few options to format your strings. In this article, I will go over str.format(), formatted string literals, and template strings.

But first, let's take a look at what is considered to be the "old way" of formatting strings.

What is % string formatting in Python?

One of the older ways to format strings in Python was to use the % operator.

Here is the basic syntax:

"This is a string %s" % "string value goes here"

You can create strings and use %s inside that string which acts like a placeholder. Then you can write % followed be the actual string value you want to use.

Here is a basic example using % string formatting.

print("Hi, my name is %s" % "Jessica")

This method is often referred to as the "older" way because Python 3 introduced str.format() along with formatted string literals.

What is the str.format() method in Python?

Here is the basic syntax for the str.format() method:

"template string {}".format(arguments)

Inside the template string, we can use {} which act as placeholders for the arguments. The arguments are values that will be displayed in the string.

In this example, we want to print "Hello, my name is Jessica. I am a musician turned programmer."

In the string, we are going to have a total of three {} which will act as placeholders for the values of Jessica, musician, and programmer. These are called format fields.

"Hello, my name is {}. I am a {} turned {}."

Inside these parenthesis for the str.format(), we will use the values of "Jessica", "musician", and "programmer".

.format("Jessica", "musician", "programmer")

Here is the complete code and printed sentence:

print("Hello, my name is {}. I am a {} turned {}.".format("Jessica", "musician", "programmer"))

Positional arguments

You can access the value of these arguments using an index number inside the {}.

In this example, we have two arguments of "trumpet" and "drums" inside the .format().

.format("trumpet", "drums")

We can access those values inside the string by referring to the index numbers. {0} refers to the first argument of "trumpet" and {1} refers to the second argument of "drums".

"Steve plays {0} and {1}."

Here is the complete code and printed sentence:

print("Steve plays {0} and {1}.".format("trumpet", "drums"))

We can modify this example and switch the index numbers in the string. You will notice that the sentence has changed and the placement of the arguments is switched.

print("Steve plays {1} and {0}.".format("trumpet", "drums"))

Keyword arguments

These arguments consist of a key value pair. We can access the value of the argument by using the key inside the {}.

In this example, we have two keys called organization and adjective. We are going to use those keys inside the string.

"{organization} is {adjective}!"

Inside the .format(), we have the key value pairs.

.format(organization="freeCodeCamp", adjective="awesome")

Here is the complete code and printed sentence.

print("{organization} is {adjective}!".format(organization="freeCodeCamp", adjective="awesome"))

How to Mix Keyword and Positional arguments

In the str.format() you can mix keyword and positional arguments.

In this example, we are going to create a short story about going to Disneyland.

We are first going to create a few variables for name, number, adjective and a Disneyland ride.

name = "Sam"
adjective = "amazing"
number = 200
disney_ride = "Space Mountain"

We then want to create our string using keyword and positional arguments. I am going to add the \n to tell the computer to create a new line after each sentence.

"I went to {0} with {name}.\nIt was {adjective}.\nWe waited for {hours} hours to ride {ride}."

Inside the parenthesis for the str.format(), we will assign our variables to the keys of name, adjective, hours and disney_ride. {0} will have the value of "Disneyland".

.format("Disneyland", name=name, adjective=adjective, hours=number, ride=disney_ride)

Here is the complete code and printed sentence:

name = "Sam"
adjective = "amazing"
number = 200
disney_ride = "Space Mountain"

print("I went to {0} with {name}.\nIt was {adjective}.\nWe waited for {hours} hours to ride {ride}."
      .format("Disneyland", name=name, adjective=adjective, hours=number, ride=disney_ride))

What are formatted string literals?

Formatted string literals (or f-strings) allow you to include expressions inside your strings. Just before the string you place an f or F which tells the computer you want to use an f-string.

Here is the basic syntax:

variable = "some value"
f"this is a string {variable}"

Here is a basic example that prints the sentence Maria and Jessica have been friends since grade school.

name = "Jessica"
print(f"Maria and {name} have been friends since grade school.")

It works just the same if I use a capital F before the string.

name = "Jessica"
print(F"Maria and {name} have been friends since grade school.")

You can also use an f-string to format data from a dictionary.

In this example, we have a dictionary which represents the top rankings for men's college basketball teams and how many games they won out of 32.

rankings = {"Gonzaga": 31, "Baylor": 28, "Michigan": 25, "Illinois": 24, "Houston": 21}

We can use a for loop and the items() method to go through each of the key value pairs of the rankings dictionary.

for team, score in rankings.items():

Inside the for loop, we can use an f-string to format the printed results.

The use of the : for  {team:10} and {score:10d} tells the computer to create a field that is 10 characters wide. This will create even columns for the data.

The d inside here {score:10d} refers to a decimal integer.

 print(f"{team:10} ==> {score:10d}")

Here is the full code and the printed output:

rankings = {"Gonzaga": 31, "Baylor": 28, "Michigan": 25, "Illinois": 24, "Houston": 21}

for team, score in rankings.items():
    print(f"{team:10} ==> {score:10d}")

What are template strings?

Template strings are Python strings that use placeholders for the real values.

Here is the basic syntax:

Template("$placeholder").substitute(placeholder="real value")

Let's take a look at an example to better understand how it works.

In this example, we want to print I love to learn with freeCodeCamp! using template strings.

In order to use template strings, you will first have to import the Template class from the standard library.

from string import Template

You can then use the Template class and provide a string inside the parenthesis. We are going to place a $ in front of name which will later be replaced by the real value.

Template("I love to learn with $name!")

We then add .substitute to the template and assign the value of freeCodeCamp to name.

.substitute(name="freeCodeCamp")

Here is the full code and the printed output:

from string import Template

print(Template("I love to learn with $name!").substitute(name="freeCodeCamp"))

Conclusion

There are many ways to format your strings in Python.

The older way of formatting your strings would be to use the % operator.

"This is a string %s" % "string value goes here"

%s acts as a placeholder for the real value. You place the real value after the % operator.

This method is often referred to as the "older" way because Python 3 introduced str.format() and formatted string literals (f-strings).

In the str.format() method, you use {} for placeholders and place the real values inside the parenthesis. This method can take in positional and keyword arguments.

"template string {}".format(arguments)

Formatted string literals (or f-strings) allow you to include expressions inside your strings. Just before the string you place an f or F which tells the computer you want to use an f-string.

variable = "some value"
f"this is a string {variable}"

You can also use Template strings by importing the Template class from the standard library. Template strings are Python strings that use placeholders for the real values.

Template("$placeholder").substitute(placeholder="real value")

I hope you found this article helpful and best of luck on your Python journey.

Original article at https://www.freecodecamp.org

#python 

What is GEEK

Buddha Community

Python String format() Method Explained with Examples
Ray  Patel

Ray Patel

1619518440

top 30 Python Tips and Tricks for Beginners

Welcome to my Blog , In this article, you are going to learn the top 10 python tips and tricks.

1) swap two numbers.

2) Reversing a string in Python.

3) Create a single string from all the elements in list.

4) Chaining Of Comparison Operators.

5) Print The File Path Of Imported Modules.

6) Return Multiple Values From Functions.

7) Find The Most Frequent Value In A List.

8) Check The Memory Usage Of An Object.

#python #python hacks tricks #python learning tips #python programming tricks #python tips #python tips and tricks #python tips and tricks advanced #python tips and tricks for beginners #python tips tricks and techniques #python tutorial #tips and tricks in python #tips to learn python #top 30 python tips and tricks for beginners

Ray  Patel

Ray Patel

1619510796

Lambda, Map, Filter functions in python

Welcome to my Blog, In this article, we will learn python lambda function, Map function, and filter function.

Lambda function in python: Lambda is a one line anonymous function and lambda takes any number of arguments but can only have one expression and python lambda syntax is

Syntax: x = lambda arguments : expression

Now i will show you some python lambda function examples:

#python #anonymous function python #filter function in python #lambda #lambda python 3 #map python #python filter #python filter lambda #python lambda #python lambda examples #python map

August  Larson

August Larson

1624357980

String Format() Function in Python

To control and handle complex string formatting more efficiently

What is formatting, why is it used?

In python, there are several ways to present output. String formatting using python is one such method where it allows the user to control and handle complex string formatting more efficiently than simply printing space-separated values.There are many types of string formatting, such as padding and alignment, using dictionaries, etc. The usage of formatting techniques is not only subjected to strings. It also formats dates, numbers, signed digits, etc.

Structure of format() method

Let us look at the basic structure of how to write in string format method.

Syntax: ‘String {} value’.format(value)

Let us look at an example:
‘Welcome to the {} world.’.format(“python”)

Here, we have defined a string( ‘’) with a placeholder( {} ) and assigned the argument of the parameter as “python.” On executing the program, the value will be assigned to the placeholder, showing the output as:

#python #programming #string format() function in python #string format() function #format() #format() function

String methods in Python

String methods:

  • str.capitalize(): Returns copy of the string with its first character capitalized and rest of the letters in lowercase.
#capitalize-Only first character of string is capitalized
	s1="example of string methods"
	print (s1.capitalize()) #Output:Example of string methods
	s2="EXAMPLE OF STRING METHODS"
	print (s2.capitalize())#Output:Example of string methods
  • str.title()- Returns copy of string where first character in every word is upper case.
s1="example of strings"
	print (s1.title()) #Output:Example Of Strings
  • str.casefold(): Returns casefolded copy of the string. Converts string to lower case. Casefolding is similar to lowercasing but more aggressive because it is intended to remove all case distinctions in a string.
#casefold- converts all character to lower case
	s1="Example Of String Methods"
	print (s1.casefold()) #Output:example of string methods

	s2="ß-Beta"
	#ß-lowercase is equivalent to ss. casefold converts it to ss. But lower doesn't do that.
	print (s2.casefold()) #Output: ss-beta
	print (s2.lower())#Output: ß-beta
  • str.swapcase():Returns copy of string with uppercase characters converted to lowercase and vice versa.
s1="example of strings"
	print (s1.swapcase()) #Output:EXAMPLE OF STRINGS

	s2="EXAMPLE OF STRINGS"
	print (s2.swapcase()) #Output:example of strings

	s3="Example Of Strings"
	print (s3.swapcase()) #Output:eXAMPLE oF sTRINGS
  • str.lower()-Returns copy of string in lowercase.Symbols and numbers are ignored.
s1="Example Of Strings"
	print (s1.lower()) #Output:example of strings

	s2="EXAMPLE OF STRINGS??"
	print (s2.lower())#Output:example of strings??

	s3="1.example of strings?"
	print (s3.lower()) #Output:1.example of strings?
  • str.upper()-Returns copy of string in uppercase.Symbols and numbers are ignored.
s1="Example Of Strings"
	print (s1.upper())#Output:EXAMPLE OF STRINGS

	s2="EXAMPLE OF STRINGS??"
	print (s2.upper())#Output:EXAMPLE OF STRINGS??

	s3="1.example of strings?"
	print (s3.upper()) #Output:1.EXAMPLE OF STRINGS?
  • str.encode():Returns an encoded version of the string in byte format.
str.encode(encoding=”encoding”,errors=”errors”)

encoding(Optional):Default encoding is “utf-8”

errors(Optional):Default errors is “strict”.Raise unicode error.

s1= "example öf strings"
	print (s1) #Output:example öf strings

	#Use backslash for the character that can't be encoded
	print(s1.encode(encoding="ascii",errors="backslashreplace")) #Output:b'example \\xf6f strings'

	#ignores the character that can't be encoded
	print(s1.encode(encoding="ascii",errors="ignore"))#Output:b'example f strings'

	#replace the character that can't be encoded with the text explanining the character. 
	print(s1.encode(encoding="ascii",errors="namereplace"))#Output:b'example \\N{LATIN SMALL LETTER O WITH DIAERESIS}f strings'

	#Replace the character that can't be encoded with the question mark
	print(s1.encode(encoding="ascii",errors="replace"))#Output:b'example ?f strings'

	#Replace the character that can't be encoded with xml character.
	print(s1.encode(encoding="ascii",errors="xmlcharrefreplace"))#Output:b'example öf strings'

	#strict-Raise Unicode Error
	print(s1.encode(encoding="ascii",errors="strict"))
	#Output:UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 8: ordinal not in range(128)

	#errors are not mentioned.Default is strict-Raise Unicode Error.
	print(s1.encode(encoding="ascii"))
	#Output:UnicodeEncodeError: 'ascii' codec can't encode character '\xf6' in position 8: ordinal not in range(128)
  • str.startswith()- Returns True, if the string starts with specified value, otherwise returns False.

#python3 #python #string-methods #python-strings #python-programming

How To Compare Tesla and Ford Company By Using Magic Methods in Python

Magic Methods are the special methods which gives us the ability to access built in syntactical features such as ‘<’, ‘>’, ‘==’, ‘+’ etc…

You must have worked with such methods without knowing them to be as magic methods. Magic methods can be identified with their names which start with __ and ends with __ like init, call, str etc. These methods are also called Dunder Methods, because of their name starting and ending with Double Underscore (Dunder).

Now there are a number of such special methods, which you might have come across too, in Python. We will just be taking an example of a few of them to understand how they work and how we can use them.

1. init

class AnyClass:
    def __init__():
        print("Init called on its own")
obj = AnyClass()

The first example is _init, _and as the name suggests, it is used for initializing objects. Init method is called on its own, ie. whenever an object is created for the class, the init method is called on its own.

The output of the above code will be given below. Note how we did not call the init method and it got invoked as we created an object for class AnyClass.

Init called on its own

2. add

Let’s move to some other example, add gives us the ability to access the built in syntax feature of the character +. Let’s see how,

class AnyClass:
    def __init__(self, var):
        self.some_var = var
    def __add__(self, other_obj):
        print("Calling the add method")
        return self.some_var + other_obj.some_var
obj1 = AnyClass(5)
obj2 = AnyClass(6)
obj1 + obj2

#python3 #python #python-programming #python-web-development #python-tutorials #python-top-story #python-tips #learn-python