Hi All, in this article we are explaining what is Python for beginners by going through a high level overview of the Python language and show all the major functionalities. Let’s start with the basics: What is Python?
Python is a high-level, interpreted programming language that is known for its simplicity, readability, and versatility. Whether you’re new to programming or have some experience with other languages, Python is a great choice to start learning. In this guide, we’ll cover the basics of Python and provide resources for you to continue your learning journey.
Getting Started with Python
Installing Python
The first step to getting started with Python is to install it on your computer. Python is available for download from the official website (https://www.python.org/downloads/). Choose the version that is appropriate for your operating system and install it.
Choosing an Editor
Once you have Python installed, you’ll need an editor to write and save your Python code. You can use any text editor, such as Notepad or TextEdit, to write Python code, but using an integrated development environment (IDE) can make coding easier. There are many Python IDEs available, but some popular ones include:
- PyCharm: PyCharm is a powerful IDE that offers code completion, debugging, and support for many Python frameworks. (https://www.jetbrains.com/pycharm/download/)
- Spyder: Spyder is an IDE designed specifically for scientific computing with Python. (https://www.spyder-ide.org/#section-download)
- IDLE: IDLE is a basic IDE that comes bundled with Python.
- VisualStudio Code: very extensible IDE that has a lot of packages that can be added for supporting python (https://code.visualstudio.com/Download)
Choose an IDE that you feel comfortable with, and that suits your needs, the article below is showing snippets of code that are independent from the IDE you chose.
Writing Your First Python Program
Now that you have Python installed and an editor selected, it’s time to write your first Python program. Open your editor or IDE and create a new file. Type the following code into the file:
print("Hello, World!")
Save the file with a .py extension (e.g., helloworld.py) and run it using the Python interpreter. You can run the program by typing python helloworld.py
in the terminal or by running it within your IDE.
You should see the message “Hello, World!” printed to the console.
Congratulations, you’ve written your first Python program!
Basic Syntax
Python has a simple syntax that is easy to learn. Here are some basic syntax concepts that you’ll need to know to get started with Python:
Variables
Variables are used to store data in Python. You can assign a value to a variable using the =
operator. For example:
name = "John"
age = 30
Data Types
Python has several data types, including strings, integers, floats, and booleans. You can use the type()
function to check the data type of a variable. For example:
name = "John"
age = 30
pi = 3.14
is_student = True
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(pi)) # <class 'float'>
print(type(is_student)) # <class 'bool'>
Operators
Python has several operators, including arithmetic, comparison, and logical operators. Here are some examples:
# Arithmetic operators
x = 10
y = 3
print(x + y) # 13
print(x - y) # 7
print(x * y) # 30
print(x / y) # 3.3333333333333335
print(x // y) # 3 (integer division)
print(x % y) # 1 (modulo)
# Comparison operators
x = 10
y = 3
print(x > y) # True
print(x < y) # False
print(x == y) # False
print(x != y) # True
Control Structures
Control structures are used to control the flow of your program. They allow you to execute different blocks of code depending on certain conditions. Python has several control structures, including if statements, loops, and functions.
If Statements
If statements are used to execute code if a certain condition is true. Here’s an example:
age = 25
if age >= 18:
print("You can vote!")
else:
print("Sorry, you're too young to vote.")
In this example, the program checks if the age
variable is greater than or equal to 18. If it is, the program prints “You can vote!” to the console. If not, it prints “Sorry, you’re too young to vote.”.
Loops
Loops are used to execute the same block of code multiple times. Python has two types of loops: for
loops and while
loops.
For Loops
A for
loop is used to iterate over a sequence (e.g., a list, tuple, or string) and perform some operation on each item in the sequence. The basic syntax of a for
loop is as follows:
for variable in sequence:
# code to execute for each item in the sequence
In this syntax, variable
is a variable name that you choose to represent each item in the sequence, and sequence
is the sequence of items that you want to iterate over.
Here’s an example of a simple for
loop that prints each item in a list:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
In this example, the fruits
list is iterated over using a for
loop. On each iteration of the loop, the fruit
variable is assigned to the next item in the list, and the print
statement prints the value of fruit
to the console.
Range Function
The range
function is a built-in Python function that generates a sequence of numbers. It’s commonly used in for
loops to specify how many times the loop should iterate. The basic syntax of the range
function is as follows:
range(start, stop, step)
In this syntax, start
is the starting value of the sequence (default is 0), stop
is the ending value of the sequence (not included), and step
is the increment between each value in the sequence (default is 1).
Here’s an example of a for
loop that uses the range
function to print the numbers 0-4:
for i in range(5):
print(i)
In this example, the range(5)
function generates a sequence of numbers from 0 to 4 (inclusive), and the for
loop iterates over each number in the sequence and prints it to the console.
Loop Control Statements
Python for
loops also support two loop control statements: break
and continue
.
break
is used to exit the loop prematurely when a certain condition is met. Here’s an example:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
break
print(fruit)
In this example, the for
loop iterates over each fruit in the fruits
list. When the fruit
variable is assigned the value "banana"
, the break
statement is executed, and the loop is exited prematurely.
continue
is used to skip the current iteration of the loop and continue with the next iteration. Here’s an example:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
if fruit == "banana":
continue
print(fruit)
In this example, the for
loop iterates over each fruit in the fruits
list. When the fruit
variable is assigned the value "banana"
, the continue
statement is executed, and the loop skips to the next iteration without executing the print
statement.
While Loops
While loops are used to execute a block of code as long as a certain condition is true. Here’s an example:
i = 0
while i < 5:
print(i)
i += 1
In this example, the program executes the block of code inside the loop as long as i
is less than 5. The i += 1
line increments the value of i
by 1 on each iteration.
Functions
Functions are a way to group a set of related statements and give them a name. This makes your code more organized, easier to read, and more reusable. Python functions are defined using the def
keyword, followed by the function name and parentheses. Inside the parentheses, you can specify any parameters that the function should take.
Here’s an example of a simple function:
def say_hello():
print("Hello, world!")
In this example, the say_hello
function takes no parameters and simply prints “Hello, world!” to the console when called.
Parameters
Functions can take zero or more parameters, which are used to pass values into the function. Here’s an example of a function that takes a parameter:
def greet(name):
print(f"Hello, {name}!")
In this example, the greet
function takes a name
parameter and prints “Hello, {name}!” to the console, where {name}
is replaced with the value of the name
parameter.
Return Values
Functions can also return a value using the return
keyword. Here’s an example of a function that returns a value:
def add_numbers(a, b):
return a + b
In this example, the add_numbers
function takes two parameters (a
and b
) and returns their sum using the return
keyword. You can then use the return value of the function in your code, like this:
result = add_numbers(5, 10)
print(result) # Output: 15
Default Parameters
You can also specify default values for parameters in a function. This allows you to call the function with fewer arguments if you don’t need to specify all the values. Here’s an example:
def greet(name="world"):
print(f"Hello, {name}!")
In this example, the greet
function takes a name
parameter with a default value of "world"
. If you call the function without passing any arguments, it will use the default value:
greet() # Output: Hello, world!
Variable-Length Arguments
Functions can also take a variable number of arguments using the *args
syntax. This allows you to pass any number of arguments to the function without specifying them individually. Here’s an example:
def print_args(*args):
for arg in args:
print(arg)
print_args("Hello", "world", 42) # Output: Hello world 42
In this example, the print_args
function takes a variable number of arguments using the *args
syntax. The function then iterates over each argument using a for
loop and prints it to the console.
Keyword Arguments
Functions can also take keyword arguments, which allow you to pass arguments using their parameter names. Here’s an example:
def greet(name, message="Hello"):
print(f"{message}, {name}!")
greet("John") # Output: Hello, John!
greet("Jane", message="Hi") # Output: Hi, Jane!
In this example, the greet
function takes two parameters (name
and message
) and uses a default value of "Hello"
for the message
parameter. You can call the function with just the name
parameter, or you can specify a different message using a keyword argument.
Python Classes
Python is an object-oriented programming language, which means that it allows you to define and use classes. A class is a blueprint for creating objects, which are instances of the class. Objects have properties (called attributes) and methods (functions that are part of the object).
Defining a Class
To define a class in Python, use the class
keyword followed by the name of the class. The body of the class should contain methods and attributes.
Here’s an example of a simple Python class:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
In this example, we define a class Dog
with two attributes (name
and breed
) and one method (bark
). The __init__
method is a special method that is called when a new instance of the class is created. The self
parameter refers to the instance of the class being created, and is used to set the instance’s attributes.
Creating Objects
To create a new instance of a class (an object), simply call the class as if it were a function. You can pass arguments to the class’s __init__
method to set the object’s attributes.
Here’s an example of creating a Dog
object:
my_dog = Dog("Fido", "Labrador")
In this example, we create a Dog
object with the name “Fido” and breed “Labrador”, and assign it to the variable my_dog
.
Accessing Attributes
To access an object’s attributes, use dot notation (object.attribute
).
Here’s an example of accessing a Dog
object’s attributes:
print(my_dog.name)
print(my_dog.breed)
In this example, we access the name
and breed
attributes of my_dog
.
Calling Methods
To call an object’s methods, use dot notation (object.method()
).
Here’s an example of calling a Dog
object’s bark
method:
my_dog.bark()
In this example, we call the bark
method of my_dog
.
Inheritance
Python also supports inheritance, where one class can inherit attributes and methods from another class. To create a subclass (a class that inherits from another class), define the subclass as you would a normal class, but include the parent class in parentheses after the class name.
Here’s an example of a Poodle
class that inherits from the Dog
class:
class Poodle(Dog):
def dance(self):
print("I'm dancing!")
In this example, we define a Poodle
class that inherits from the Dog
class. The dance
method is a new method that is only defined in the Poodle
class.
Overriding Methods
Subclasses can also override methods of the parent class by defining a new method with the same name. The new method will replace the parent class’s method when called on an instance of the subclass.
Here’s an example of a Poodle
class that overrides the bark
method of the Dog
class:
class Poodle(Dog):
def bark(self):
print("Yap!")
In this example, we define a Poodle
class that overrides the bark
method of the Dog
class. When called on a Poodle
object, the bark
method
Class Attributes
In addition to instance attributes, classes can also have class attributes, which are shared by all instances of the class. Class attributes are defined outside of any methods in the class body.
Here’s an example of a Dog
class with a class attribute:
class Dog:
species = "Canis lupus familiaris"
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
In this example, we define a class attribute species
that is shared by all instances of the Dog
class.
Static Methods
Static methods are methods that don’t operate on instance or class attributes and don’t need to access self
or cls
. They are defined using the @staticmethod
decorator.
Here’s an example of a Dog
class with a static method:
class Dog:
species = "Canis lupus familiaris"
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
@staticmethod
def info():
print("Dogs are loyal companions.")
In this example, we define a static method info
that doesn’t operate on instance or class attributes.
Class Methods
Class methods are methods that operate on class attributes and use the cls
parameter instead of the self
parameter. They are defined using the @classmethod
decorator.
Here’s an example of a Dog
class with a class method:
class Dog:
species = "Canis lupus familiaris"
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
@staticmethod
def info():
print("Dogs are loyal companions.")
@classmethod
def from_string(cls, string):
name, breed = string.split(",")
return cls(name, breed)
In this example, we define a class method from_string
that operates on the Dog
class’s attributes and uses the cls
parameter to create a new instance of the class.
Magic Methods
Magic methods are special methods in Python that begin and end with double underscores (__
). They allow you to define how instances of a class behave in certain situations, such as when they are compared with other instances or when they are printed.
Here’s an example of a Dog
class with magic methods:
class Dog:
species = "Canis lupus familiaris"
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print("Woof!")
def __str__(self):
return f"{self.name} ({self.breed})"
def __eq__(self, other):
return self.name == other.name and self.breed == other.breed
In this example, we define the __str__
method to control how instances of the Dog
class are printed, and the __eq__
method to control how instances of the Dog
class are compared to each other.
Conclusion
That’s it! Of course, there’s way much more to learn about Python beyond this article but I hope that this course will give you a good solid understanding of the basics concepts. If you liked this article please share and let us grow!
Share this content: