How to build an Email Slicer using Python
Tags: python, tutorial, beginners, programming
Published: 2021-02-07 07:02:19

Hello everyone, today we will build an **Email Slicer**.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vlbu1wzozvisxd7j8hrx.png)

## What is an Email Slicer?

Email Slicer is nothing but just a tool which will take an email id as an input and will perform slicing operations on it to return the username and the domain of the email id.

**For example:**

**Input:** 

```bash
rishabh.singh@gmail.com
```

**Output:**

```bash
Your username is rishabh.singh & domain is gmail.com
```

Here we got **`rishabh.singh`** as username and **`gmail.com`** as a domain.

This project is super simple and quick and it doesn't require any setup so let's quickly jump to coding and build this.

## Let's Code

So this first we are going to do is to ask the user to enter the email to be sliced.

```python
email = input("Enter Your Email: ").strip()
```

Here, as usual, we are making use of **`input()`** function to get the input from the user in the form of string. We will store this input in the **`email`** variable.

Also notice that we are making use of a **`strip()`** function. **`strip()`** function will remove any additional & unwanted spacing on both sides of strings. So that we can make sure that we have only the email in the input and not any unwanted spaces.

Let's move to the next step now.

```python
username = email[:email.index('@')]
domain = email[email.index('@') + 1:]
```

Here we are slicing the user input to obtain the username and domain and ignore the rest.

Let's see how it works. 

In case of **`username`** variable we only want to keep the part of the string which comes before **`@`** and ignore the rest.

Here we are making use of slicing operator **`:`** and **`index()`** function. **`index()`** function searches for the particular element or character within the string and lists it is associated with and return its index number.

Let's consider the input is **`rishabh.singh@gmail.com`**, so when we write **`email[:email.index('@')]`**i, our index() function will interpret it as **`email[:13]`** as our **`@`** is located at index **13**. Now **`email[:13]`** knows that **`@`** is located at index **13**, so now it will keep the part before index **13** and discard the rest.

This exact same process is followed for **`domain`** also.

And now finally, let's print our output.

```python
print(f"Your username is {username} & domain is {domain}")
```

We are making use of **`f-string`**, a new addition to Python 3 which allows us to directly place our variables in the output string. Feel free to make use of **`format()`** or old school **`+`** or **`,`** operators if you don't want to use **`f-string`**.

## Source Code

You can find the complete source code of this project here -

[mindninjaX/Python-Projects-for-Beginners](https://github.com/mindninjaX/Python-Projects-for-Beginners/tree/master/Email%20Slicer)

## Support

Thank you so much for reading! I hope you found this beginner project useful. 

If you like my work please consider [Buying me a Coffee](https://buymeacoff.ee/mindninjaX) so that I can bring more projects, more articles for you.

![https://dev-to-uploads.s3.amazonaws.com/i/5irx7eny4412etlwnc64.png](https://dev-to-uploads.s3.amazonaws.com/i/5irx7eny4412etlwnc64.png)

Also if you have any questions or doubts feel free to contact me on [Twitter](https://twitter.com/mindninjaX), [LinkedIn](https://www.linkedin.com/in/mindninjax/) & [GitHub](https://github.com/mindninjaX). Or you can also post a comment/discussion & I will try my best to help you :D