## Python find the average of all numbers in a string:

This post will show you how to find the *average* of all *numbers* in an *alphanumeric* string in Python. We will write one program that will take one *string* as input from the user and it will print the *average* of all numbers found in that string.

For example, if the string is *hello123*, it will print :*2.0*. Because, in *hello123*, we have three digits: *1, 2,* and *3*. The sum of these digits is *1 + 2 + 3 = 6*. So, the average is *6/3* i.e. *2*.

### Algorithm to use:

We will use the below *algorithm* to do this:

- Take one string as input from the user and store that in a
*variable*. - Initialize two variables
*sum*and*count*as*0*. These variables are to store the*sum of all digits*and*total count*of digits. - Iterate through the characters of the string
*one by one*. For each character, check if it is a diigit or not. If it is a digit, add it to the*sum*variable. Also, increment the*count*variable by*1*. - Once the
*loop*ends, print the average value, i.e. divide*sum*by*count*.

Thatâ€™s it.

### Python program:

Below is the complete *python program* that uses the above algorithm:

```
def find_avg_sum(str):
sum = 0
count = 0
for ch in str:
if ch.isdigit():
sum += int(ch)
count += 1
return sum/count
given_str = input('Enter a string: ')
print(find_avg_sum(given_str))
```

Here,

- It asks the user to enter a string and stores it in
*given_str*variable once the user enters it. -
This string is passed to the method

*find*. This method is used to find the average of all numbers found in the provided string.*avg*sum*sum*and*count*variables are to store the*sum of all numbers found*in the string and the total*count*of all numbers.- The
*for in*loop is used to iterate through the characters of the string one by one. - It uses
*isdigit()*method to check if a character is digit or not. It it is a digit, it adds its value to*sum*. It also increments the*count*variable by*1*. - Once the loop ends, it returns
*sum/count*, i.e. the average of all numbers found in the string.

- The last line is printing the return value of
*find*, i.e. the average of all numbers in the user input string.*avg*sum

### Sample output:

If you run this program, it will print output as like below:

```
Enter a string: hello123
2.0
Enter a string: hel12l34o9
3.8
```

For *hello123*, the sum of all numbers is *1 + 2 + 3 = 6*. So, average is *6/3 = 2*.
For *hel12l34o9*, the sum of all numbers is *1 + 2 + 3 + 4 + 9 = 19*. So, average is *19/5 = 3.8*

Let me try with a long string:

```
Enter a string: the12quick5brown34fox99run1001over9901the99898lazy98987dog1001
4.827586206896552
```

### Conclusion:

In this post, we learn how to iterate throught the *characters* of a string, how to check if *a character is digit*, and how to *calculate the average* of all numbers in a string in Python.

### You might also like:

- How to create a color choosing dialog in tkinter python
- Python program to remove the last character of a string
- Recursion program to find the power of a number in Python
- Write a python Bank account class with withdraw/deposit features
- Python program to convert centimeter to inches
- How to calculate the average sum of all digits of a number in python