GICT knowledge base
Master the Basics: Essential Core Python Concepts Every Beginner Should Know
Published
Python is one of the most popular programming languages in the world. It’s easy to read, simple to learn, and very powerful. People use Python for many things—like building websites, analyzing data, creating apps, and even working with artificial intelligence.
Before you jump into advanced topics or big projects, it’s important to understand the basic building blocks of Python. These core concepts are the foundation of everything you’ll do in the language. Once you know them well, writing Python code becomes much easier and more fun.
In this blog, we’ll walk through the most important Python basics every developer should know. Whether you’re just starting out or reviewing what you’ve already learned, this guide will help you build a strong foundation in Python.
1. Python Syntax and Structure
Before writing Python programs, it’s important to understand how the language is written and structured. Python has a clean and simple style, which makes it easy to learn—even for beginners.
1.1 Python is an Interpreted Language
Python is an interpreted language. This means you don’t need to compile your code before running it. Instead, you can write your code and run it line by line. This is great for testing small pieces of code and fixing errors quickly.
You can run Python code in different ways:
- In a file (like
script.py) - Directly in a Python shell or terminal
- Using online editors or code tools like Jupyter Notebook
1.2 Indentation and Code Blocks
One special thing about Python is that it uses indentation (spaces or tabs) to show blocks of code. In many other languages, people use curly braces {}. But in Python, indentation is not optional—it’s required.
Here’s a simple example:
if 5 > 2:
print("Five is greater than two")
Notice how the print() line is indented. That means it belongs to the if block. If you don’t use the correct indentation, Python will show an error.
1.3 Comments and Readability
Comments are lines in your code that Python doesn’t run. They are just notes to help you (or others) understand what the code does.
Use # for single-line comments:
# This is a comment
print("Hello") # This prints Hello
Writing clear and readable code is very important. Try to use spaces, short lines, and comments to make your code easy to understand.
2. Variables and Data Types
Variables are like containers that store information. You can give them any name and use them to save numbers, text, or other data. In Python, you don’t need to say what type of data a variable will hold—Python figures it out for you.
2.1 Dynamic Typing
Python is dynamically typed, which means you don’t need to declare the type of a variable. Just assign a value to it, and Python will understand what type it is.
x = 10 # x is an integer
name = "Amy" # name is a string
price = 9.99 # price is a float (decimal number)
You can also change the type of a variable just by assigning a new value:
x = "Hello" # Now x is a string
This is helpful, but it also means you need to be careful with how you use variables.
2.2 Common Data Types
Here are some basic data types in Python:
int– whole numbers (e.g., 5, 100)float– decimal numbers (e.g., 3.14, 0.5)str– text or string (e.g., “hello”, ‘Python’)bool– true or false values (True or False)
You can check the type of any variable using the type() function:
a = 20
print(type(a)) # Output: <class 'int'>
2.3 Type Conversion
Sometimes you need to change a value from one type to another. This is called type casting.
age = "18"
age = int(age) # Now it's an integer
Use these functions to convert types:
int()– to integerfloat()– to floatstr()– to stringbool()– to boolean
3. Operators in Python
Operators are symbols that help you perform actions like adding numbers, comparing values, or checking conditions. Python has different kinds of operators.
3.1 Arithmetic and Assignment Operators
These are used for math:
a = 10
b = 5
print(a + b) # Addition: 15
print(a - b) # Subtraction: 5
print(a * b) # Multiplication: 50
print(a / b) # Division: 2.0
print(a % b) # Remainder: 0
print(a ** b) # Power: 10^5 = 100000
Assignment operators are used to assign values:
x = 5 # Set x to 5
x += 2 # x = x + 2 → Now x is 7
x *= 3 # x = x * 3 → Now x is 21
3.2 Comparison and Logical Operators
Comparison operators check if values are equal or different:
a = 10
b = 5
print(a > b) # True
print(a == b) # False
print(a != b) # True
Logical operators combine conditions:
and– both must be trueor– at least one must be truenot– reverses the result
Example:
x = 7
print(x > 5 and x < 10) # True print(not(x > 5)) # False
4. Control Flow Statements
Control flow means how your program decides what to do next. Sometimes, you want your code to do different things based on conditions. Other times, you want it to repeat actions. Python gives you tools for both.
4.1 Conditional Statements (if, elif, else)
Conditional statements let your program make decisions. You use if, elif, and else to check conditions and run different blocks of code.
Example:
age = 18
if age >= 18:
print("You can vote.")
elif age == 17:
print("Almost there!")
else:
print("You are too young to vote.")
if checks the first condition
elif (else if) checks another condition if the first one is false
else runs when none of the above conditions are true
4.2 Loops (for and while)
Loops help you repeat actions.
for loop
Used to loop over a list, string, or a range of numbers:
for i in range(5):
print(i) # Prints 0 to 4
while loop
Runs as long as a condition is true:
count = 0
while count < 3:
print("Counting:", count)
count += 1
4.3 Loop Control: break, continue, pass
These keywords help control what happens inside loops:
break– stop the loop completelycontinue– skip to the next loop cyclepass– do nothing (used as a placeholder)
Example:
for i in range(5):
if i == 3:
break
print(i) # Will print 0, 1, 2
5. Functions and Scope
Functions let you organize your code into smaller, reusable pieces. Instead of repeating code again and again, you can write a function once and use it anywhere.
5.1 Defining Functions
You define a function using the def keyword:
def greet():
print("Hello!")
To call the function and run it:
greet()
5.2 Function Arguments (Parameters)
You can pass information into functions using parameters.
def greet(name):
print("Hello,", name)
greet("Alice") # Output: Hello, Alice
You can also use default values:
def greet(name="friend"):
print("Hello,", name)
greet() # Output: Hello, friend
greet("John") # Output: Hello, John
There are special ways to pass many arguments:
*argslets you pass multiple values**kwargslets you pass key-value pairs
Example:
def show_numbers(*numbers):
for n in numbers:
print(n)
show_numbers(1, 2, 3)
5.3 Variable Scope
Scope means where a variable can be used.
Local variables are inside a function
Global variables are outside all functions
Example:
x = 10 # Global
def show():
x = 5 # Local
print(x)
show() # Output: 5
print(x) # Output: 10
You can use the global keyword if you need to change a global variable inside a function:
count = 0
def increase():
global count
count += 1
increase()
print(count) # Output: 1
6. Data Structures
Data structures are ways to store and organize data in Python. Python gives us several built-in data structures that are easy to use. The most common ones are lists, tuples, dictionaries, and sets.
6.1 Lists
A list is a collection of items. You can change the items (it’s mutable), and it can hold different types of data.
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # Output: apple
Lists are ordered (items have positions). You can add, remove, or change items.
Common list methods:
fruits.append("orange")# Add an itemfruits.remove("banana")# Remove an itemfruits.sort()# Sort the list
print(fruits)
6.2 Tuples
A tuple is like a list, but it cannot be changed (it’s immutable).
colors = ("red", "green", "blue")
print(colors[1]) # Output: green
You use tuples when you want your data to stay the same.
6.3 Dictionaries
A dictionary stores data in key-value pairs. Each item has a key (like a name) and a value.
person = {"name": "John", "age": 30}
print(person["name"]) # Output: John
You can:
- Add a new key-value pair
- Change a value
- Remove items
person["age"] = 31
person["city"] = "New York"
del person["name"]
Dictionaries are great when you want to label your data.
6.4 Sets
A set is a collection of unique items (no duplicates). Sets are unordered, so items don’t have positions.
numbers = {1, 2, 3, 2, 1}
print(numbers) # Output: {1, 2, 3}
You can use sets to do things like:
a = {1, 2, 3}
b = {2, 3, 4}
print(a | b) # Union: {1, 2, 3, 4}
print(a & b) # Intersection: {2, 3}
print(a - b) # Difference: {1}
7. Error Handling
Sometimes, things go wrong in your code. Maybe you try to divide by zero or open a file that doesn’t exist. Python will show an error (also called an exception), and if you don’t handle it, your program will stop.
7.1 Common Errors in Python
Here are a few errors you might see:
ZeroDivisionError– trying to divide by 0TypeError– using the wrong type (e.g., adding a number to a string)NameError– using a variable that hasn’t been definedIndexError– trying to access an item that doesn’t exist in a list
7.2 Try-Except Blocks
To stop your program from crashing, you can catch errors using try and except.
try:
x = 10 / 0
except ZeroDivisionError:
print("You can't divide by zero!")
You can also catch any error:
try:
num = int("abc")
except:
print("Something went wrong")
You can use more parts in the try-except block:
else:runs if there is no errorfinally:always runs, even if there is an error
try:
print("No error here!")
except:
print("Error happened")
else:
print("Everything went well")
finally:
print("This always runs")
8. Introduction to Object-Oriented Programming (OOP)
Python supports Object-Oriented Programming, also called OOP. This is a way of writing code that is more organized and reusable by using classes and objects.
8.1 Classes and Objects
A class is like a blueprint for something. An object is created from that blueprint. For example, if you have a class called Car, you can create many different car objects from it.
class Car:
pass
my_car = Car() # This creates an object from the Car class
8.2 Attributes and Methods
Classes can have attributes (variables) and methods (functions).
class Car:
def __init__(self, brand, year):
self.brand = brand
self.year = year
def drive(self):
print(self.brand, "is driving.")
my_car = Car("Toyota", 2020)
print(my_car.brand) # Output: Toyota
my_car.drive() # Output: Toyota is driving.
__init__ is a special method called a constructor. It runs when you create a new object. self refers to the object itself.
8.3 Inheritance (Basic Idea)
Inheritance means one class can use code from another class. It helps you avoid repeating code.
class Animal:
def speak(self):
print("The animal speaks.")
class Dog(Animal):
def bark(self):
print("Woof!")
d = Dog()
d.speak() # Inherited from Animal
d.bark() # From Dog class
9. Working with Modules and Packages
Python lets you organize your code using modules and packages.
9.1 Importing Modules
A module is just a Python file (.py) that has code you can reuse.
You can import it using:
import math
print(math.sqrt(16)) # Output: 4.0
You can also import just part of a module:
from math import sqrt
print(sqrt(25)) # Output: 5.0
Or use a shorter name (alias):
import math as m
print(m.pi)
Python has many built-in modules like:
math– for math functionsrandom– for random numbersdatetime– for working with dates and times
9.2 Creating Your Own Module
You can write your own module by saving functions in a .py file:
# file: mymodule.py
def greet(name):
print("Hello", name)
Then use it in another file:
import mymodule
mymodule.greet("Sam") # Output: Hello Sam
If you put many modules in a folder with a file called __init__.py, it becomes a package.
10. Basic File Handling
Python lets you read from and write to files. This is useful when you want to save data or read data from a file.
10.1 Reading and Writing Files
You use the open() function to work with files.
"r"– read"w"– write (creates a new file or erases the old one)"a"– append (add to the end)"b"– binary mode
Example – Writing to a file:
file = open("test.txt", "w")
file.write("Hello, file!")
file.close()
Example – Reading from a file:
file = open("test.txt", "r")
content = file.read()
print(content)
file.close()
10.2 Using the with Statement
A better way to work with files is using with. It automatically closes the file when you’re done.
with open("test.txt", "r") as file:
content = file.read()
print(content)
This is cleaner and safer than using open() and close() separately.
Conclusion
We’ve gone through the core Python basics—things like variables, data types, functions, loops, and even a bit of object-oriented programming. These are the tools you’ll use all the time when writing Python code. If it feels like a lot, don’t worry—that’s totally normal. The best way to get better is to just keep practicing.
Try building small projects or playing around with code on your own. The more you code, the more it’ll all start to make sense. Keep at it, stay curious, and most importantly—have fun learning Python!
Related guides
How to Deploy a FastAPI App with Gunicorn and Nginx
Deploy FastAPI behind Nginx with Gunicorn and systemd. Separate application packages, check HTTPS and verify worker replacement and application health.
PythonLearn How to Modify Python Dictionary Values Easily
Learn how to modify Python dictionary values effectively with various methods, including direct assignment, update(), and comprehensions, along with common mistakes to...
PythonPython Set Copy Tutorial: Avoid Common Mistakes and Data Errors
Learn how to copy sets in Python safely and efficiently while avoiding common mistakes. Explore methods like copy(), set(), and deepcopy().
PythonDifferent Methods to Loop Through Sets in Python (Beginner-Friendly Guide)
Learn diverse methods to loop through sets in Python, including practical examples and use cases, ideal for beginners looking to master set operations.
