Loading...
vena1 avatar vena1 2 Точки

03. Odd / Even Position

Здравейте,
Решавам задачата по различни начини, но само този ми дава максимум 70/100.
Дали някой може да помогне?
Благодаря!
 
import sys
count_num = int(input())
odd_sum = 0
odd_min = sys.maxsize
odd_max = -sys.maxsize
even_sum = 0
even_min = sys.maxsize
even_max = -sys.maxsize
for num_pos in range(1, count_num+1):
    current_number = float(input())
    if num_pos % 2 != 0:
        odd_sum += current_number
        if current_number < odd_min:
            odd_min = current_number
        if current_number > odd_max:
            odd_max = current_number
        else:
            odd_min = odd_min
            odd_max = odd_max
    if num_pos % 2 == 0:
        even_sum += current_number
        if current_number < even_min:
            even_min = current_number
        if current_number > even_max:
            even_max = current_number
        else:
            even_min = even_min
            even_max = even_max

print(f"OddSum={odd_sum:.2f},")
print(f"OddMin={odd_min:.2f},")
print(f"OddMax={odd_max:.2f},")

print(f"EvenSum={even_sum:.2f},")
print(f"EvenMin={even_min:.2f},")
print(f"EvenMax={even_max:.2f}")
Тагове:
0
mark79 avatar mark79 639 Точки

Здравей,

може да поглеждаш нулевите тестове, те ще ти помогнат какво евентуално пропускаш. В случая е достатъчно да разиграеш варианта когато няма да ти подадат нито едно число.

Трябва да промениш изхода по някакъв начин. Ето пример:

print(f"OddSum={odd_sum:.2f},")
if odd_min != sys.maxsize:
    print(f"OddMin={odd_min:.2f},")
else:
    print(f"OddMin=No,")
if odd_max != -sys.maxsize:
    print(f"OddMax={odd_max:.2f},")
else:
    print("OddMax=No,")

print(f"EvenSum={even_sum:.2f},")
if even_min != sys.maxsize:
    print(f"EvenMin={even_min:.2f},")
else:
    print(f"EvenMin=No,")
if even_max != -sys.maxsize:
    print(f"EvenMax={even_max:.2f}")
else:
    print("EvenMax=No")

Поздрави :)

PS -> Може да помислиш дали тези редове въобще имат някаква стойност и дали са необходими!?

            odd_min = odd_min
            odd_max = odd_max

            even_min = even_min
            even_max = even_max

 

0
08/03/2020 12:50:10
vena1 avatar vena1 2 Точки

Да, тези редове въобще не ми вършат работа. Проблема ми е, че не се принтира No, когато няма максимална и минимална стойност. Винаги ми излизат първоначално зададените стойности за макс и мин и заедно с тях и принта на No. Така не се бях сетила за такава логика, така, че благодаря за помощта!

0
ValentinBarutchiev avatar ValentinBarutchiev 0 Точки

Здравейте. Аз също се мъча с odd/evenposition.

Честно казано въобще незагрявам как да си форматирам принта.

Варианта на Mark79  е много ясен за мен с изключение на едно нещо а именно:

защо при следната проверка се принтира резулат а не No ?

Защо се бъркам. Според мен би следвало е да е обратното!

if  odd_min != sys.maxsize:

според мен тук printa e No - което очевидно е невярното, а не

print(f'Odd_min = {odd_min:.2f}')

 

 

0
grishko0o avatar grishko0o 35 Точки

@ValentinBarutchiev 

if even_min != sys.maxsize:    # първоначално even_min = sys.maxsize и ако не е влязло/няма такава стойност , за да я промени да не е maxsize, не е имало even_min . Това прави и проверката - even_min различно ли е от първоначалната си стойност ("!=" различно от), ако да :

    print(f"EvenMin={even_min:.2f},")

в противен случай е равно на първоначалната, тоест не е имало even_min :

else:
    print(f"EvenMin=No,") 

Надявам се е било от помощ.

0
27/03/2020 01:08:34
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.