Python Full Course for free š (2024)
By Bro Code
Share:
Key Concepts
- Python Interpreter: Converts Python code to machine code.
- IDE (Integrated Development Environment): Software application providing comprehensive facilities to computer programmers for software development.
- Variables: Containers for storing data values.
- Data Types: Categories of values (e.g., strings, integers, floats, booleans).
- Type Casting: Converting a variable from one data type to another.
- User Input: Data entered by the user during program execution.
- Arithmetic Operators: Symbols used to perform mathematical operations (+, -, *, /, **, %).
- Math Module: Python module providing access to mathematical functions.
- If Statements: Conditional statements that execute code based on a condition.
- Logical Operators: Operators used to combine or modify conditions (or, and, not).
- Conditional Expressions: Concise way to write if-else statements in one line.
- String Methods: Functions that operate on strings (e.g.,
len(),find(),replace(),upper(),lower()). - String Indexing: Accessing individual characters or substrings within a string.
- Format Specifiers: Flags used within f-strings to format values (e.g.,
.2f,10,0). - While Loops: Loops that execute code as long as a condition is true.
- For Loops: Loops that iterate over a sequence of elements.
- Nested Loops: Loops within loops.
- Collections: Data structures that store multiple values (e.g., lists, sets, tuples, dictionaries).
- Lists: Ordered, changeable collections that allow duplicate values.
- Sets: Unordered, immutable collections that do not allow duplicate values.
- Tuples: Ordered, unchangeable collections that allow duplicate values.
- Dictionaries: Collections of key-value pairs.
- 2D Lists: Lists made up of lists, representing grids or matrices.
- Random Module: Python module for generating random numbers.
- Functions: Reusable blocks of code.
- Arguments: Values passed to a function when it is called.
- Parameters: Variables that receive arguments passed to a function.
- Return Statement: Statement that ends a function and sends a result back to the caller.
- Default Arguments: Default values for function parameters.
- Keyword Arguments: Arguments passed to a function with an identifier (parameter name).
- Arbitrary Arguments: Allowing a function to accept a varying number of arguments (*args, **kwargs).
- Iterables: Objects that can return their elements one at a time.
- Membership Operators: Operators used to test whether a value is in a sequence (in, not in).
- List Comprehensions: Concise way to create lists based on existing iterables.
- Match Case Statements: Alternative to if-elif statements for matching values.
- Modules: Python files containing code to be included in a program.
- Variable Scope: Region of a program where a variable is accessible.
- Scope Resolution: Order in which Python searches for variables (LEGB: Local, Enclosed, Global, Built-in).
if __name__ == "__main__":: Conditional statement that checks if a script is being run directly.- Object-Oriented Programming (OOP): Programming paradigm based on objects, classes, inheritance, and polymorphism.
- Objects: Instances of a class, containing attributes and methods.
- Classes: Blueprints for creating objects.
- Attributes: Variables that describe an object.
- Methods: Functions that belong to an object.
- Constructor (
__init__): Special method used to initialize objects. - Inheritance: Mechanism by which a class inherits attributes and methods from another class.
- Multiple Inheritance: Class inheriting from multiple parent classes.
- Multi-level Inheritance: Class inheriting from a parent that inherits from another parent.
- Super Function: Used in a child class to call methods from a parent class.
- Polymorphism: Ability of an object to take on many forms.
- Duck Typing: Determining an object's type based on its methods and attributes rather than its class.
- Static Methods: Methods that belong to a class but do not require access to instance data.
- Class Methods: Methods that operate on class-level data and take
clsas the first parameter. - Magic Methods (Dunder Methods): Special methods with double underscores that are automatically called by Python (e.g.,
__init__,__str__,__eq__). - Property Decorator: Allows defining methods as properties with getter, setter, and deleter methods.
- Exception Handling: Process of handling errors and preventing program crashes (try, except, finally).
- File Detection: Determining if a file exists and its type (file or directory).
- File Handling: Reading from and writing to files.
- JSON (JavaScript Object Notation): Lightweight data-interchange format.
- CSV (Comma-Separated Values): File format for storing tabular data.
- Threading: Performing multiple tasks concurrently.
- GUI (Graphical User Interface): Visual interface for interacting with a program.
- Widgets: Building blocks of a GUI (e.g., labels, buttons, text boxes).
- Layout Managers: Tools for organizing widgets within a window (e.g., QVBoxLayout, QHBoxLayout, QGridLayout).
- Signals and Slots: Mechanism for communication between objects in Qt.
- Style Sheets: Used to customize the appearance of widgets using CSS-like properties.
- API (Application Programming Interface): Set of rules and specifications that software programs can follow to communicate with each other.
Main Topics and Key Points
1. Setting Up the Development Environment
- Downloading Python: Download the latest version of the Python interpreter from python.org. On Windows, ensure "Add Python to PATH" is checked during installation.
- IDE Selection: Choose an IDE like PyCharm (beginner-friendly) or VS Code (with the Python extension). PyCharm Community Edition is recommended for its free features.
- Creating a New Project: In PyCharm, create a new project, selecting the latest Python version. Create a new Python file (e.g.,
main.py) within the project folder. - Printing to the Console: Use the
print()function to display output in the console window. Example:print("I like pizza"). - Comments: Add comments using the
#symbol for notes within the code.
2. Variables and Data Types
- Variables as Containers: A variable is a container for a value.
- Data Types:
- Strings: Series of characters enclosed in double or single quotes (e.g.,
"Bro"). - Integers: Whole numbers (e.g.,
25). - Floats: Numbers with a decimal portion (e.g.,
10.99). - Booleans: True or False values (e.g.,
True).
- Strings: Series of characters enclosed in double or single quotes (e.g.,
- Variable Assignment: Use the
=operator to assign values to variables (e.g.,first_name = "Bro"). - F-strings: Use f-strings (e.g.,
f"Hello {first_name}") to embed variables within strings. - Boolean Usage: Booleans are often used internally within programs, especially with
ifstatements.
3. Type Casting
- Converting Data Types: Type casting is the process of converting a variable from one data type to another.
- Type Casting Functions:
str(): Converts to a string.int(): Converts to an integer (truncates decimal portion).float(): Converts to a float.bool(): Converts to a boolean (empty strings areFalse, non-empty strings areTrue).
- Example: Converting GPA to an integer:
GPA = int(GPA).
4. User Input
- The
input()Function: Prompts the user to enter data and returns the entered data as a string. - Prompting the User: Add a prompt within the
input()function to tell the user what to type (e.g.,name = input("What is your name? ")). - Type Casting User Input: User input is always a string; type cast it to another data type if needed (e.g.,
age = int(input("How old are you? "))). - Example: Calculating the area of a rectangle by prompting the user for length and width, then type casting the input to floats.
5. Arithmetic Operators and Math Functions
- Basic Arithmetic Operators:
+: Addition-: Subtraction*: Multiplication/: Division**: Exponentiation%: Modulus (remainder of division)
- Augmented Assignment Operators: Shorthand for updating variables (e.g.,
friends += 1is the same asfriends = friends + 1). - Built-in Math Functions:
round(): Rounds a number to the nearest whole number.abs(): Returns the absolute value of a number.pow(): Raises a base to a given power (e.g.,pow(4, 3)is 4 to the power of 3).max(): Returns the maximum value among various values.min(): Returns the minimum value among various values.
- Math Module Functions:
import math: Imports the math module.math.pi: The value of pi (Ļ).math.e: The exponential constant (e).math.sqrt(): Returns the square root of a number.math.ceil(): Rounds a number up to the nearest integer.math.floor(): Rounds a number down to the nearest integer.
- Example: Calculating the circumference of a circle using
math.piand user-provided radius.
6. If Statements
- Conditional Execution: If statements execute code only if a condition is true.
- Syntax:
if condition:, followed by indented code. - Else Clause: Executes code if the
ifcondition is false. - Elif Clause: Checks additional conditions if the initial
ifcondition is false. - Comparison Operator:
==checks if two values are equal. - Boolean Variables: If statements can directly use boolean variables in place of a condition.
- Example: Checking if a user is old enough to sign up for a credit card based on their age.
7. Calculator Program
- Accepting User Input: Prompts the user to enter an arithmetic operator and two numbers.
- Type Casting: Converts the user's input for the numbers to floating-point numbers.
- If-Elif Statements: Uses if-elif statements to perform the appropriate arithmetic operation based on the user's input.
- Error Handling: Includes an else statement to handle invalid operator input.
- Rounding: Uses the
round()function to round the result to a specified number of decimal places.
8. Weight Converter Program
- Accepting User Input: Prompts the user to enter their weight and the unit of measurement (kilograms or pounds).
- If-Elif Statements: Uses if-elif statements to convert the weight to the appropriate unit.
- Conversion Formulas:
- Kilograms to pounds:
weight = weight * 2.205 - Pounds to kilograms:
weight = weight / 2.205
- Kilograms to pounds:
- Error Handling: Includes an else statement to handle invalid unit input.
- Rounding: Uses the
round()function to round the result to one decimal place.
9. Temperature Conversion Program
- Accepting User Input: Prompts the user to enter the temperature and the unit of measurement (Celsius or Fahrenheit).
- If-Elif Statements: Uses if-elif statements to convert the temperature to the appropriate unit.
- Conversion Formulas:
- Celsius to Fahrenheit:
temp = 9 * temp / 5 + 32 - Fahrenheit to Celsius:
temp = (temp - 32) * 5 / 9
- Celsius to Fahrenheit:
- Error Handling: Includes an else statement to handle invalid unit input.
- Rounding: Uses the
round()function to round the result to one decimal place.
10. Logical Operators
- OR Operator: Checks if at least one condition is true.
- AND Operator: Checks if both conditions are true.
- NOT Operator: Inverts a condition (true becomes false, false becomes true).
- Example: Determining if an outdoor event should be canceled based on temperature and rain.
11. Conditional Expressions
- One-Line If-Else: A concise way to write if-else statements in one line.
- Syntax:
return X if condition else return Y - Example: Assigning a status of "adult" or "child" based on age.
12. String Methods
len(): Returns the length of a string.find(): Returns the index of the first occurrence of a character.rfind(): Returns the index of the last occurrence of a character.capitalize(): Capitalizes the first letter of a string.upper(): Converts all characters to uppercase.lower(): Converts all characters to lowercase.isdigit(): Returns True if a string contains only digits.isalpha(): Returns True if a string contains only alphabetical characters.count(): Returns the number of occurrences of a character.replace(): Replaces all occurrences of one character with another.help(str): Displays a comprehensive list of string methods.- Example: Validating user input for a username, ensuring it meets certain criteria.
13. String Indexing
- Accessing Elements: Accessing individual characters or substrings within a string using square brackets
[]. - Syntax:
string[start:end:step] - Negative Indexing: Accessing characters from the end of the string (e.g.,
string[-1]is the last character). - Step: Skipping characters by a given step (e.g.,
string[::2]is every second character). - Reversing a String: Setting the step to -1 (e.g.,
string[::-1]). - Example: Getting the last four digits of a credit card number.
14. Format Specifiers
- Formatting Values: Flags used within f-strings to format values.
- Syntax:
f"The price is {price:.2f}" - Common Flags:
.2f: Decimal point precision (two decimal places).10: Allocate space (10 characters).0: Zero padding.<: Left justify.>: Right justify.^: Center align.+: Display plus sign for positive numbers.: Display space for positive numbers.,: Thousand separator.
- Example: Formatting prices with decimal precision and a thousand separator.
15. While Loops
- Conditional Execution: While loops execute code as long as a condition is true.
- Syntax:
while condition:, followed by indented code. - Infinite Loops: Ensure there is a way to escape the loop; otherwise, it will run indefinitely.
continueKeyword: Skips the current iteration of the loop.breakKeyword: Exits the loop entirely.- Example: Continuously prompting the user to enter their name until they type something.
16. Compound Interest Calculator
- Accepting User Input: Prompts the user to enter the principal amount, interest rate, and time in years.
- While Loops: Uses while loops to ensure the user enters valid input (e.g., positive numbers).
- Compound Interest Formula:
total = principal * (1 + rate / 100) ** time - Output: Displays the new balance after the specified time.
17. For Loops
- Iterating Over Sequences: For loops iterate over a sequence of elements (e.g., range, string, list).
- Syntax:
for variable in sequence:, followed by indented code. range()Function: Generates a sequence of numbers.reversed()Function: Reverses the order of a sequence.continueKeyword: Skips the current iteration of the loop.breakKeyword: Exits the loop entirely.- Example: Counting to 10 and printing each number.
18. Countdown Timer
- Importing the
timeModule: Provides access to time-related functions. time.sleep()Function: Pauses the program for a specified number of seconds.- For Loop: Used to iterate over a range of numbers, counting down from a starting value to zero.
- Calculating Hours, Minutes, and Seconds: Uses arithmetic operators and the modulus operator to calculate the hours, minutes, and seconds from the remaining time.
- String Formatting: Uses f-strings and format specifiers to display the time in a digital clock format.
19. Nested Loops
- Loops Within Loops: A nested loop is a loop found within the code of another loop.
- Outer Loop: The loop on the outside.
- Inner Loop: The loop within the outer loop.
- Example: Printing a rectangle made of a specified symbol, where the outer loop controls the rows and the inner loop controls the columns.
20. Collections (Lists, Sets, Tuples)
- Lists: Ordered, changeable collections that allow duplicate values.
- Created using square brackets
[]. - Elements can be accessed using indexing (e.g.,
my_list[0]). - Methods:
append(),remove(),insert(),sort(),reverse(),clear(),index(),count().
- Created using square brackets
- Sets: Unordered, immutable collections that do not allow duplicate values.
- Created using curly braces
{}. - Elements cannot be accessed using indexing.
- Methods:
add(),remove(),clear().
- Created using curly braces
- Tuples: Ordered, unchangeable collections that allow duplicate values.
- Created using parentheses
(). - Elements can be accessed using indexing.
- Methods:
count(),index().
- Created using parentheses
len()Function: Returns the number of elements in a collection.inOperator: Checks if a value is in a collection.- Example: Creating a list of fruits and iterating over it using a for loop.
21. Shopping Cart Program
- Lists for Items and Prices: Uses two lists to store the items in the shopping cart and their corresponding prices.
- While Loop: Continuously prompts the user to enter items until they type "Q" to quit.
- Appending to Lists: Uses the
append()method to add items and prices to the lists. - Calculating the Total: Iterates over the prices list and adds up the total.
- Output: Displays the items in the cart and the total price.
22. 2D Collections
- Lists of Lists: A two-dimensional list is a list made up of lists.
- Accessing Elements: Accessing elements requires two indices (e.g.,
my_list[row][column]). - Nested Loops: Used to iterate over the rows and columns of a 2D list.
- Example: Creating a 2D keypad representing a phone number pad.
23. Quiz Game
- Tuples for Questions and Options: Uses tuples to store the questions, options, and answers.
- Lists for Guesses: Uses a list to store the user's guesses.
- For Loops: Used to iterate over the questions and options.
- If Statements: Used to check if the user's guess is correct.
- Calculating the Score: Calculates the user's score as a percentage of correct answers.
24. Dictionaries
- Key-Value Pairs: Dictionaries are collections of key-value pairs.
- Created using curly braces
{}. - Accessing Values: Values are accessed using their keys (e.g.,
my_dict["key"]). - Methods:
get(),update(),pop(),popitem(),clear(),keys(),values(),items(). - Example: Creating a dictionary of countries and their capitals.
25. Concession Stand Program
- Dictionary for Menu: Uses a dictionary to store the menu items and their prices.
- While Loop: Continuously prompts the user to select items until they type "Q" to quit.
- List for Cart: Uses a list to store the items in the user's cart.
- Calculating the Total: Iterates over the cart and adds up the prices from the menu dictionary.
- Output: Displays the items in the cart and the total price.
26. Random Numbers
- Importing the
randomModule: Provides access to random number generation functions. random.randint(): Returns a random integer within a specified range.random.random(): Returns a random floating-point number between 0 and 1.random.choice(): Returns a random element from a sequence.random.shuffle(): Shuffles the elements of a sequence in place.- Example: Creating a number guessing game where the computer selects a random number and the user tries to guess it.
27. Rock Paper Scissors Game
- Tuple for Options: Uses a tuple to store the possible choices (rock, paper, scissors).
- Random Choice for Computer: Uses
random.choice()to select a random choice for the computer. - If-Elif Statements: Uses if-elif statements to determine the winner based on the player's and computer's choices.
- While Loop: Allows the user to play multiple rounds.
28. Dice Roller Program
- Importing the
randomModule: Provides access to random number generation functions. - Dictionary for Dice Art: Uses a dictionary to store the ASCII art for each die face.
- For Loops: Used to iterate over the dice and print the corresponding ASCII art.
- Random Number Generation: Uses
random.randint()to generate random numbers for each die.
29. Functions
- Reusable Code Blocks: Functions are reusable blocks of code.
- Syntax:
def function_name(parameters):, followed by indented code. - Arguments: Values passed to a function when it is called.
- Parameters: Variables that receive arguments passed to a function.
returnStatement: Ends a function and sends a result back to the caller.- Example: Creating a function to sing "Happy Birthday" and passing in the person's name.
30. Default Arguments
- Default Parameter Values: Default arguments are default values for function parameters.
- Syntax:
def function_name(parameter=default_value): - Flexibility: Allows calling a function with fewer arguments if the default values are sufficient.
- Example: Creating a function to calculate the net price of an item, with default values for discount and sales tax.
31. Keyword Arguments
- Named Arguments: Keyword arguments are arguments passed to a function with an identifier (parameter name).
- Syntax:
function_name(parameter1=value1, parameter2=value2) - Readability: Improves code readability by explicitly stating which argument corresponds to which parameter.
- Order Independence: The order of keyword arguments does not matter.
- Example: Creating a function to generate a phone number, with keyword arguments for country code, area code, and digits.
32. Arbitrary Arguments
- Varying Number of Arguments: Allows a function to accept a varying number of arguments.
*args: Used to pass a variable number of non-keyword arguments.**kwargs: Used to pass a variable number of keyword arguments.- Example: Creating a function to print a shipping label, accepting both positional and keyword arguments.
33. Iterables
- Objects That Can Be Iterated: An iterable is an object that can return its elements one at a time.
- For Loops: Iterables can be used in for loops to access each element.
- Examples: Lists, tuples, sets, strings, dictionaries.
reversed()Function: Reverses the order of an iterable.endKeyword Argument: Used in theprint()function to specify the character to be printed at the end of each line.
34. Membership Operators
- Checking for Membership: Used to test whether a value is in a sequence.
inOperator: Returns True if a value is in a sequence.not inOperator: Returns True if a value is not in a sequence.- Example: Checking if a letter is in a word.
35. List Comprehensions
- Concise List Creation: A concise way to create lists based on existing iterables.
- Syntax:
[expression for variable in iterable if condition] - Example: Creating a list of doubles from a range of numbers.
36. Match Case Statements
- Alternative to If-Elif: An alternative to if-elif statements for matching values.
- Syntax:
match variable: case value1: # Code to execute if variable == value1 case value2: # Code to execute if variable == value2 case _: # Code to execute if no other case matches (default) - Example: Determining the day of the week based on a number.
37. Modules
- Reusable Code Files: A module is a Python file containing code to be included in a program.
importKeyword: Used to include a module.from module import item: Imports a specific item from a module.import module as alias: Imports a module with an alias.help(module): Displays documentation for a module.- Example: Creating a module with math-related functions and importing it into another file.
38. Variable Scope and Scope Resolution
- Variable Scope: The region of a program where a variable is accessible.
- Scope Resolution (LEGB):
- Local: Variables defined within a function.
- Enclosed: Variables defined in an enclosing function.
- Global: Variables defined outside of any function.
- Built-in: Predefined variables and functions in Python.
- Example: Demonstrating how variables with the same name can exist in different scopes.
39. if __name__ == "__main__":
- Checking for Direct Execution: A conditional statement that checks if a script is being run directly.
- Purpose: Allows a script to be run as a standalone program or imported as a module without executing the main body of code.
- Example: Using the statement to call a
main()function only when the script is run directly.
40. Object-Oriented Programming (OOP)
- Objects: Instances of a class, containing attributes and methods.
- Classes: Blueprints for creating objects.
- Attributes: Variables that describe an object.
- Methods: Functions that belong to an object.
- Constructor (
__init__): Special method used to initialize objects. - Example: Creating a
Carclass with attributes like model, year, and color, and methods likedrive()andstop().
41. Class Variables
- Shared Among Instances: Class variables are shared among all instances of a class.
- Defined Outside Constructor: Defined outside the constructor.
- Accessing Class Variables: Accessed using the class name (e.g.,
Student.num_students). - Example: Creating a
Studentclass with a class variable to track the number of students created.
42. Inheritance
- Inheriting Attributes and Methods: Mechanism by which a class inherits attributes and methods from another class.
- Syntax:
class ChildClass(ParentClass): - Code Reusability: Reduces code duplication by allowing classes to inherit common functionality.
- Example: Creating
Dog,Cat, andMouseclasses that inherit from anAnimalclass.
43. Super Function
- Calling Parent Class Methods: Used in a child class to call methods from a parent class.
- Syntax:
super().method_name() - Extending Functionality: Allows extending the functionality of inherited methods.
- Example: Creating
Circle,Square, andTriangleclasses that inherit from aShapeclass and usingsuper()to call the parent class's constructor.
44. Polymorphism
- Many Forms: Ability of an object to take on many forms.
- Inheritance: An object can be treated as the same type as its parent class.
- Duck Typing: An object can be treated as a different type if it has the required methods and attributes.
- Example: Creating a list of
Shapeobjects that can containCircle,Square, andTriangleobjects.
45. Static Methods
- Class-Level Methods: Methods that belong to a class but do not require access to instance data.
@staticmethodDecorator: Used to define static methods.- Accessing Static Methods: Accessed using the class name (e.g.,
Employee.is_valid_position()). - Example: Creating an
Employeeclass with a static method to check if a job position is valid.
46. Class Methods
- Methods That Operate on Class Data: Methods that operate on class-level data and take
clsas the first parameter. @classmethodDecorator: Used to define class methods.- Accessing Class Methods: Accessed using the class name (e.g.,
Student.get_count()). - Example: Creating a
Studentclass with a class method to calculate the average GPA of all students.
47. Magic Methods (Dunder Methods)
- Special Methods: Special methods with double underscores that are automatically called by Python.
- Examples:
__init__: Constructor.__str__: String representation of an object.__eq__: Equality comparison.__lt__: Less than comparison.__gt__: Greater than comparison.__add__: Addition.__contains__: Membership test.__getitem__: Indexing.
- Example: Creating a
Bookclass and defining magic methods to customize how books are printed, compared, and added together.
48. Property Decorator
- Defining Methods as Properties: Allows defining methods as properties with getter, setter, and deleter methods.
@propertyDecorator: Used to define the getter method.@property_name.setterDecorator: Used to define the setter method.@property_name.deleterDecorator: Used to define the deleter method.- Example: Creating a
Rectangleclass with properties for width and height, allowing validation and formatting when accessing these attributes.
49. Decorators
- Extending Functionality: A function that extends the behavior of another function without modifying it.
- Syntax:
@decorator_name def function_name(): # Function code - Example: Creating a decorator to add sprinkles to ice cream.
50. Exception Handling
- Handling Errors: Process of handling errors and preventing program crashes.
tryBlock: Contains code that might raise an exception.exceptBlock: Contains code to handle a specific exception.finallyBlock: Contains code that always executes, regardless of whether an exception occurred.- Example: Handling
ZeroDivisionErrorandValueErrorwhen accepting user input for a number.
51. File Detection
- Checking for File Existence: Determining if a file exists.
os.path.exists(): Returns True if a file or directory exists.os.path.isfile(): Returns True if a path is a file.os.path.isdir(): Returns True if a path is a directory.- Example: Checking if a file exists before attempting to read it.
52. File Handling (Writing)
- Opening Files for Writing: Using the
open()function with the "w" mode. withStatement: Ensures that the file is closed automatically after use.file.write()Method: Writes data to a file.- JSON Output: Using the
json.dump()method to write JSON data to a file. - CSV Output: Using the
csv.writer()method to write CSV data to a file. - Example: Writing a list of employees to a text file, a dictionary to a JSON file, and a list of lists to a CSV file.
53. File Handling (Reading)
- Opening Files for Reading: Using the
open()function with the "r" mode. file.read()Method: Reads the entire contents of a file into a string.- JSON Input: Using the
json.load()method to read JSON data from a file. - CSV Input: Using the
csv.reader()method to read CSV data from a file. - Example: Reading the contents of a text file, a JSON file, and a CSV file.
54. Date and Time
- Importing the
datetimeModule: Provides access to date and time classes. datetime.date(): Creates a date object.datetime.datetime.now(): Returns the current date and time.strftime()Method: Formats a date or time object as a string.- Example: Creating a program to check if the current date and time has passed a target date and time.
55. Multi-Threading
- Performing Tasks Concurrently: Used to perform multiple tasks concurrently.
threading.Thread(): Creates a new thread.thread.start(): Starts a thread.thread.join(): Waits for a thread to
Chat with this Video
AI-PoweredLoad the transcript when you're ready to chat so the initial page stays lighter.
Related Videos

How the hometown humiliation of Putin marks a turning point for Ukraine | DW News
DW News

Shocking video shows moment paramedics are hit by Israel in 'double-tap' strike
Sky News

Inside Jeffrey Epstein's Network of Power
Bloomberg Originals

Putin Xi, To Catch a Castro, Red Carpet Rebellion ⢠FRANCE 24 English
FRANCE 24 English

Trump's supporters furious over Trump smartphone scam.
ABC News In-depth

Nvidia Crushes Earnings again ā What Jensen Huang sees next for AI
CGTN America

Throwing out the first pitch for the Rockies for STEM Day!
Sick Science!