Handling Strings and Bytes
Chapter 9
Handling Strings and Bytes
In this chapter, we present some of the most used methods in strings and bytes objects. Strings are extremely useful to manage most of the output generated from programs, like formatted documents or messages that involve program variables. Bytes allow us, among other uses, to perform input/output operations that make possible the communication between programs by sending/receiving data through different channels in low-level representation.
9.1 Some Built-in Methods for Strings
In Python, all strings are an immutable sequence of Unicode characters. Unicode is a standard encoding that allows us to have a virtual representation of any character. Here we have some different ways to create a string in Python:
1 a = "programming"
2 b = 'a lot'
3 c = '''a string
4 with multiple
5 lines'''
6 d = """Multiple lines with
7
double quotation marks """
8 e = "Three " "Strings" " Together"
9 f = "a string " + "concatenated"
10
11 print(a)
12 print(b)
13 print(c)
14 print(d)
228
CHAPTER 9. HANDLING STRINGS AND BYTES
15 print(e) 16 print(f)
programming a lot a string with multiple lines Multiple lines with
double quotation marks Three Strings Together a string concatenated
The type str has several methods to manipulate strings. Here we have the list:
1 print(dir(str))
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__',
'__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
Now we show some examples of methods to manipulate strings. We defer the reader to Python documentation for more examples of string methods.
The isalpha() method checks whether the string contains alpha characters or not. It returns True if all the characters are in the alphabet of some language:
1 print("abn".isalpha())
9.1. SOME BUILT-IN METHODS FOR STRINGS
229
True
If there is a number, blank space or punctuation marks, it will return False:
1 print("t/".isalpha())
False
The isdigit() method returns True if all the characters in the string are digits:
1 print("34".isdigit())
True
We can check if a portion of a string includes a specific sub-sequence within it by startswith() and endswith() methods:
1 s = "I'm programming" 2 print(s.startswith("I'm")) 3 print(s.endswith("ing"))
True True
If we require searching for a sub-sequence anywhere within a string we use the find(seq) method, which returns the index of s where the argument's sequence seq starts:
1 print(s.find("m p"))
2
The index method index(str, beg=0 end=len(string)-1) returns the index of where the sequence str starts within the string s. It always returns the first appearance of the argument str in s and starts at 0 as other Python indexing cases:
1 print(s.index('g'))
7
If we do not indicate the beginning or ending of the substring, index() method will use by default beg=0 and end=len(string)-1. The next example shows how to search a substring that starts at position 4 and ends at position 10:
230
CHAPTER 9. HANDLING STRINGS AND BYTES
1 print(s.index('o', 4, 10))
6
Python will let us know if we use the right boundaries arguments to search:
1 print(s.index('i', 5, 10))
Traceback (most recent call last): File "2.py", line 29, in print(s.index('i', 5, 10))
ValueError: substring not found
The split() method generates a list of words in s separated by blank spaces:
1 s = "Hi everyone, how are you?" 2 s2 = s.split() 3 print(s2)
['Hi', 'everyone,', 'how', 'are', 'you?']
By default split() uses blank spaces. The join() method let us to create a string concatenating the words in a list of strings through a specific character. The next example join the words in s2 using the # character:
1 s3 = '#'.join(s2) 2 print(s3)
Hi#everyone,#how#are#you?
We can change portions of a string indicating the sub-sequence that we want to change and the character to replace:
1 print(s.replace(' ', '**')) 2 print(s)
Hi**everyone,**how**are**you?
The partition(seq) method splits any string at the first occurrence of the sub-sequence seq. It returns a tuple with the part before the sub-sequence, the sub-sequence and the remaining portion of the string:
1 s5 = s.partition(' ') 2 print(s5) 3 print(s)
9.1. SOME BUILT-IN METHODS FOR STRINGS
231
('Hi', ' ', 'everyone, how are you?') Hi everyone, how are you?
As we have seen in previous chapters, we can insert variable values into a string by using format:
1 # 4.py
2
3 name = 'John Smith'
4 grade = 4.5
5 if grade >= 5.0:
6
result = 'passed'
7 else:
8
result = 'failed'
9
10 template = "Hi {0}, you have {1} the exam. Your grade was {2}"
11 print(template.format(name, result, grade))
Hi John Smith, you have failed the exam. Your grade was 4.5
If we want to include braces within the string, we can escape them by using double braces. In the example below, we print a Java class definition:
1 # 5.py
2
3 template = """
4 public class {0}
5 {{
6
public static void main(String[] args)
7
{{
8
System.out.println({1});
9
}}
10 }}"""
11
12 print(template.format("MyClass", "'hello world'"));
public class MyClass {
public static void main(String[] args)
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- python add ascii value to string
- types in python
- overcoming frustration correctly using unicode in python
- unicode in python
- six documentation read the docs
- unicode howto
- python tutorial department of computer science and
- python and unicode
- logix 5000 controllers ascii strings 1756 pm013g en p
- handling strings and bytes
Related searches
- cash handling procedures template
- cash handling policy and procedures
- data classification and handling policy
- basic cash handling procedures
- cash handling procedures best practices
- quality material handling inc
- restaurant cash handling policy template
- warehouse material handling procedures
- material handling procedures samples
- manual materials handling procedures
- cash handling procedure manual
- cash handling policies and procedures