Loading...
Fenrir07 avatar Fenrir07 0 Точки

09. Hello, France - Python fundamentals

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

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

https://pastebin.com/Ay6Mk5dM

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

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

0
icowwww avatar icowwww 2779 Точки

Здравей,

Малко допълнение за да даде 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
MVetov29 avatar MVetov29 1 Точки
train_ticket = 150

command = input().split("|")
budget = float(input())

total_sum = 0
value_of_items = 0
my_list = []

for type_of_item in command:
    item = type_of_item.split("->")
    price = float(item[1])

    if "Clothes" in item:
        if price <= 50.00:
            if budget >= price:
                budget -= price
                my_list.append(price)

    elif "Shoes" in item:
        if price <= 35.00:
            if budget >= price:
                budget -= price
                my_list.append(price)

    elif "Accessories" in item:
        if price <= 20.50:
            if budget >= price:
                budget -= price
                my_list.append(price)

for number in my_list:
    value_of_items += number
    item_new_value = 1.4 * number
    total_sum += item_new_value
    print(f"{item_new_value:.2f}", end= " ")
print()
profit = total_sum - value_of_items
print(f"Profit: {profit:.2f}")

if total_sum + budget >= train_ticket:
    print("Hello, France!")
else:
    print("Not enough money.")
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.