# 3 Methods to Check if String Starts With a Number in Python

The string is zero or more characters written inside quotes and, it can be a mixture of integers, letters, symbols.

However, in this tutorial, we will be discussing three methods to check if a string starts with a number.

## Method #1: Check using isdigit()

isdigit() is a method that returns True if all string's characters are integer. Overwise, return False.

### Syntax

``string.isdigit()``

### How to use isdigit() to check if a string starts with a number

To check if a string starts with a number, first, we'll get the first character of the string using the index statement. Then, check if the character is a number using the isdigit() method.

Let's see an axample:

``````
# String
my_string = "100 houses"

# Get the first character
f_character = my_string[0]

# Check if the first character is a number
print(f_character.isdigit())
```
```

Output:

```True
```

As is evident in the output, the first character is a number.

But, if the string is empty, does this method work?

The answer is in the example below:

``````
# String
my_string = ""

# Check if my_string is a number
print(my_string[0].isdigit())
```
```

Output:

```IndexError: string index out of range
```

as you can see, we got the IndexError: string index out of range issue.

We can solve the issue by checking if the string is not empty as the following example:

``````
# String
my_string = ""

# Check my_string
if my_string:
print(my_string[0].isdigit())

else:
print("String is empty")
```
```

Output:

```String is empty or None
```

Or using strings Slicing:

``````
# String
my_string = ""

# isdigit() with Slicing
print(my_string[:0].isdigit())
```
```

Output:

```False
```

The slicing operation does not raise an error if the index is out of range.

### Do something after checking

If you want to do something after checking if the string starts with a number, you need to use the if statement.

``````
my_string = "100 houses"

if my_string[0].isdigit():
# Do something
print('True')
else:
# Do something
print('False')
```
```

Output:

```True
```

### Checking multiple items

Let's say we have a list of items and, we want to check if they start with a number.

In the following example, we'll check a list of items:

``````
my_list = ['cat1', 'dog2', '3tiger', 'bird']

for li in my_list:
# Checking if the element starts with a number
if li[0].isdigit():
print(f"{li}: starts with a number")
else:
print(f"{li}: doesn't starts with a number")

```
```

Output:

```cat1: doesn't starts with a number
dog2: doesn't starts with a number
3tiger: starts with a number
bird: doesn't starts with a number
```

## Method #2: Check using startswith()

The startswith() method returns True if the string starts with the specified value or False if not.

Here, we'll use startswith() to check if a string starts with a specific number.

### Syntax

``````
string.startswith("number")
```
```

### Example

In the following example, we'll check if the string starts with number one.

``````
my_string = "100 houses"

# Check if my_string starts with number 1
print(my_string.startswith('1'))
```
```

Output:

```True
```

Check with multiple numbers:

``````
my_string = "100 houses"

print(my_string.startswith(('1', '2', '3')))
```
```

Output:

```True
```

startswith(('1', '2', '3')) means if the string starts with 1 or 2 or 3.

## Method #3 Check using Regex

You can also use regular expressions for checking if the string starts with a number. But, this method should be your last option.

let's see how we can do that with regex.

``````
import re

# String
my_string = "100 houses"

reg = re.search('^\s*[0-9]',my_string)

# Print result
print(reg)
```
```

Output:

```<re.Match object; span=(0, 1), match='1'>
```

As demonstrated, we've used the search() function to check the string.

The search() function searches the string for a match, and if there is no match, the None value will be returned.

## Conclusion

In conclusion, we've learned three methods to check if a string starts with a number.
isdigit() will be your best method for checking if string strat with a number. And, startswith() for checking if string strat with a specific number.