Funkcje

H9
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:15
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

edytowany 2x, ostatnio: Hubert95
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:2 minuty
  • Postów:6685
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

🕹️⌨️🖥️🖱️🎮
edytowany 3x, ostatnio: Spine
H9
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 4 lata
  • Postów:15
0

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

edytowany 1x, ostatnio: Hubert95
Spine
  • Rejestracja:około 22 lata
  • Ostatnio:2 minuty
  • Postów:6685
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 ;)


🕹️⌨️🖥️🖱️🎮
edytowany 4x, ostatnio: Spine
SI
Jak dla mnie jak najbardziej mogą być w itemy o tej samej nazwie, bo np slot ma ograniczoną pojemność i nadwyżka jest w innym. Jak nazbiera 10k strzał, to mu się to w jednym kołczanie nijak nie zmieści.
Spine
No ale wtedy przydałoby się dodać grupowanie oprócz sortowania, i skomplikowałoby to dodawanie itemów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.