繁体   English   中英

使用循环在python中查找最大值和最小值

[英]Finding the Maximum and Minimum value in python using loops

我有一个分配,让用户输入尽可能多的分数,然后我必须计算最小和最大值,以及有多少人使用for循环获得这些分数。 我已经计算出平均值和标准偏差:

elif user_option == 3:

    total = 0
    for val in scores_list:
        total = total + val
    average = total/ len(scores_list)
    print (average)
elif user_option == 2:
    total = 0
    for val in scores_list:
        total = total + val
    average = total/ len(scores_list)
    diffsquared = 0
    sum_diffsquared = 0
    for val in scores_list:
        diffsquared= (val - average)**2
        sum_diffsquared= diffsquared + sum_diffsquared
    stdev= sqrt((sum_diffsquared)/len(scores_list))
    print(stdev)

任何想法如何找到最小值和最大值?

像这样吗

min_val = float("inf")
max_val = -float("inf")
count_min = 0
count_max = 0

for val in scores_list:
    if val < min_val:
        min_val = val
        count_min = 1
    elif val == min_val:
        count_min += 1

    if val > max_val:
        max_val = val
        count_max = 1
    elif val == max_val:
        count_max += 1

print "Minimum score:", min_val
print "Maximum score:", max_val
print "Number of students with minimum score:", count_min
print "Number of students with maximum score:", count_max

编辑:正如@ GL770在注释中指出的那样,sys.maxint仅在Python 2.x中可用。 在Python 2.x中,您可以完成以下操作:

import sys
min_val = sys.maxint
max_val = -sys.maxint - 1

尽管float("inf")东西也可以在Python 2.x中使用,所以不需要此方法。

内置函数min()和max()怎么样:

scores_min = min(scores_list)
scores_max = max(scores_list)

也不要忘记numpy:

import numpy
scores_array = numpy.array(scores_list)
scores_mean = numpy.mean(scores_array)
scores_std = numpy.std(scores_array)
scores_min = numpy.min(scores_array)
scores_max = numpy.max(scores_array)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM