Python Programming Practice-Strings

Created with Sketch.

 Python Programming Practice-Strings

Strings are a data type in Python for dealing with text. Python has a number of powerful features for manipulating strings.

 Basics

Creating a string A string is created by enclosing text in quotes. You can use either single quotes, ‘ , or double quotes, ” . A triple-quote can be used for multi-line strings. Here are some examples:

s = ' Hello '
t = "Hello"
m = """This is a long string that is
 spread across two lines."""

 

Input Recall from Chapter 1 that when getting numerical input we use an eval statement with the input statement, but when getting text, we do not use eval . The difference is illustrated below:

num = eval ( input ( ‘ Enter a number: ‘ )) string = input ( ‘ Enter a string: ‘ )

Empty string The empty string ” is the string equivalent of the number 0. It is a string with nothing in it. We have seen it before, in the print statement’s optional argument, sep= ” .

Length To get the length of a string (how many characters it has), use the built-in function len . For example,

len ( ' Hello ' )

 

is 5.

 

Concatenation and repetition

The operators + and * can be used on strings. The + operator combines two strings. This operation is called concatenation. The * repeats a string a certain number of times. Here are some examples.

Expression Result

‘ AB ‘ + ‘ cd ‘ ‘ ABcd ‘

‘ A ‘ + ‘ 7 ‘ + ‘ B ‘ ‘ A7B ‘

‘ Hi ‘ *4 ‘ HiHiHiHi ‘

Example 1 If we want to print a long row of dashes, we can do the following

print ( ' - ' *75)

 

Example 2 The + operator can be used to build up a string, piece by piece, analogously to the way we built up counts and sums in Sections 5.1 and 5.2 . Here is an example that repeatedly asks the user to enter a letter and builds up a string consisting of only the vowels that the user entered.

s = ''
for i in range (10):
t = input ( ' Enter a letter: ' )
if t== ' a ' or t== ' e ' or t== ' i ' or t== ' o ' or t== ' u ' :
s = s + t
print (s)

 

This technique is very useful.

6.3 The in operator

The in operator is used to tell if a string contains something. For example:

if ' a ' in string:
print ( ' Your string contains the letter a. ' )

 

You can combine in with the not operator to tell if a string does not contain something:

if ' ; ' not in string:
print ( ' Your string does not contain any semicolons. ' )

 

Example In the previous section we had the long if condition

if t== ' a ' or t== ' e ' or t== ' i ' or t== ' o ' or t== ' u ' :

 

Using the in operator, we can replace that statement with the following:

if t in ‘ aeiou ‘ :

Indexing

We will often want to pick out individual characters from a string. Python uses square brackets to do this. The table below gives some examples of indexing the string s= ‘ Python ‘ .

Statement Result Description

s[0] P first character of s s[1] y second character of s s[-1] n last character of s

s[-2] o second-to-last character of s

• The first character of s is s[0] , not s[1] . Remember that in programming, counting usually

starts at 0, not 1.

• Negative indices count backwards from the end of the string.

A common error Suppose s= ‘ Python ‘ and we try to do s[12] . There are only six characters in the string and Python will raise the following error message:

IndexError: string index out of range

You will see this message again. Remember that it happens when you try to read past the end of a string.

6.5 Slices

A slice is used to pick out part of a string. It behaves like a combination of indexing and the range function. Below we have some examples with the string s= ‘ abcdefghij ‘ .

index: 0 1 2 3 4 5 6 7 8 9 letters: a b c d e f g h i j

Code Result Description

s[2:5] cde characters at indices 2, 3, 4 s[ :5] abcde first five characters

s[5: ] fghij characters from index 5 to the end s[-2: ] ij last two characters s[ : ] abcdefghij entire string

s[1:7:2] bdf characters from index 1 to 6, by twos s[ : :-1] jihgfedcba a negative step reverses the string

Leave a Reply

Your email address will not be published. Required fields are marked *