# Mastering Number Manipulation: Getting the First Digit or N Digits in Python

Have you ever needed to get the first digit or the first N digits of a number in Python? Maybe you’re working on a project that requires you to manipulate numbers in this way.

If this is the case, then you’ll be happy to know that these operations are quite straightforward. In this article, we’ll guide you through the steps necessary to get the first digit or first N digits of a number in Python.

We’ve included detailed explanations, code examples, and alternative methods to help you better understand these concepts.

## Getting the first digit of a number in Python

The first step in getting the first digit of a number in Python is to convert the number to a string. This is because we can easily access the first character of a string using its index.

The `str()` class in Python can be used to convert a number to a string. Here’s an example:

``````number = 1234
string_number = str(number)
``````

In this example, we’ve assigned the value 1234 to the variable `number`.

We then convert this number to a string using the `str()` class and assign the resulting string to the variable `string_number`. The next step is to access the first character of the string.

There are several ways to do this, but the most common method is to use string slicing. Since the first digit of a number is always located at the beginning of the string, we can simply slice the string from the first character to the second character.

Here’s an example:

``````first_digit = string_number[0]
``````

In this example, we’re using the index operator to access the first character of the `string_number` variable. The index operator returns the character at the specified position in the string.

In this case, we’re accessing the character at position 0, which is the first character of the string. Finally, we need to convert the first digit back to an integer.

We can do this using the `int()` class in Python. Here’s an example:

``````first_digit = int(first_digit)
``````

In this example, we’re using the `int()` class to convert the `first_digit` variable back to an integer.

This is necessary because the index operator returns a character, not an integer.

### Alternative method using recursion

Another way to get the first digit of a number in Python is to use recursion. Recursion is a powerful programming technique that involves calling a function within itself.

Here’s an example:

``````def get_first_digit(number):
if number < 10:
return number
else:
return get_first_digit(number // 10)
``````

In this example, we’re defining a function called `get_first_digit` that takes a number as an argument. If the number is less than 10, we simply return the number.

Otherwise, we call the `get_first_digit` function recursively with the number divided by 10. The `//` operator performs integer division, which means that it rounds down to the nearest integer.

## Getting the first N digits of a number in Python

Getting the first N digits of a number in Python is similar to getting the first digit. The main difference is that we need to use string slicing to access multiple characters.

The first step is to convert the number to a string, just like we did before. Here’s an example:

``````number = 1234
string_number = str(number)
``````

Next, we need to use string slicing to get the first N characters of the string.

The syntax for string slicing is `[start:stop]`, where `start` is the starting index and `stop` is the stopping index. The start index is inclusive, which means that the character at the start index is included in the slice.

The stop index is exclusive, which means that the character at the stop index is not included in the slice. Here’s an example:

``````first_n_digits = string_number[:3]
``````

In this example, we’re getting the first 3 characters of the `string_number` variable.

We’re using the `[:3]` syntax, which means that we’re getting the characters from index 0 up to, but not including, index 3. Finally, we need to convert the first N digits back to an integer.

We can do this using the `int()` class, just like before. Here’s an example:

``````first_n_digits = int(first_n_digits)
``````

### Alternative method using recursion

Just like with getting the first digit, we can also use recursion to get the first N digits of a number in Python. Here’s an example:

``````def get_first_n_digits(number, n):
if n == 1:
return number % 10
else:
return get_first_n_digits(number // 10, n-1) * 10 + number % 10**(n-1)
``````

In this example, we’re defining a function called `get_first_n_digits` that takes two arguments: `number` and `n`.

The `number` argument is the number we want to get the first N digits of, and the `n` argument is the number of digits we want to get. If `n` is equal to 1, we simply return the last digit of the number using the `%` operator.

Otherwise, we call the `get_first_n_digits` function recursively with `number` divided by 10 and `n` decreased by 1. We then multiply the result of the recursive call by 10 and add the last n-1 digits of the original number using the `%` operator and the exponent operator (`**`).

## Conclusion

In this article, we’ve shown you how to get the first digit or first N digits of a number in Python. We’ve explained each step in detail, provided code examples, and included alternative methods using recursion.

By following these steps, you should be able to manipulate numbers in Python with confidence.

## Getting only the first number in a string in Python

Sometimes you may have a string that contains multiple numbers, but you only want to extract the first one. Fortunately, this is easy to do using Python’s `re` module.

The `re` module allows you to work with regular expressions, which are a powerful tool for working with strings. The first step is to import the `re` module:

``````import re
``````

Next, you can use the `re.search` function to search for a pattern in the string. In this case, we want to find the first occurrence of a number.

We can use the `d` character to represent any digit. Here’s an example:

``````string = "abc123def456"
match = re.search('d', string)
``````

In this example, we’ve defined a string variable called `string`.

We’ve then used the `re.search` function to search for the first occurrence of a number in the string. The regular expression `'d'` matches any digit.

The result is stored in a `match` variable. Now that we have a match, we can use the `start` method to get the index of the first character of the match.

Here’s an example:

``````index = match.start()
``````

In this example, we’re using the `start` method of the `match` object to get the index of the first character of the match. This can be used to extract the first number from the string.

### Finding the index of the first digit in a string in Python

In some cases, you may want to find the index of the first digit in a string, rather than extracting the digit itself. This can be useful if you want to manipulate the string in some way, such as removing all non-digit characters after the first digit.

One way to do this is to use a for loop and the `enumerate` function to loop through each character in the string and check if it is a digit. The `enumerate` function allows you to iterate over a sequence while keeping track of the index of each item.

Here’s an example:

``````string = "abc123def456"
for index, character in enumerate(string):
if character.isdigit():
digit_index = index
break
``````

In this example, we’re using a for loop to iterate over each character in the string. For each character, we’re using the `isdigit` method to check if it is a digit.

If we find a digit, we store the index in a variable called `digit_index` and exit the loop using the `break` statement. The for loop iterates over a tuple of (index, character) pairs, where index is the index of the current character and character is the current character itself.

The `enumerate` function makes this possible. Once we have the index of the first digit, we can use it to extract the digit itself or manipulate the string in some other way.

In this article, we’ve covered several ways to extract the first digit or first N digits of a number in Python, as well as how to extract the first number or index of the first digit in a string. By converting numbers to strings and using string slicing, regular expressions, or recursion, these tasks can be easily accomplished.

By using for loops, the `enumerate` function, and the `isdigit` method, we can also extract the first number or index of the first digit in a string. These techniques are important for anyone who works with numbers or strings in Python, and can be used in a variety of applications.

Overall, knowing how to extract these values is a valuable tool that can simplify your coding and make it more efficient.