112 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Is There a Way to Substring a String in Python | |||
|  | --- | |||
|  | 
 | |||
|  | ## Is There a Way to Substring a String in Python
 | |||
|  | 
 | |||
|  | Python offers many ways to substring a string. It is often called 'slicing'. | |||
|  | 
 | |||
|  | It follows this template: | |||
|  | 
 | |||
|  | ```python | |||
|  | string[start: end: step] | |||
|  | ``` | |||
|  | Where, | |||
|  | 
 | |||
|  | `start`: The starting index of the substring. The character at this index is included in the substring. If _start_ is not included, it is assumed to equal to 0. | |||
|  | 
 | |||
|  | `end`: The terminating index of the substring. The character at this index is _NOT_ included in the substring. If _end_ is not included, or if the specified value exceeds the string length, it is assumed to be equal to the length of the string by default. | |||
|  | 
 | |||
|  | `step`: Every 'step' character after the current character to be included. The default value is 1. If the _step_ value is omitted, it is assumed to equal to 1. | |||
|  | 
 | |||
|  | #### Template
 | |||
|  | 
 | |||
|  | `string[start:end]`: Get all characters from index _start_ to _end-1_ | |||
|  | 
 | |||
|  | `string[:end]`: Get all characters from the beginning of the string to _end-1_ | |||
|  | 
 | |||
|  | `string[start:]`: Get all characters from index _start_ to the end of the string | |||
|  | 
 | |||
|  | `string[start:end:step]`: Get all characters from _start_ to _end-1_ discounting every _step_ character | |||
|  | 
 | |||
|  | 
 | |||
|  | #### Examples
 | |||
|  | 
 | |||
|  | * **Get the first 5 characters of a string** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[0:5]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > freeC
 | |||
|  | ``` | |||
|  | 
 | |||
|  | Note: `print(string[:5])` returns the same result as `print(string[0:5])` | |||
|  | 
 | |||
|  | * **Get a substring of length 4 from the 3rd character of the string** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[2:6]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > eeCo
 | |||
|  | ``` | |||
|  | 
 | |||
|  | Please note that the start or end index may be a negative number. A negative index means that you start counting from the end of the string instead of the beginning (i.e from the right to left). Index -1 represents the last character of the string, -2 represents the second to last character and so on... | |||
|  | 
 | |||
|  | * **Get the last character of the string** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[-1]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > p
 | |||
|  | ``` | |||
|  | 
 | |||
|  | * **Get the last 5 characters of a string** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[-5:]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > eCamp
 | |||
|  | ``` | |||
|  | 
 | |||
|  | * **Get a substring which contains all characters except the last 4 characters and the 1st character** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[1:-4]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > reeCode
 | |||
|  | ``` | |||
|  | 
 | |||
|  | #### More examples
 | |||
|  | ```py | |||
|  | str = “freeCodeCamp” | |||
|  | 
 | |||
|  | print str[-5:-2] # prints ‘eCa’ | |||
|  | print str[-1:-2] # prints ‘’ (empty string) | |||
|  | ``` | |||
|  | 
 | |||
|  | * **Get every other character from a string** | |||
|  | 
 | |||
|  | ```python | |||
|  | string = "freeCodeCamp" | |||
|  | print(string[::2]) | |||
|  | ``` | |||
|  | Output: | |||
|  | ```shell | |||
|  | > feCdCm
 | |||
|  | ``` |