1. What is Python?
Python is a high-level, interpreted, and general-purpose programming language known for its simplicity and readability. It was created by Guido van Rossum and first released in 1991. Python supports multiple programming paradigms, including procedural, object-oriented, and functional programming.
2. Why Learn Python?
- Easy to Learn and Read: Python’s syntax is designed to be clean and easy to understand, which makes it beginner-friendly.
- Versatile: Python can be used for web development, data science, automation, machine learning, artificial intelligence, game development, and more.
- Large Community and Libraries: Python has an extensive community and numerous libraries that make development easier and faster.
3. Python Syntax and Basic Concepts
3.1. Python Variables and Data Types
- Variables: A variable is a name given to a memory location used to store data. Variables in Python do not require explicit declaration to reserve memory space.
x = 5 # Integer
name = "John" # String
- Data Types:
- int: Integer numbers.
python x = 10
- float: Decimal numbers.
python y = 3.14
- str: String (text).
python message = "Hello, World!"
- bool: Boolean (True or False).
python flag = True
- list: A collection of ordered items.
python fruits = ["apple", "banana", "cherry"]
- tuple: Immutable ordered collection.
python coordinates = (4, 5)
- dict: Key-value pairs.
python person = {"name": "Alice", "age": 25}
3.2. Python Operators
- Arithmetic Operators: Used for basic mathematical operations.
+, -, *, /, %, ** (Exponentiation), // (Floor division)
Example:
a = 10
b = 5
print(a + b) # Output: 15
- Comparison Operators: Used to compare values.
==, !=, >, <, >=, <=
- Logical Operators: Used to combine conditional statements.
and, or, not
3.3. Python Conditional Statements
- If Statement: Used to make decisions.
if x > 10:
print("x is greater than 10")
elif x == 10:
print("x is equal to 10")
else:
print("x is less than 10")
- Ternary Operator (Conditional Expression): A concise way to write if-else statements.
result = "Greater" if x > 10 else "Smaller"
3.4. Python Loops
- For Loop: Used to iterate over a sequence (like a list or range).
for i in range(5):
print(i) # Output: 0 1 2 3 4
- While Loop: Repeats as long as a condition is true.
count = 0
while count < 5:
print(count) # Output: 0 1 2 3 4
count += 1
3.5. Python Functions
Functions are reusable blocks of code that perform a specific task. You can define a function using the def
keyword.
def greet(name):
return "Hello, " + name
result = greet("Alice")
print(result) # Output: Hello, Alice
- Return Statement: Functions can return values using the
return
keyword. - Parameters and Arguments: You can pass data into a function by using parameters.
4. Python Data Structures
4.1. Lists
Lists are ordered and mutable collections of items.
- Creating a List:
fruits = ["apple", "banana", "cherry"]
- List Operations:
fruits.append("orange") # Add item to the end of the list
fruits.remove("banana") # Remove item from the list
fruits[0] = "mango" # Modify an item in the list
4.2. Tuples
Tuples are ordered but immutable collections.
- Creating a Tuple:
coordinates = (10, 20, 30)
4.3. Dictionaries
Dictionaries are unordered collections of key-value pairs.
- Creating a Dictionary:
person = {"name": "Alice", "age": 25}
- Accessing Dictionary Items:
print(person["name"]) # Output: Alice
4.4. Sets
Sets are unordered collections of unique elements.
- Creating a Set:
numbers = {1, 2, 3, 4}
5. Object-Oriented Programming (OOP) in Python
Python supports Object-Oriented Programming (OOP), which involves organizing code into classes and objects.
5.1. Classes and Objects
- Class: A blueprint for creating objects.
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} is barking.")
my_dog = Dog("Buddy", 3)
my_dog.bark() # Output: Buddy is barking.
- Constructor (init): The
__init__
method is a special method called when an object is created.
5.2. Inheritance
Inheritance allows a class to inherit methods and attributes from another class.
class Animal:
def make_sound(self):
print("Animal sound")
class Dog(Animal):
def bark(self):
print("Bark!")
my_dog = Dog()
my_dog.make_sound() # Output: Animal sound
my_dog.bark() # Output: Bark!
5.3. Encapsulation
Encapsulation is the concept of restricting access to certain details of an object, typically using private and public attributes.
class Car:
def __init__(self, model, year):
self.model = model # public
self.__year = year # private
def get_year(self):
return self.__year
my_car = Car("Tesla", 2021)
print(my_car.model) # Output: Tesla
print(my_car.get_year()) # Output: 2021
5.4. Polymorphism
Polymorphism allows methods to behave differently depending on the object that invokes them.
class Cat:
def speak(self):
print("Meow")
class Dog:
def speak(self):
print("Bark")
def animal_sound(animal):
animal.speak()
cat = Cat()
dog = Dog()
animal_sound(cat) # Output: Meow
animal_sound(dog) # Output: Bark
6. Python Libraries and Frameworks
Python has a wide range of libraries and frameworks that help in various domains:
- NumPy and Pandas: For numerical computing and data analysis.
- Matplotlib and Seaborn: For data visualization.
- Django and Flask: Web development frameworks.
- TensorFlow and PyTorch: For machine learning and deep learning.
- Requests: For making HTTP requests.
- BeautifulSoup: For web scraping.
7. File Handling in Python
Python allows you to handle files, such as reading from and writing to text files.
- Reading a File:
with open("file.txt", "r") as file:
content = file.read()
print(content)
- Writing to a File:
with open("file.txt", "w") as file:
file.write("Hello, World!")
- Appending to a File:
with open("file.txt", "a") as file:
file.write("\nPython is awesome!")
8. Error Handling in Python
Python uses try-except blocks for error handling.
try:
x = 5 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")
finally:
print("This will always execute.")
9. Conclusion
Python is a versatile and powerful language used in many areas of development. Its simple syntax, large ecosystem of libraries, and strong community make it a top choice for both beginners and experienced programmers. By mastering Python, you can build applications, analyze data, and develop a variety of software solutions efficiently.