Advanced use of container type (string)
- Splicing and repetition of strings
- Cross line splicing of strings
- Indexing and slicing of strings
- Built in function of string
- Escape of string
- Use of string and formatting and format built-in functions
Contents of this article
Splicing and repetition of strings
# 1. You can use + to splice multiple strings res = 'hello' + ' ' + 'motherland' print(res) # 2. You can use * to repeat a string res = 'hello ' * 3 print(res) """ result: hello motherland hello hello hello """
Cross line splicing of strings
Next, we will learn a symbol in python, the cross line splicer \.
The function of this symbol is that if a line of code is too long, you can use this symbol to wrap lines, while the function of the original statement remains unchanged.
# If the variable char1 is defined without \, it is a syntax error. char = 'hello' char1 = \ 'hello' # Cross line splicing of strings # Use \ to splice strings in different lines, that is, when wrapping, you can use \ instead+ char = 'hello' + 'motherland' char1 = 'hello' \ 'motherland' # Of course, line breaks can still be used+ char2 = 'hello' + \ 'motherland'
Index of string
As we said before, the common feature of string, list and tuple containers is that they are orderly, accessible, and have positive and negative subscript indexes.
var = 'hello' print(var[1]) # e
Slicing of strings
As the name suggests, slicing is to segment the string to obtain the required elements (slicing = = interception).
Syntax: string [start index: end index: interval value]
effect
From the element where the start index is located to the element before the end index according to the interval value, the element corresponding to the end index will not be obtained.
usage method
-
[start index:] intercept from the start index to the last element. The interval value is 1 by default
var = 'hello motherland' res = var[5:] print(repr(res)) # ' motherland'
-
[: end index]: intercept the element from the first element to the one before the end index. The interval value is 1 by default
var = 'hello motherland' res = var[:5] print(repr(res)) # 'hello'
-
[start index: end index]: intercept the element from the start index to the end index. The interval value is 1 by default
var = 'hello motherland' res = var[3:8] print(repr(res)) # 'lo mo'
-
[start: end: interval]: the same as the third point, but intercepted according to the specified interval value
var = 'hello motherland' # Intercept from specified location res = var[3:8:2] print(repr(res)) # 'l o' # Intercept from 0 by default res = var[:8:2] print(repr(res)) # 'hlom' # Reverse order interception res = var[::-1] print(repr(res)) # 'dnalrehtom olleh'
-
[::], [:]: these two methods are to intercept all strings
# Intercept all var = 'hello motherland' # Intercept from specified location res = var[:] print(repr(res)) # 'hello motherland' # Intercept from 0 by default res = var[::] print(repr(res)) # 'hello motherland'
Built in function of string
View the built-in function print(help(str)) of the string
function | effect |
---|---|
capitalize | title case |
title | Capitalize the first letter of each word |
upper | All letters are capitalized |
lower | All letters are lowercase |
swapcase | Case interchange |
count | Calculate the number of a character |
find | Find the index position of the first occurrence of a string. If not found, return - 1 |
index | Find the index position of the first occurrence of a string. If it is not found, an error is reported |
startswith | Determines whether to start with a string and returns a Boolean value |
endswith | Determines whether to end with a string and returns a Boolean value |
isupper | Determines whether all strings are capitalized and returns a Boolean value |
islower | Determines whether all strings are lowercase and returns a Boolean value |
istitle | Determines whether each word in the string is capitalized |
isalnum | Judge whether the string is composed of numbers, letters and Chinese characters |
isspace | Determines whether a string is composed of only white space characters |
isdecimal | Determines whether the string is composed of numbers and returns a Boolean value |
ljust | Fill in the string, the original string is left, and a new string is returned |
rjust | Fill in the string. The original string is on the right and returns a new string |
center | Fill the string, center the original string, and return a new string |
strip | Remove the blank characters on both sides of the beginning and end (the default is blank character, which can be specified) |
lstrip | Remove the blank character on the left (the default is blank character, which can be specified) |
rstrip | Remove the blank character on the right (the default is blank character, which can be specified) |
split | Separates strings into lists according to the specified characters |
rsplit | Separates the string into a list from right to left according to the specified characters |
join | Convert the container to a string according to a string |
replace | Replace the characters in the string with other characters |
format | Formatting of strings |
capitalize
var = 'hello motherland' res = var.capitalize() print(res) # Hello motherland
title
var = 'hello motherland' res = var.title() print(res) # Hello Motherland
upper
var = 'hello motherland' res = var.upper() print(res) # HELLO MOTHERLAND
lower
var = 'HELLO MOTHERLAND' res = var.lower() print(res) # hello motherland
swapcase
var = 'Hello Motherland' res = var.swapcase() print(res) # hELLO mOTHERLAND
count
Syntax: string.count(sub, [start,], [end])
String. Count (string, [start value index], [end value index])
# Note that count is case sensitive var = 'Hello Motherland' res = var.count('h') print(res) # 1 res = var.count('H', 3, 10) print(res) # 1
find and index
Syntax: string.find(sub, [start,], [end])
Syntax: string.index(sub, [start,], [end])
# find and index services case var = 'Hello Motherland' res = var.find('h') print(res) # 9 res = var.index('h') print(res) # 9 # If the character cannot be found, find returns - 1 and index reports an error res = var.find('m', 3) print(res) # -1 res = var.index('m', 3) print(res) # error # find will only return the forward index, so don't worry about what if the searched character itself is the last var = 'Hello Motherland' res = var.find('d') print(res) # 15 print(len(var)) # 16
Startswitch and endswitch
Syntax: startswitch (prefix, [start], [End])
Syntax: end switch (suffix, [start], [End])
var = 'Hello Motherland' # See if the entire string starts with Hello res = var.startswith('Hello') print(res) # True # Check whether the string starts with Mother at index 6 res = var.startswith('Mother', 6) print(res) # True # See if the entire string ends with aad res = var.endswith('aad') print(res) # False
isupper and islower
var = 'Hello Motherland' # Determines whether all strings are uppercase res = var.isupper() print(res) # False # Determines whether all strings are lowercase res = var.islower() print(res) # False
isdecimal
var = '20666' # Determine whether all strings are composed of numbers res = var.isdecimal() print(res) # True
ljust,rjust,center
Syntax: string.ljust(width, [fillchar])
Specify a length. If the length of the string is not enough, it will be supplemented according to the specified string. By default, a space is used. The length of self delivery for supplementation cannot exceed 1.
var = 'Hello Motherland' res = var.ljust(20) print(repr(res)) # 'Hello Motherland ' res = var.rjust(30, 'm') print(res) # mmmmmmmmmmmmmmHello Motherland print(len(res)) # 30 res = var.center(30, '-') print(res) # -------Hello Motherland-------
strip,lstrip,rstrip
var = ' Hello Motherland ' # Remove the strings on both sides res = var.strip() print(repr(res)) # 'Hello Motherland' var = 'mmmmmmmmHello Motherlandmmmmmm ' # Remove the left res = var.lstrip('m') print(repr(res)) # 'Hello Motherlandmmmmmm' # Remove the one on the right res = var.rstrip('m') print(repr(res)) # 'mmmmmmmmHello Motherlandmmmmmm ' # The rightmost part doesn't start with m, so it can't be removed
split and rsplit
var = 'Hello my motherland' # By default, all are separated by spaces res = var.split() print(res) # ['Hello', 'my', 'motherland'] # Specify the number of times to separate res = var.split(' ', 1) print(res) # ['Hello', 'my motherland'] # Specify delimited characters res = var.split('l') print(res) # ['He', '', 'o my mother', 'and'] # rsplit is separated from right to left res = var.rsplit('l') print(res) # ['He', '', 'o my mother', 'and'] # Eh? How is the result of rsplit the same as that of rsplit? rspltd does not mean that the elements of the list are arranged from right to left, but that a character is found from the right of the string. If it is separated only once, we can see the difference in the results. # rsplit is separated from right to left res = var.rsplit('l', 1) print(res) # ['Hello my mother', 'and'] # split is separated from left to right res = var.split('l', 1) print(res) # ['He', 'lo my motherland'] # See the difference?
join
lst = ['h', 'e', 'l', 'l', 'o'] res = '-'.join(lst) print(res) # h-e-l-l-o string = 'hello' res = '-'.join(string) print(res) # h-e-l-l-o
replace
Syntax: string.replace(old, new, [count])
var = 'hello hello my motherland' # Replace characters res = var.replace('hello', 'Hello') print(res) # Hello, my motherland # Replace one of the characters res = var.replace('hello', 'hi', 1) print(res) # hi hello my motherland
Escape of string
Use of escape characters
The escape character in python refers to \. Its function is to make the characters after this symbol meaningful and meaningless.
Meaningless characters refer to characters that are simply a string; Meaningful characters refer to characters that are not what you see on the surface, but have a special meaning.
Main escape characters
Symbol | effect |
---|---|
\n | Line feed (Unix or Linux) |
\r\n | Line feed (windows) |
\t | indent |
\r | Replace all characters before the line with all characters after the line |
\b | Backspace, delete a character |
var = 'hello\nmotherland' print(var) print() var = 'hello\r\nmotherland' print(var) print() var = 'hello\tmotherland' print(var) print() var = 'hello\rmotherland' print(var)
# Backspace is used to delete a character strvar = 'abcde\bfg' print(strvar) # abcdfg
There are some escape characters in some special path addresses, but we don't want these escape characters to be executed, so we can use prototype output.
# How to solve the problem when the path is escaped? var = 'C:\Windows\twain_32' print(var) # C:\Windows wain_32 # Method 1: use \ to make escape characters meaningless var = 'C:\Windows\\twain_32' print(var) # C:\Windows\twain_32 # Method 2: use the repr function to prototype the output var = 'C:\Windows\twain_32' res = repr(var) print(res) # 'C:\\Windows\twain_32' # Method 3: use metacharacters ''' Add before character r Represents the prototype output of this string, and no escape characters in the string will be executed. ''' var = r'C:\Windows\twain_32' print(var) # C:\Windows\twain_32
format string
Replace a character with a placeholder in the string, so that the character at that position can be replaced at will.
placeholder
- %d integer placeholder
- %f floating point placeholder
- %s string placeholder
Integer placeholder
You can fill in integer, decimal and Boolean values
# Integer can be filled in var = 'I have%d Dollars' % (100) print(var) # I have 100 yuan # You can also fill in decimals, but the display effect is integers var = 'I have%d Dollars' % (100.99) print(var) # I have 100 yuan # Fill in the Boolean value and convert it to the corresponding integer type var = 'I have%d Dollars' % (True) print(var) # I have a dollar
Floating point placeholder
Like integers, you can fill in integer, decimal and Boolean values
# Decimal can be filled in var = 'What is the displacement of my car%fT' % (2.0) print(var) # The displacement of my car is 2.000000 t # You can also fill in integers, but the display effect is decimal var = 'What is the displacement of my car%fT' % (2) print(var) # The displacement of my car is 2.000000 t # It can be seen that there are too many decimal points
String placeholder
You can fill in any python legal type
# Decimal can be filled in var = 'What is the displacement of my car%sT' % (2.0) print(var) # The displacement of my car is 2.0T # You can also fill in integers, but the display effect is decimal var = 'What is the displacement of my car%sT' % (2) print(var) # The displacement of my car is 2T # You can also fill in integers, but the display effect is decimal var = 'What is the displacement of my car%sT' % (True) print(var) # The displacement of my car is TrueT # Use of multiple placeholders var = 'My car is%s, Spent%d Million, accounting for% of my total assets%f%%' % ('BYD', 50, 0.000001) print(var) # My car is BYD, which cost 500000, accounting for 0.00000 1% of my total assets # Note that when formatting a string, if you want to print a% separately, you need to enter two%%, so as to eliminate the placeholder meaning of%.
Use of format function
Format is also used to format strings, but it is more powerful than the above methods.
format uses braces instead of placeholders to pass values as its own parameters.
Syntax: 'string {} {}'. format(value1,value2)
Sequential parameter transmission
Parameters are passed one-to-one in the order of placeholders and values
# You can pass any data type. By default, it is a string placeholder. var = '{} {}'.format('hello', 'motherland') print(var) # hello motherland
Index transfer parameter
Fill in the index value of the format parameter in brackets to pass the parameter
# Reverse index is not supported var = '{1} {0}'.format('hello', 'motherland') print(var) # motherland hello
Keyword parameters
Prefix the parameter with a keyword, and then fill in the name of the keyword in square brackets. The keyword is transferred to the value according to the corresponding name.
var = '{msr} {world}'.format(msr='hello', world='motherland') print(var) # hello motherland
Container type parameters
If the parameter is data of a container type, the index value corresponding to the container can be filled in brackets for parameter transfer.
lst = ['hello', 'goodbye'] tup = ('my', 'your') dit = {'one': 'motherland', 'two': 'world'} # Do not specify elements in the container var = '{} {} {}'.format(lst, tup, dit) print(var) # ['hello', 'goodbye'] ('my', 'your') {'one': 'motherland', 'two': 'world'} # Specify element # Dictionary keys do not need quotation marks var = '{[0]} {[0]} {[one]}'.format(lst, tup, dit) print(var) # hello my motherland
Use of fill symbols
Fill symbols can be used to fill in strings that are not long enough
- ^Center original string
- >Original string right
- < original string left
Syntax: {[keyword parameter]: [character to be filled] [original string position] < total character len gt h >}
Example:{who:*^10} who : Keyword parameter, or subscript index * : Characters to fill(Default fill space) ^ : Position of the original string (left by default) 10 : Total character length = Original string length + Fill character length
var = '{price:-^20}'.format(price='Price') print(var) # ---------Price--------- # Note that the middle is indispensable var = '{:*^10}'.format('Price') print(var) # ****Price****
Use of binary conversion symbols
- : d integer placeholder
- : f floating point placeholder
- 😒 String placeholder
- : money placeholder
# Integer placeholder # It is required that the data type must be integer and cannot be compatible with any data type other than integer var = 'My car{:d}ten thousand'.format(100) print(var) # My car is a million # If there are digit requirements, add numbers; If there is a location requirement, fill symbols are used strvar = 'I have{:^10d}Dollars'.format(100) print(strvar) # I have 100 yuan # Floating point placeholder. The data type must be floating point var = 'I use{:f}%My assets are used to pick up girls.'.format(100.00) print(var) # I use 100.000000% of my assets to pick up girls. # We need to keep two decimal places and use. num var = 'I use{:.2f}%My assets are used to pick up girls.'.format(100.00) print(var) # I use 100.00% of my assets to pick up girls. # String placeholder. The data type must be string var = 'Where is my house{:s}{:s}'.format('Beijing', 'Eighteen rings') print(var) # My house is on the 18th ring road of Beijing # Money placeholder #Separate a string of numbers by thousands var = 'I have{:,}Yuan deposit'.format(100000000) print(var) # I have a deposit of 100000000 yuan