Python for beginners

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.

If after this article you still want to know more or need a paper version, you can find more than explained in this article here

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:

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 pleas share and let us grow!

If after this article you still want to know more or need a paper version, you can find more than explained in this article here

d3

d3 is an experienced Software Engineer/Developer/Architect/Thinker with a demonstrated history of working in the information technology and services industry. Really passionate about technology, programming languages and problem solving. He doesn't like too much the self celebration and prefers to use that time doing something useful ...i.e. coding

You may also like...