Проблем с принтирането на резултатите в задача Odd/Even Position, Python Programming Basics
Здравейте!
Имам въпрос относно задачата Odd/Even Position от домашното за Programming Basics Python. Като цяло я реших, но имам проблем с пронтирането на резултата накрая. Ето кода ми:
n = int(input())
oddSum = 0
oddMin = 1000000000
oddMax = -1000000000
evenSum = 0
evenMin = 1000000000
evenMax = -1000000000
for i in range (1, n + 1):
num = float(input())
if i % 2 == 0:
evenSum = evenSum + num
if num > evenMax:
evenMax = num
if num < evenMin:
evenMin = num
else:
oddSum = oddSum + num
if num > oddMax:
oddMax = num
if num < oddMin:
oddMin = num
print("OddSum=:{}".format(oddSum))
if oddMin != 1000000000:
print("OddMin={}".format(oddMin))
else:
print("OddMin=No")
if oddMax != -1000000000:
print("OddMax={}".format(oddMax))
else:
print("OddMax=No")
print("EvenSum=:{}".format(evenSum))
if evenMin != 1000000000:
print("EvenMin={}".format(evenMin))
else:
print("EvenMin=No")
if evenMax != -1000000000:
print("EvenMax={}".format(evenMax))
else:
print("EvenMax=No")
Проблема е следния: както и да го форматирам накрая, пробвах с round, {}.format и със "%.1f" операторите, решенията ми излизат или всички числа, целите включчително, с една цифра след десетичната запетая (9.0 вместо 9, например) или всички се закръглят. Разбирам защо се получава, защото работя с float, а не int, но проблема е, че в някои от примерните входове се дават дробни числа, та не мога да сменя типа, а Judge не го приема като отговор. Или едната половина решения са ми верни, или другата.
Въпроса ми е: има ли начин да се направи принтирането накрая така, че да принтира целите резултати без .0 след тях, а дробните без да ги закръгля? Без да правя проверки за всяко едно число дали е цяло?
Много мерси, този вариант за форматиране на десетични числа ще трябва да го запомня!