【问题标题】:How to find min and max without using a function in Python? [closed]如何在不使用 Python 函数的情况下找到最小值和最大值? [关闭]
【发布时间】:2019-02-28 14:38:13
【问题描述】:

目标是向用户询问数字并返回 sum、avg、min、max。不使用函数如何获得最小值和最大值?

from cs50 import get_int

n= -1 
sum = 0
while n <= 1:
    n=get_int('Type an integer>1: ')
    print('read',n)

num_of_ints_to_be_read = n

while n >= 1:
    number = get_int('type an integer: ')
    sum += number
    n -= 1

print()
print()
print('The sum is ', sum)
print('The average is ', sum / num_of_ints_to_be_read)
print('The min is ', )
print('The max is ', )

#print()
#print()

#input('type anything to finish')

#Cant use functions for min and max

【问题讨论】:

标签: python python-3.x


【解决方案1】:

在您读入最小值和最大值时使用单独的变量来跟踪它们,并且仅在找到新的最小值或最大值时才更新它们。请注意,我添加了一个新的导入 math 以帮助确定最小值。

from cs50 import get_int
import math

n= -1 
sum = 0
min = math.inf #Set the initial min to infinity
max = 0
while n <= 1:
    n=get_int('Type an integer>1: ')
    print('read',n)

num_of_ints_to_be_read = n

while n >= 1:
    number = get_int('type an integer: ')
    if number > max:
        max = number
    if number < min:
        min = number
    sum += number
    n -= 1

print()
print()
print('The sum is ', sum)
print('The average is ', sum / num_of_ints_to_be_read)
print('The min is ', min)
print('The max is ', max)

【讨论】:

    【解决方案2】:

    要在 python 中复制最大功能,您可以使用float('inf')

    if 5 < float('inf'):
        print('ok')
    

    同样适用于最小值:

    if 5 > float('-inf'):
        print('ok')
    

    如果你想为一个数字列表做最大值,你将使用for 循环来做到这一点:

    def my_max(arr):  
        if not isinstance(arr, list) and not isinstance(arr, tuple): #type checking
            print (f'{arr} is not a list or tuple')
            return arr
        max_num = arr[0]
        for i in arr:
            if not isinstance(i, float) and not isinstance(i, int): #type checking
                print (f'{i} is not a number')
                return arr
            if i < float('inf') and i > max_num:
                max_num = i
        return max_num
    
    print (my_max([1,5,6,7,2,3]))
    # 7
    print (my_max([1,5,'t',7,2,3]))
    # t is not a number
    print (my_max(4))
    # 4 is not a list or tuple
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2014-02-14
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多