-
Notifications
You must be signed in to change notification settings - Fork 4
Strings
Strings in python are surrounded by either single quotation marks, or double quotation marks.
'hello'
is the same as "hello"
You can display a string literal with the print() function:
print('Hello')
You can assign a multiline string to a variable by using three quotes.
You can use three double quotes:
a = """Lorem ipsum dolor sit amet,
consecrate disciplining elit,
sed do usermod tempor incident
ut labor et do lore magna aliquot."""
print(a)
a = '''Lorem ipsum dolor sit amet,
consecrate disciplining elit,
sed do usermod tempor incident
ut labor et do lore magna aliquot.'''
print(a)
string = "I <3 Cats"
STRINGS: "I < 3 C a t s"
INDEXES: 0 1 2 3 4 5 6 7 8
Negative : -9 -8 -7 -6 -5 -4 -3 -2 -1
msg = "I <3 Cats"
output1 = msg[0] # output: 'I'
output2 = msg[5] # output: 'C'
print("hello"[1]) # output: h
Like many other popular programming languages, strings in Python are arrays of bytes representing unicode characters.
However, Python does not have a character data type, a single character is simply a string with a length of 1. Square brackets can be used to access elements of the string.
Get the character at position 1 (remember that the first character has the position 0):
a = "Hello, World!"
print(a[1])
Since strings are arrays, we can loop through the characters in a string, with a for loop.
Loop through the letters in the word "banana":
for x in "banana":
print(x)
To get the length of a string, use the len() function.
The len() function returns the length of a string:
a = "Hello, World!"
print(len(a))
To check if a certain phrase or character is present in a string, we can use the keyword in.
Check if "free" is present in the following text:
txt = "The best things in life are free!"
print("free" in txt) # output: True
Use it in an if statement.Print only if "free" is present:
txt = "The best things in life are free!"
if "free" in txt:
print("Yes, 'free' is present.")
To check if a certain phrase or character is NOT present in a string, we can use the keyword not in.
Check if "expensive" is NOT present in the following text:
txt = "The best things in life are free!"
print("expensive" not in txt)
Use it in an if statement, print only if "expensive" is NOT present:
txt = "The best things in life are free!"
if "expensive" not in txt:
print("No, 'expensive' is NOT present.")
You can return a range of characters by using the slice syntax. Specify the start index and the end index, separated by a colon, to return a part of the string.
Get the characters from position 2 to position 5 (not included):
b = "Hello, World!"
print(b[2:5])
I can't use "setitem" in str, so I will get TypeError.
b[1] = 'i' # TypeError: 'str' objects does not support item assignment
b = b[:1] + 'i' + b[2:] # Hillo, World!
By leaving out the start index, the range will start at the first character:
Get the characters from the start to position 5 (not included):
b = "Hello, World!"
print(b[:5])
By leaving out the end index, the range will go to the end.
Get the characters from position 2, and all the way to the end:
b = "Hello, World!"
print(b[2:])
Use negative indexes to start the slice from the end of the string.
Get the characters:
# From: "o" in "World!" (position -5)
# To, but not included: "d" in "World!" (position -2):
b = "Hello, World!"
print(b[-5:-2])
The upper() method returns the string in upper case.
a = "Hello, World!"
print(a.upper())
The lower() method returns the string in lower case.
a = "Hello, World!"
print(a.lower())
Whitespace is the space before and/or after the actual text, and very often you want to remove this space.
The strip() method removes any whitespace from the beginning or the end:
a = " Hello, World! "
print(a.strip()) # returns "Hello, World!"
msg = '...end...'
msg.strip('.') # output: end
msg.lstrip('.') # output: end...
msg.rstrip('.') # output: ...end
' hello'.strip() # output: 'hello'
' hello '.strip() # output: 'hello'
' hello \t\n '.strip() # output: 'hello'
' hello h\t\n '.strip() # output: 'hello h'
'---hello-----'.strip('-') # output: 'hello'
email = '[email protected] '
email.strip() # output: '[email protected]'
email.lower() # output: '[email protected]'
email.strip().lower() # output: '[email protected]'
The replace() method replaces a string with another string.
a = "Hello, World!"
print(a.replace("H", "J"))
The split() method returns a list where the text between the specified separator becomes the list items.
The split() method splits the string into substrings if it finds instances of the separator:
a = "Hello, World!"
print(a.split(",")) # returns ['Hello', ' World!']
birthday = '03/27/2020'
birthday.split('/') # return: ['03', '27', '2020']
To concatenate, or combine, two strings you can use the + operator.
Merge variable a
with variable b
into variable c
:
a = "Hello"
b = "World"
c = a + b
print(c)
To add a space between them, add a " "
:
a = "Hello"
b = "World"
c = a + " " + b
print(c)
You can use the *
operator to repeat strings:
print('Lucas' * 3)
a = 'hello'
b = 'lucas'
c = a + 5 * '.' + b
print(c) # hello.....lucas
f-strings are an easy way to generate strings that contain interpolated# expressions. any code between curly braces
{}
will be evaluated and then the result will be turned into a string and inserted into the overall string.
f_string = f'there are {24 * 60 * 60} seconds in a day'
print(f_string)
As we learned in the Python Variables chapter, we cannot combine strings and numbers like this
age = 36
txt = "My name is John, I am " + age
print(txt)
But we can combine strings and numbers by using the
format()
method!
The
format()
method takes the passed arguments, formats them, and places them in the string where the placeholders are{}
.
Use the format() method to insert numbers into strings:
age = 36
print("My name is John, and I am {}".format(age))
The format() method takes unlimited number of arguments, and are placed into the respective placeholders:
quantity = 3
itemno = 567
price = 49.95
my_order = "I want {} pieces of item {} for {} dollars."
print(my_order.format(quantity, itemno, price))
You can use index numbers {0} to be sure the arguments are placed in the correct placeholders:
quantity = 3
itemno = 567
price = 49.95
my_order = "I want to pay {2} dollars for {0} pieces of item {1}."
print(my_order.format(quantity, itemno, price))
Also, if you want to refer to the same value more than once, use the index number:
age = 36
name = "John"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))
You can also use named indexes by entering a name inside the curly brackets {carname}
, but then you must use names when you pass the parameter values txt.format(carname = "Ford"):
my_order = "I have a {carname}, it is a {model}."
print(my_order.format(carname="Ford", model="Mustang"))
To insert characters that are illegal in a string, use an escape character.
An escape character is a backslash
\
followed by the character you want to insert.
An example of an illegal character is a double quote inside a string that is surrounded by double quotes:
txt = "We are the so-called \"Vikings\" from the north."
# [Code] [Result]
# \' Single Quote
# \" Double Quote
# \\ Backslash
# \n New Line
# \r Carriage Return
# \t Tab
# \b Backspace
# \f Form Feed
# \ooo Octal value
# \xhh Hex value
print("Lucas\nSacul")
escape_name = "Lucas\nSacul"
Python has a set of built-in methods that you can use on strings. Note: All string methods return new values. They do not change the original string.
# [Method] [Description]
# capitalize() Converts the first character to upper case
# casefold() Converts string into lower case
# center() Returns a centered string
# count() Returns the number of times a specified value occurs in a string
# encode() Returns an encoded version of the string
# endswith() Returns true if the string ends with the specified value
# expandtabs() Sets the tab size of the string
# find() Searches the string for a specified value and returns the position of where it was found
# format() Formats specified values in a string
# format_map() Formats specified values in a string
# index() Searches the string for a specified value and returns the position of where it was found
# isalnum() Returns True if all characters in the string are alphanumeric
# isalpha() Returns True if all characters in the string are in the alphabet
# isdecimal() Returns True if all characters in the string are decimals
# isdigit() Returns True if all characters in the string are digits
# isidentifier() Returns True if the string is an identifier
# islower() Returns True if all characters in the string are lower case
# isnumeric() Returns True if all characters in the string are numeric
# isprintable() Returns True if all characters in the string are printable
# isspace() Returns True if all characters in the string are whitespaces
# istitle() Returns True if the string follows the rules of a title
# isupper() Returns True if all characters in the string are upper case
# join() Joins the elements of an iterable to the end of the string
# ljust() Returns a left justified version of the string
# lower() Converts a string into lower case
# lstrip() Returns a left trim version of the string
# maketrans() Returns a translation table to be used in translations
# partition() Returns a tuple where the string is parted into three parts
# replace() Returns a string where a specified value is replaced with a specified value
# rfind() Searches the string for a specified value and returns the last position of where it was found
# rindex() Searches the string for a specified value and returns the last position of where it was found
# rjust() Returns a right justified version of the string
# rpartition() Returns a tuple where the string is parted into three parts
# rsplit() Splits the string at the specified separator, and returns a list
# rstrip() Returns a right trim version of the string
# split() Splits the string at the specified separator, and returns a list
# splitlines() Splits the string at line breaks and returns a list
# startswith() Returns true if the string starts with the specified value
# strip() Returns a trimmed version of the string
# swapcase() Swaps cases, lower case becomes upper case and vice versa
# title() Converts the first character of each word to upper case
# translate() Returns a translated string
# upper() Converts a string into upper case
# zfill() Fills the string with a specified number of 0 values at the beginning
Python use Unicode for encoding characters used in the string data type. The function
ord()
will return the number for any character.
print('a' == 'a') # output: True
print('a' != 'b') # output: True
print('a' < 'w') # output: True
print('A' < '$') # output: False
print('aaa' < 'AAA') # output: False
print('A' < 'a') # output: True
print('100' < '9') # output: True
print(ord('a')) # output: 97
print(ord('A')) # output: 65
print(ord('B')) # output: 66
print(ord('C')) # output: 67
print(ord('9')) # output: 57
print(ord(' ')) # output: 32
join()
is a string method that joins together the elements of an iterable into a single string. whatever string you call it on will be used as a separator.
fruits = ['apple', 'kiwi', 'pear']
" ".join(fruits) # output: 'apple kiwi pear'
"!!!".join(fruits) # output: 'apple!!!kiwi!!!pear'
'!'.join('hello') # output: 'h!e!l!l!o'
my_string = 'hello my name is lucas'
print(my_string[::-1]) # 'sacul si eman ym olleh'
- Introduction
- Variables
- Data Types
- Numbers
- Casting
- Strings
- Booleans
- Operators
- Lists
- Tuple
- Sets
- Dictionaries
- Conditionals
- Loops
- Functions
- Lambda
- Classes
- Inheritance
- Iterators
- Multi‐Processing
- Multi‐Threading
- I/O Operations
- How can I check all the installed Python versions on Windows?
- Hello, world!
- Python literals
- Arithmetic operators and the hierarchy of priorities
- Variables
- Comments
- The input() function and string operators
Boolean values, conditional execution, loops, lists and list processing, logical and bitwise operations
- Comparison operators and conditional execution
- Loops
- [Logic and bit operations in Python]
- [Lists]
- [Sorting simple lists]
- [List processing]
- [Multidimensional arrays]
- Introduction
- Sorting Algorithms
- Search Algorithms
- Pattern-matching Algorithm
- Graph Algorithms
- Machine Learning Algorithms
- Encryption Algorithms
- Compression Algorithms
- Start a New Django Project
- Migration
- Start Server
- Requirements
- Other Commands
- Project Config
- Create Data Model
- Admin Panel
- Routing
- Views (Function Based)
- Views (Class Based)
- Django Template
- Model Managers and Querysets
- Form
- User model
- Authentification
- Send Email
- Flash messages
- Seed
- Organize Logic
- Django's Business Logic Services and Managers
- TestCase
- ASGI and WSGI
- Celery Framework
- Redis and Django
- Django Local Network Access
- Introduction
- API development
- API architecture
- lifecycle of APIs
- API Designing
- Implementing APIs
- Defining the API specification
- API Testing Tools
- API documentation
- API version
- REST APIs
- REST API URI naming rules
- Automated vs. Manual Testing
- Unit Tests vs. Integration Tests
- Choosing a Test Runner
- Writing Your First Test
- Executing Your First Test
- Testing for Django
- More Advanced Testing Scenarios
- Automating the Execution of Your Tests
- End-to-end
- Scenario
- Python Syntax
- Python OOP
- Python Developer position
- Python backend developer
- Clean Code
- Data Structures
- Algorithms
- Database
- PostgreSQL
- Redis
- Celery
- RabbitMQ
- Unit testing
- Web API
- REST API
- API documentation
- Django
- Django Advance
- Django ORM
- Django Models
- Django Views
- Django Rest Framework
- Django Rest Framework serializers
- Django Rest Framework views
- Django Rest Framework viewsets