Python [Post 04] | Strings

Folks,

In this blog post we will explore Python strings & string methods. Python strings are sequences of characters. Here are some examples of strings.

# Printing String

print('This is a string!') # Enclosed using single quote

print("This is also a string!") # Enclosed using double quote

print("""This is also a string,
also having next line.""") # Enclosed using triple quote. Multiple lines are generally put in triple quotes.

print("It's ok!") # Use double quote to enclose the string, if string is having single quote
print('P') # Python treat this single character also as string

This is a string!
This is also a string!
This is also a string,
also having next line.
It’s ok!
P

### String Indexing

Python strings are sequences of individual characters. We can access characters in strings by index. In Python index starts from 0, also if you want to start from the end, instead of the beginning then use a negative index.

Indexing Example: String x = ‘Python’

+ve Index 0 1 2 3 4 5
+ve Index 0 -5 -4 -3 -2 -1

# String Variable
x = 'Python'
x[0] # Fetch the first character of string x

‘P’

x[1] # Fetch the second character of string x

‘y’

x[-1] # Fetch the last character of string x

‘n’

Python strings are immutable. i.e. Once string is created, the elements within it can not be changed or replaced.

# Let's try to change the first letter to 'J' of string x
x[0] = 'J'

TypeError Traceback (most recent call last)

<ipython-input-6-5b400f918714> in <module>()
1 # Let’s try to change the first letter to ‘J’ of string x
—-> 2 x[0] = ‘J’

TypeError: ‘str’ object does not support item assignment

 

You can “update” an existing string by (re)assigning a variable to another string.

x = 'J' + x[1:]
print(x)

Jython

### Slicing Python String

We can use a : to perform slicing which extracts chunk of more than one character as per input. In slicing last index is not included.

String x = ‘Python’

+ve Index 0 1 2 3 4 5

+ve Index 0 -5 -4 -3 -2 -1

For Example:

# String Variable
x = 'Python'
x[0:2] # fetch the first 2 character of string x. x[0:2] is same as x[:2]

‘Py’

x[:3] # fetch the first 3 character of string x

‘Pyt’

x[2:5] # fetch character from 2nd index to 3rd index

‘tho’

x[2:] # fetch charcters start from index 2nd till last

‘thon’

x[:3] # fetch charcters upto 3rd index, but 3rd is not included

‘Pyt’

x[-5:-1] # Negative Index also works in slicing

‘ytho’

x[::] # fetch complete string

‘Python’

Skipping Characters using third parameter

x = 'Python'
x[::1] # Default is 1

‘Python’

x[::2] # Skip every 2nd character

‘Pto’

x[0:5:2] # Skip every 2nd character

‘Pto’

x[::-1] # Reverse String

‘nohtyP’

### String Methods Examples

Python String provides so many methods to do the string manipulations. See below examples.

# Split - Splits string as per provided delimiter ( default space) and returns list of substrings;

x = 'Python is fully-functional programming language that can do almost anything'
print(x.split())

[‘Python’, ‘is’, ‘fully-functional’, ‘programming’, ‘language’, ‘that’, ‘can’, ‘do’, ‘almost’, ‘anything’]

x = 'A,B,C,D,E,F'
print(x.split(',')) # Comma as delimeter

[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’]

# Upper & Lower Case

x = 'Python'
print(x.upper())
print(x.lower())

PYTHON
python

# Checking String whether contains only alpha or numeric

x = 'Python3'
print(x.isalnum())
print(x.isalpha())
print(x.isnumeric())
len(x)

True
False
False
7

Lstrip, RStrip & Strip Method – For removing white spaces

# lstrip - Remove white space from left

x = ' Python3 '
x.lstrip()

‘Python3 ‘

# rstrip - Remove white space from left

x = ' Python3 '
x.rstrip()

‘ Python3’

# rstrip - Remove white space from left & right

x = ' Python3 '
x.strip()

‘Python3’

.format() String Method

Insert objects dynamically in the string using assigment keywords or index. It can also persorm alignment, padding & precision of floating point numbers.

import datetime
d = str(datetime.datetime.now())
# Example 1 -

x = "Today's date & time is {}"

x.format(d)

“Today’s date & time is 2018-07-08 02:04:47.893499”

# Example 2

x = "Today's date & time is %s" %datetime.datetime.now()

print(x)

Today’s date & time is 2018-07-08 02:04:49.885035

# Example 3

print('a {f} in need is a {f} indeed'.format(f='friend'))
print('a {0} in need is a {0} indeed'.format('friend'))

a friend in need is a friend indeed
a friend in need is a friend indeed

# String Formatting Operator - %
# Oldest method involves placeholders using the modulo % character. %s for string, %c is for character, %i integer, %f float etc

print('a %s in need is a %s indeed' %('friend','friend'))

x = "Today's date & time is %s" %datetime.datetime.now()
print(x)

x = "My name is %s, my age is %i & my height is %f" % ('John', 21, 150.56)
print(x)

a friend in need is a friend indeed
Today’s date & time is 2018-07-08 02:04:50.634701
My name is John, my age is 21 & my height is 150.560000

Precision of Float with .format() Method

You can add precision for float point numbers in string. See below example.

x = “My height is %5.1f” % (150.5678)

  • .1f stands for how many numbers to show past the decimal point.
  • 5 would be the minimum number of characters the string should contain. Padded with whitespace if the entire number does not have this many digits.
x = "My height is %5.1f" % (150.5678)
print(x)

My height is 150.6

x = "My height is %15.2f" % (150.5678)
print(x)

My height is 150.57

Padding & Alignment with .format() Method

# Padding

print('{0:5} | {1:3}'.format('FName', 'Age'))
print('{0:5} | {1:3}'.format('A', 14))
print('{0:5} | {1:3}'.format('B', 12))

FName | Age
A | 14
B | 12

By default, .format() aligns text to the left, numbers to the right.
Pass an optional <,^, or > to set a left, center or right alignment as per requirement.

# Alignment

print('{0:^5} | {1:^3}'.format('FName', 'Age'))
print('{0:^5} | {1:^3}'.format('A', 14))
print('{0:^5} | {1:^3}'.format('B', 12))

FName | Age
A | 14
B | 12

print('{0:-^10} | {1:-^10}'.format('FName', 'Age'))

–FName— | —Age—-

There are many more string methods eg. count, find, decode, encode, index etc.


Thanks!

Happy Learning! Your feedback would be appreciated!
shobhitsingh.in

[GitHub Code]

Advertisements

Python [Post 02] | Variables

In Python a variable is created when we assign value to it. It does not required any explicit declaration. Use the assignment operator = to assign the value to a variable.

Variable Names Rules

  • Must start with a letter or the underscore character. Cannot start with a number.
  • Can only contain alpha-numeric characters and underscores (A-z, 0-9, & _ ).
  • Variable names are case-sensitive.
  • Avoid using Python Built-keywords. Like str, type, list etc.
#Example:

name = "John" # String Variable Assignment
age = 50 # Integer Variable Assignment
height = 150.50 # Float Variable Assignment

Using Python’s built-in function type() you can check what type of object is assigned to a variable.

Here are the list of Python data type:

  • int
  • float
  • str
  • list
  • tuple
  • dict
  • set
  • bool
# Exapmple

type(name)

str

## Dynamic Typing

In Python you can reassign variables to different data types. Python is very flexible in assigning data types.

# Example, Here Integer Assignment

x=50
type(x)

int

x="Hello, World!" # Re-assigned X Now String Assignment
type(x)

str

x=12.20+4j # Re-assigned X Now String Assignment
type(x)

complex

x=(1,2,3,4,5) # Re-assigned X Now Tuple Assignment
type(x)

tuple

## Re-assigning Variables

Python allow you to reassign variables with a reference to the same object.

a=50
print(a)

50

a = a + a
print(a)

100

a += 50
print(a)

150

a -= 10
print(a)

140

a *= 2
print(a)

280

a /= 5
print(a)

56.0

# Multiple Assignment

Python allows you to assign a value to multiple variables simultaneously.

# Example 1

length = width = height = 50
print (length)
print (width)
print (height)

50
50
50

# Example 2

length, width, height = (10,50,60)
print (length)
print (width)
print (height)

10
50
60


Thanks!

Happy Learning! Your feedback would be appreciated!

shobhitsingh.in

GitHub Code