
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 = 30Data 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) # TrueControl 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 sequenceIn 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.
breakis 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.
continueis 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 += 1In 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 + bIn 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: 15Default 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 42In 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:
