Я только начал изучать Python (мой первый барабан в кодировании), и это моя первая публикация ... Я надеюсь, что я не злоупотребляю форумом, задав этот вопрос (я, по сути, прошу эксперта помочь меня учит). Пожалуйста, дайте мне знать, если это недооценивается в сообществе.Как я могу улучшить этот код Python, чтобы быть более эффективным?
Для этого задания с открытого курса в Мичигане мне было поручено попросить пользователя ввести его до тех пор, пока пользователь не вступит в «сделанный», и в этот момент код должен рассчитать наибольшую, наименьшую сумму и среднюю. Во всех моих тестах все работает нормально. Но я чувствую, что есть, вероятно, гораздо более простой способ написать этот код. Может ли кто-нибудь предложить предложения для улучшения?
largest = None
smallest = None
count = 0
sum = 0
while True:
try:
num = raw_input("Enter a number: ")
if num == "done" : break
num = float(num)
count = count + 1
sum = sum + num
avg = sum/count
if largest is None:
largest = num
if smallest is None:
smallest = num
if num < smallest:
smallest = num
elif num > largest:
largest = num
continue
except: print 'Invalid input'
print "Maximum is", int(largest)
print "Minimum is", int(smallest)
print "Count:", int(count)
print "Sum:", int(sum)
print "Average:", avg
Почему вы используете 'float' и позже конвертируете обратно в' int'? –
Я хотел усреднить, чтобы плавать, но все остальное - int. Если бы я не указывал int или float, то в предложении try было бы работать нечисловое значение. Но если я начал с int, я не смог получить float (средний). Имеет ли это смысл? Есть ли лучший способ сделать это? –