<< Chapter < Page | Chapter >> Page > |
(Hint: Remember that the plus sign when used with strings is the string concatenation operator.)
There are several ways that you can specify the index values that will produce an empty string. One of those ways is shown following the plus sign in Listing 6 .
Listing 6 . Print an empty string. |
---|
#print an empty string
print("Empty: " + aStr[16:100]) |
In Listing 6 , both index values are outside the bounds of the index values of the characters in the string, which range from 0 through 15 inclusive.
Although it can be a little confusing, negative index values can be used to count from the right, as shown in Listing 7 .
Listing 7 . Negative indices. |
---|
#count from the right
print(aStr[-5:-2]) #print tri |
This fragment extracts and prints the characters tri from the word string , which is the last word in the string.
Once you allow negative indices for slicing, things can become very confusing. The following explanation of how indices work with slicing is attributed to Guido van Rossum , the author of the Python programming language.
In this example, Mr. van Rossum is referring to a five-character string with a value of " HelpA ".
Eliminating confusion
The best way to remember how slices work is to think of the indices as pointing between characters, with the left edge of the firstcharacter numbered 0. Then the right edge of the last character of a string of n characters has index n, for example:
+---+---+---+---+---+| H | e | l | p | A |
+---+---+---+---+---+0 1 2 3 4 5
-5 -4 -3 -2 -1
The first row of numbers gives the position of the indices 0...5 in the string; the second row gives the corresponding negative indices.
The slice from i to j consists of all characters between the edges labeled i and j, respectively.
For nonnegative indices, the length of a slice is the difference of the indices, if both are within bounds, e.g., the length of word[1:3]is 2.
Hopefully, this explanation will help you to understand and to remember how index values are used for the extraction of substrings from strings usingslicing.
And finally, a built-in function named len() can be used to determine the number of characters actually contained in a string as shown in Listing 8 .
Listing 8 . Getting the length of a string. |
---|
#get the length of the string
print(len(aStr)) |
For the example string used in this module, Listing 8 gets and prints the length of the string as 16.
If you count the characters in the string (beginning with 1) , you will conclude that there are 16characters in the string.
Note the difference between the number of characters and the maximum index value
For a string containing 16 characters, the valid index values range from 0 through 15 inclusive.
This Python script file produces the output shown in the lower portion of Listing 9 .
There is one more point that needs to be made here. Although you can use indexing and slicing to access the characters in a string, you cannot useindexing and slicing to assign new character values to those characters.
This is because a Python string is immutable . In other words, after it is created, it cannot be modified.
This section contains a variety of miscellaneous information.
Financial : Although the Connexions site makes it possible for you to download a PDF file for thismodule at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, you should beaware that some of the HTML elements in this module may not translate well into PDF.
I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version of the module.
In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale on Amazon.com showing me as the author. Ineither receive compensation for those sales nor do I know who does receive compensation. If you purchase such a book, please beaware that it is a copy of a module that is freely available on cnx.org and that it was made and published withoutmy prior knowledge.
Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.
A complete listing of the program follows is shown in Listing 9 .
Listing 9 . The script named String01.py. |
---|
# File String01.py
# Rev 2/4/00# Copyright 2000, R. G. Baldwin
# Illustrates indexing and# slicing strings
##-------------------------------
aStr = "This is a string"print(aStr[0]) #print Tprint(aStr[3]) #print sprint(aStr[0:4]) #print Thisprint(aStr[10:16]) #print stringprint(aStr[:4]) #print Thisprint(aStr[10:]) #print string#print the entire string
print(aStr[:5]+ aStr[5:])print(aStr[:100])#print an empty string
print("Empty: " + aStr[16:100])
#count from the rightprint(aStr[-5:-2]) #print tri#get the length of the string
print(len(aStr))#==========================================
#This script produces the following output,#which is not part of the script.
Ts
Thisstring
Thisstring
This is a stringThis is a string
Empty:tri
16 |
-end-
Notification Switch
Would you like to follow the 'Itse 1359 introduction to scripting languages: python' conversation and receive update notifications?