String Formatting#
Introduction#
The .format() method in Python is used to create strings that include variables, expressions, or values. This method replaces curly brace placeholders {} in a string with values provided inside .format().
def main():
    x = 1
    y = 5
    # Display the variables using .format()
    console.print("Position: ({}, {})".format(x, y))
# Start threads — Do not delete
start_thread(main)
def main():
    # Display a calculation using .format()
    console.print("Sum: {}".format(5 + 3))
# Start threads — Do not delete
start_thread(main)
def main():
    wait(1, SECONDS)
    # Display the time using .format()
    console.print("Time: {}".format(timer.time(SECONDS)))
# Start threads — Do not delete
start_thread(main)
Formatting Numbers with .format – Insert values and expressions into a string.
- :.xf – Sets the number of decimal places to show. 
- round – Rounds a number to a given number of decimal places. 
- :, – Adds commas as thousands separators. 
- :.x% – Converts a decimal to a percentage with x decimal places. 
- :#x – Formats a number as hexadecimal. 
- :b – Formats a number as binary. 
Combining Strings – Combine text and values.
- .format() – Combine strings and variables in a single expression. 
- + operator – Concatenate strings manually with optional type conversion. 
String Methods – Change the case of text.
Checking for Substrings – Test for presence or position of text.
- in – Checks if a word exists in a string. 
- startswith() – Checks if a string begins with a given value. 
- endswith() – Checks if a string ends with a given value. 
Escape Sequences – Format output with special characters.
Formatting Numbers with .format#
.format can be used to control how numbers appear, including decimal places, rounding, and other formatting styles such as:
Fixed Decimal Places#
.xf controls how many decimal places a number is displayed with.
Usage:
.xf
| Parameters | Description | 
|---|---|
| 
 | The amount of decimal places to show. | 
def main():
    # Display pi with 2 decimal places
    pi = 3.1415926535
    console.print("Pi: {:.2f}".format(pi))
    # Output: Pi: 3.14
# Start threads — Do not delete
start_thread(main)
Rounding Numbers#
round rounds a number to a specific number of decimal places before formatting.
Usage:
round(number, x)
| Parameters | Description | 
|---|---|
| 
 | The number to round. | 
| 
 | The amount of decimal places to round to. | 
def main():
    # Display a value rounded to only 2 decimal places
    value = 5.6789
    console.print("Rounded: {}".format(round(value, 2)))
    # Output: Rounded: 5.68
# Start threads — Do not delete
start_thread(main)
Thousands Separator#
:, inserts commas as thousands separators to make large numbers more readable.
Usage:
:,
| Parameters | Description | 
|---|---|
| This format specifier has no parameters. | 
def main():
    # Display a large number separated with commas
    number = 1234567
    console.print("Formatted: ")
    console.new_line()
    console.print("{:,}".format(number))
    # Output: Formatted: 1,234,567
# Start threads — Do not delete
start_thread(main)
Percentage#
:.x% formats decimal values as percentages.
Usage:
:.x%
| Parameters | Description | 
|---|---|
| 
 | The amount of decimal places to show. | 
def main():
    # Display a converted decimal to a percentage
    value = 0.875
    console.print("Score: {:.1%}".format(value))
    # Output: Score: 87.5%
# Start threads — Do not delete
start_thread(main)
Hexadecimal#
:#x converts numbers to hexadecimal.
Usage:
:#x
| Parameters | Description | 
|---|---|
| This format specifier has no parameters. | 
def main():
    # Convert 255 to hexadecimal
    number = 255
    console.print("Hex: {:#x}".format(number))
    # Output: Hex: 0xff
# Start threads — Do not delete
start_thread(main)
Binary#
:b converts numbers to binary (base 2).
Usage:
:b
| Parameters | Description | 
|---|---|
| This format specifier has no parameters. | 
def main():
    # Convert 3 to binary
    console.print("Binary: {:b}".format(3))
    # Output: Binary: 11
# Start threads — Do not delete
start_thread(main)
Combining Strings#
You can combine (or concatenate) strings using two approaches:
Using .format#
Insert values directly into the string using {}.
def main():
    # Display an answer based on the given emotion
    emotion = "good"
    console.print("I'm {}, you?".format(emotion))
# Start threads — Do not delete
start_thread(main)
+ Operator#
Join multiple parts by using +.
Note: Non-strings must first be converted to strings using str().
def main():
    # Display the x and y values
    x = 10
    y = 20
    console.print("X: " + str(x) + ", Y: " + str(y))
# Start threads — Do not delete
start_thread(main)
String Methods#
Python provides built-in methods for modifying and checking strings.
upper#
upper converts all letters in a string to uppercase.
Usage:
upper()
| Parameters | Description | 
|---|---|
| This method has no parameters. | 
def main():
    # Capitalize a string with .upper()
    message = "vexcode"
    console.print(message.upper())  # Output: VEXCODE
# Start threads — Do not delete
start_thread(main)
lower#
lower converts all letters in a string to lowercase.
Usage:
lower()
| Parameters | Description | 
|---|---|
| This method has no parameters. | 
def main():
    # Make a string lowercase with .lower()
    message = "VEXCODE"
    console.print(message.lower())  # Output: vexcode
# Start threads — Do not delete
start_thread(main)
Checking for Substrings#
in#
in is a keyword that returns a Boolean indicating whether a word exists in a string.
- True- The word exists in the string.
- False- The word does not exist in the string.
def main():
    message = "Hey everyone!"
    if "Hey" in message:
        console.print("Hello!")
# Start threads — Do not delete
start_thread(main)
startswith#
startswith returns a Boolean indicating whether a string begins with a given value.
- True- The word starts the string.
- False- The word does not start the string.
Usage:
startswith(substring)
| Parameters | Description | 
|---|---|
| 
 | The substring to check inside the string. | 
def main():
    # Check for 'GO' at the start of a string
    message = "GO Robot"
    if message.startswith("GO"):
        console.print("GO first!")
# Start threads — Do not delete
start_thread(main)
endswith#
endswith returns a Boolean indicating whether a string ends with a given value.
- True- The word ends the string.
- False- The word does not end the string.
Usage:
startswith(substring)
| Parameters | Description | 
|---|---|
| 
 | The substring to check inside the string. | 
def main():
    # Check for `Robot` at the end of a string
    message = "GO Robot"
    if message.endswith("Robot"):
        console.print("Robot last!")
# Start threads — Do not delete
start_thread(main)
Escape Sequences#
Escape sequences are special characters used inside strings to format text output.
New Line#
\n moves text to a new line when printing.
def main():
    # Display text on two lines
    console.print("First line\nSecond line")
# Start threads — Do not delete
start_thread(main)
Tab Spacing#
\t inserts a tab space between words or numbers,
def main():
    # Display the quantity of disks
    quantity = 2
    console.print("Disks:\t", quantity)
# Start threads — Do not delete
start_thread(main)