Finding minimum and maximum in python

I have to ask the user to put some numbers, and then print the size, amount, average, minimum and maximum. I can get the first 3 things, but I'm stuck at the minimum and maximum. I have a problem: I cannot use sort() because I need to make the list integer, but you cannot use the integer list for split()

Here is my code:

  number = raw_input('Enter number:') list_of_numbers = number.split() tally = 0 sum = 0 while number!= '': tally = tally + 1 sum = sum + int(number) average = float(sum) / float(tally) number = raw_input('Enter number:') print "Size:", tally print "Sum:", sum print "Average:", average 

Any clues? Thanks

+6
source share
6 answers

Are Python built-in functions allowed? If yes, this is easier:

 number = raw_input('Enter number:') list_of_numbers = number.split() numbersInt = map(int, list_of_numbers) # convert string list to integer list print "Size:", len(numbersInt) print "Min:", min(numbersInt) print "Max:", max(numbersInt) print "Sum:", sum(numbersInt) print "Average:", float(sum(numbersInt))/len(numbersInt) if len(numbersInt) > 0 else float('nan') 

where numbersInt = map(int, list_of_numbers) converts each line number of the list to an integer. Each function has the following meanings:

  • len calculates the length of the list
  • min calculates the minimum
  • max calculates the maximum
  • sum calculates the sum of the list

There is no middle function in the Python standard library. But you can use numpy.mean() instead.

+16
source

I think you can use min () and max () to find these values.

+3
source

You have two options:

  • You can compare the current number with previous extrema and accordingly update your minimum and maximum;

     import sys tally = 0 sum = 0 nmax = -sys.maxint nmin = +sys.maxint number = raw_input('Enter number:') while number!= '': number = int(number) if number > nmax: nmax = number elif number < nmin: nmin = number tally = tally + 1 sum += number average = float(sum) / float(tally) number = raw_input('Enter number:') 

    We use the largest integer in your system ( sys.maxint ) to initialize our nmin and nmax

  • You can save each number in a list, and then perform all operations at once:

     number = raw_input('Enter number:') numbers = [] while number!= '': numbers.append(int(number)) number = raw_input('Enter number:') numbers.sort() nmin = numbers[0] nmax = numbers[-1] tally = len(numbers) nsum = sum(numbers) avg = nsum/float(tally) 
+1
source

It can be with the least difficulty, if I'm not mistaken.

 len_min_max_sum=reduce(lambda x,y : (x[0]+1,y,x[2],x[3]+y) if x[0]>y else (x[0]+1,x[1],y,x[3]+y) if x[2]<y else (x[0]+1,x[1],x[2],x[3]+y) ,arr,(0,arr[0],arr[0],0)) len_min_max_sum_avg=(len_min_max_sum[0],len_min_max_sum[1],len_min_max_sum[2],len_min_max_sum[3],float(len_min_max_sum[3])/len_min_max_sum[0]) 
+1
source
 tally = 0 sum = 0 while True: number = input('Enter number') list_of_numbers = number.split() if number == '': continue else: tally = tally + 1 sum = sum + int(number) average = float(sum)/float(tally) print('Size:', tally) print('Sum:', sum) print('Average:', average) 
+1
source

The predefined math methods max() and min() in python can solve this problem as below

 numbers = [3,2,5,9,5,3] minimum = min(numbers) maximum = max(numbers) 

result of the above

 >>>maximum 9 >>>minimum 2 

Hope this helps.

0
source

Source: https://habr.com/ru/post/924691/


All Articles