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.
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.
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))
- 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 findavgsum. This method is used to find the average of all numbers found in the provided string.
- 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 findavgsum, i.e. the average of all numbers in the user input string.
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
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.
- 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