Question: python question My code will not read numbers from a file. It keeps saying my block statement no imput found. I think I am having

python question

My code will not read numbers from a file. It keeps saying my block statement no imput found.

I think I am having trouble with the median and mode because my program worked fine before I added those?

What I am trying to do is read a list of numbers from a file

like numbers.txt

1 10 100 14 15 18 36 83 and then give the max, min , mode, medain ex.....

my code

#File: numstat2.py

# readFile function implementation

def readFile(infile):

arr = []

for line in infile:

num = int(line)

arr.append(num)

return arr

# getSum function implementation

def getSum(arr):

total = 0

for n in arr:

total = total + n

return total

# getMaximum function implementation

def getMaximum(arr):

maximum = arr[0]

for n in arr:

if n > maximum:

maximum = n

return maximum

# getMinimum function implementation

def getMinimum(arr):

minimum = arr[0]

for n in arr:

if n < minimum:

minimum = n

return minimum

# getMedian function implementation

def getMedian(arr):

n = len(arr)

for i in range(n-1):

minPos = i

for j in range(i + 1, n-1):

if arr[j] < arr[minPos]:

minPos = j

if i != minPos:

temp = arr[i]

arr[i] = arr[minPos]

arr[minPos] = temp

if n < 1:

return None

if n % 2 == 1:

return arr[n/2]

else:

return sum(arr[n/2-1:n/2+1])/2.0

# getMode function implementation

def getMode(arr):

_mode = arr[]

numCounts = {}

max_count = 0

for number in arr:

if number not in numCounts:

numCounts[number] = 0

numCounts[number] += 1

if numCounts[number] > max_count:

max_count = numCounts[number]

for number, count in numCounts.items():

if count == max_count:

_mode.append(number)

return _mode

# main function implementation

def main():

choice = "y"

while choice == 'y' or choice == 'Y':

filename = input('Enter the name of the file: ')

try:

infile = open(filename, 'r')

arr = readFile(infile)

total = getSum(arr)

count = len(arr)

if count > 0:

average = total / count

else:

average = 0

maximum = getMaximum(arr)

minimum = getMinimum(arr)

range1 = maximum - minimum

median = getMedian(arr)

mode = getMode(arr)

print(' File name: ',filename)

print('Sum: ',total)

print('Count: ',count)

print('Average: ',average)

print('Maximum: ',maximum)

print('Minimum: ', minimum)

print('Range: ',range1)

print('Median: ',median)

print('Mode: ',mode)

infile.close()

except:

print('The input file is not found!')

choice = input(' Would you like to evaluate another file? (y/n): ')

# call the main function

main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!