我需要计算用户输入的输入中最小数字的出现次数。这是我到目前为止,它显示最大和最小数字,但我不知道如何使用ELIF计算出现次数,例如最小的数字出现'x'次' 只是Python的初学者,请帮忙
max = 0
min = 0
count_l = 0
count_s = 0
while True:
inp = raw_input ("Enter a number\n: ")
if inp == '0': break
try:
num = float (inp)
except:
print 'Please enter a valid number'
continue
if min == 0 or num < min:
min = num
if max == 0 or num > max:
max = num
def result (max, min):
print ('Largest Number Entered\n:') , max
print ('Smallest Number Entered\n:'), min
print ('Occurence of largest number is: '), count_l
print ('Occurence of smallest number is: '), count_s
result (max, min)
答案 0 :(得分:1)
好吧,你动态地改变最小的数字。这意味着每次更改数字时都应重置计数。最大数量也是如此。
实施例
[1,21]
此外,将来不要使用名为&#34; max&#34;或者&#34; min&#34;因为这些是python内置函数。
答案 1 :(得分:0)
只需使用一些方便的数据结构,例如defaultdict
或Counter
(与float
相比,Decimal
可能是一种更好的数据类型,可用作字典键):
from decimal import Decimal
from collections import defaultdict
d = defaultdict(Decimal)
while True:
inp = raw_input ("Enter a number\n: ")
if inp == '0': break
try:
num = Decimal(inp)
except:
print 'Please enter a valid number'
continue
d(num) += 1
items = sorted(d.items())
min_val, min_occurrences = items[0]
max_val, max_occurrences = items[-1]