Funkcje

0

Moglibyście mi pomóc w napisaniu tych funkcji ?

Mam taki słownik:

inv = {'rope': 1, 'torch': 6, 'gold coin': 42, 'dagger': 1, 'arrow': 12}

Funkcja 1:

krok3.jpg

Zrobiłem taki kod, ale brakuje sortowania:

def print_table(inventory, order):
z = 0
print("Inventory:")
print()
print("count item name")
print("-" * 18)
#if order == "count,desc":
# [value for (key, value) in sorted(inventory.items())]
for key, value in inventory.items():
print('{:>4} {:>13}'.format(value, key))
z += value
print("-" * 18)
print("Total number of items: " + str(z))

Funkcja 2:

krok4.png --> plik do tego: test_inventory.csv

2
  1. To ostatni raz, kiedy wklejasz kod bez formatowania!
  2. Napisz sobie klasę InventoryItem posiadającą odpowiednie pola (ilość itemów oraz nazwa).
  3. Zamiast słownika, trzymaj wszystkie itemy w liście. Listę łatwiej sortować po polach obiektów, niż słownik. Poza tym jeśli item będzie miał dodatkowe pola, to i tak będziesz potrzebował jakiś kontener na te dane.
  4. Napisz odpowiednie funkcje do dodawania itemów do listy itp.
  5. Sortowanie wykonuj podając jako argument key lambdę określającą pole obiektu, według którego chcesz sortować - https://docs.python.org/3/howto/sorting.html .
  6. Łapka w górę :P
0

Itemy mam trzymać w liście, a liczbę itemów w osobnej liście czy w tej samej?

0

W tej samej, po prostu para "nazwa", "ilość" będą w jednym obiekcie - instancji klasy Item.

Dzięki sortowaniu kluczem możesz sobie bez większych modyfikacji sortować według nazwy, czy ilości itemów. Tylko musisz zapewnić, że w liście nie będzie dwóch wpisów z tą samą nazwą. Ale od tego będą funkcje dodające itemy do listy ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1