Loading...
+ Нов въпрос
Fenrir07 avatar Fenrir07 0 Точки

09. Hello, France - Python fundamentals

Здравейте, колеги!

Zero тестовете минават успешно, а задачата ми получава 0/100. Кодът със сигурност може да бъде оптимизиран, но решението ми дойде спонтанно и го написах без да се замислям. Ще се радвам на коментари и предложения :)

https://pastebin.com/Ay6Mk5dM

Тагове:
0
Fundamentals Module
MartinBG avatar MartinBG 4761 Точки

Поправен до 90/100, а това е вариант с поизчистени повторения в кода (пак 90/100).

0
icowwww avatar icowwww 2446 Точки

Здравей,

Малко допълнение за да даде 100/100:

При принтирането на новите цени имаш условие:

def l_to_s(s):
    str1 = ''
    for element in s:
        if element == s[-1]:
            str1 += "{:.2f}".format(element)
        else:
            str1 += "{:.2f}".format(element) + " "
    return str1

С което ще провериш дали стойността на текущия елемент е равна на тази на последния елемент. 

Заради това ако получиш нещо, което струва колкото последния елемент няма да принтираш разстояние. Например

Clothes->15.60|Shoes->25.25|Clothes->36.52|Clothes->20.90|Accessories->15.60
120

Изход:

21.8435.35 51.13 29.26 21.84
Profit: 45.55
Hello, France!

Не се изисква последния елемент да е без разстояние след него. Доколкото знам judge прави trim при тестовете.

Затова директно махаш тази проверка

https://pastebin.com/1qQyJE0A

1
IvanNankov95 avatar IvanNankov95 8 Точки
items = input().split('|')
budget = int(input())
bought_items = []

for i in items:
    item = i.split('->')
    valid = False
    item_price = float(item[1])

    if item[0] == 'Clothes' and item_price <= 50:
        valid = True
    elif item[0] == 'Shoes' and item_price <= 35:
        valid = True
    elif item[0] == 'Accessories' and item_price <= 20.50:
        valid = True

    if valid:
        if budget - item_price < 0:
            break

        budget -= item_price
        bought_items.append(item_price)

items_with_profit = [item * 1.4 for item in bought_items]

for item in items_with_profit:
    print(f'{item:.2f}', end=' ')

print()
print(f'Profit: {abs(sum(bought_items) - sum(items_with_profit)):.2f}')
if sum(items_with_profit) + budget >= 150:
    print('Hello, France!')
else:
    print('Not enough money.')

Едно решение и от мен

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