I want to extend my program to determine median and mode. But I\'m not quit sure
ID: 674383 • Letter: I
Question
I want to extend my program to determine median and mode. But I'm not quit sure how..help! my output should look like this File name: Sum: Count: Average: Maximum: Minimum: Range: Median: Mode:
here is my prgram..
# numstat.py
# Read integer numbers from a file and determine the
# sum, count, average, maximum, minimum, and range.
# Each number is an a separate line in the file.
# This solution uses lists.
# Loop the program
while (True):
# Initialize variables
number_sum = 0
number_count = 0
number_average = 0
number_maximum = 0
number_minimum = 0
number_range = 0
try:
# Ask the user for a file of random numbers
number_file_name = input("Enter the name of the file you would like to process: ")
# Open the file
number_file = open(number_file_name, "r")
# Read the file's contents as a list of strings
unconverted_numbers = number_file.readlines()
# Create an empty list to store the converted numbers
converted_numbers = []
# Convert the strings to integers and store them in converted_numbers list
for number in unconverted_numbers:
converted_numbers.append(int(number))
# Determine the sum
number_sum = sum(converted_numbers)
# Determine the count
number_count = len(converted_numbers)
# Determine the max
number_maximum = max(converted_numbers)
# Determine the minimum
number_minimum = min(converted_numbers)
# Calculate the average
number_average = number_sum / number_count
# Calculate the range
number_range = number_maximum - number_minimum
# Close the file
number_file.close()
# If there's a problem reading the file, print an error
except Exception as err:
print ('An error occurred reading', number_file_name)
print ('The error is', err)
# If the file was read successfully...
else:
# Print the calculated statistics
print("File name:", number_file_name)
print("Sum:", number_sum)
print("Count:", number_count)
print("Average:", number_average)
print("Maximum:", number_maximum)
print("Minimum:", number_minimum)
print("Range:", number_range)
# Ask to try again
calculate_again = input("Would you like to evaluate another file? (y/n) ")
if (calculate_again != "y"):
break
Explanation / Answer
number_filename = 'numbers.txt'
number_sum = 0
number_count = 0
number_aver = 0
number_largest = 0
number_smallest = 0
number_range = 0
do_calculation = True
while(do_calculation):
while (True):
try:
number_filename = input('Enter a filename. Be sure to include .txt after the file name: ')
ran_number_count = 0
print('')
ran_number_file = open(number_filename, "r")
print ('File Name: ', number_filename, ':', sep='')
print('')
numbers = ran_number_file.readlines()
ran_number_file.close
except:
print('An error occured trying to read', ran_number_file)
else:
break
try:
number_file = open(number_filename, "r")
is_first_number = True
for number in number_file:
number = int(number)
if (is_first_number):
number_largest = number
number_smallest = number
is_first_number = False
number_sum += number
number_count += 1
if (number > number_largest):
number_largest = number
if (number < number_smallest):
number_minimum = number
number_aver = number_sum / number_count
number_range = number_largest - number_smallest
index = 0
listnumbers = 0
while index < len(numbers):
numbers[index] = int(numbers[index])
index += 1
number_file.close()
except Exception as err:
print ('An error occurred reading', number_filename)
print ('The error is', err)
else:
print ('Sum: ', number_sum)
print ('Count:', number_count)
print ('Average:', number_aver)
print ('Maximum:', number_largest)
print ('Minimum:', number_smallest)
print ('Range:', number_range)
print ('Median:', median)
another_calculation = input("Do you want to enter in another file name? (y/n): ")
if(another_calculation !="y"):
do_calculation = False
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.