• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ptyhon dodwanie wylosowanego przedmiotu do listy

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 6 listopada 2021 w Python przez agipacz Początkujący (460 p.)

Cześć, uczę się tworzenia list i przyszło mi do głowy, jak mogłoby wyglądać w grze dodawanie przedmiotu do wylosowanego (np. z jakiejś skrzyni) przedmiotu. Udało mi się sklecić coś takiego:

import random as r

skarb = ['buty', 'zbroja', 'rękawica', 'miecz'] #skarb który można wylosować

torba_pusta = []

wylosowany_skarb = r.choice(skarb) # losowanie skarbu

torba = torba_pusta.append(wylosowany_skarb) #dodawanie wylosowanego skarbu do torby

print(torba) #sprawdzanie inwentarza

jednak wynik wychodzi None. 

(Nie znam jeszcze tworzenia klas i funkcji, wiec domyślam się, że napisanie czegoś takiego zapewne wygląda zupełnie inaczej. Jednak podczas nauki lepiej mi przyswoić sobie wiedzę, jeśli przekłam ją sobie na coś 'znanego' - w tej syt. fragment gry).

Podpowiecie co robię nie tak ? 

Dzięki 

1 odpowiedź

0 głosów
odpowiedź 6 listopada 2021 przez Mihoteo Bywalec (2,420 p.)
edycja 6 listopada 2021 przez Mihoteo

Osobiście nie rozumiem dlaczego chcesz mieć 2 torby, torbe pustą i torbe.
Wyświetla ci none ponieważ starasz się przypisać do zmiennej wynik funkcji append która nic nie zwraca.
Jeśli zrobisz print na pustą torbe zobaczysz, że jest tam przedmiot.
A jeśli chcesz przenieść wartość z jednej torby na drugą
 

#reszta taka sama jak podales 1-8
torba_pusta.append(wylosowany_skarb) #dodawanie wylosowanego skarbu do torby
torba = torba_pusta 
#reszta taka sama jak podales 11

tylko, że takie rozwiązanie zrobi ci wskaźnik więc jak zmienisz coś w jednej z toreb to automatycznie cały czas i druga będzie zmieniana bo po prostu będą wskazywały na to samo miejsce w pamięci twojego komputera

komentarz 6 listopada 2021 przez Mihoteo Bywalec (2,420 p.)

Natomiast jeśli chciałbyś mieć dwie niezależne torby, gdy jedną zaktualizujesz aby druga nie zmieniła swojej wartości to możesz zrobić jej kopie w taki sposób:

 

import random as r
import copy
 
skarb = ['buty', 'zbroja', 'rękawica', 'miecz'] #skarb który można wylosować
 
torba_pusta = []
 
wylosowany_skarb = r.choice(skarb) # losowanie skarbu
 
torba_pusta.append(wylosowany_skarb) #dodawanie wylosowanego skarbu do torby

torba = copy.deepcopy(torba_pusta)

print(torba) #sprawdzanie inwentarza

 

komentarz 7 listopada 2021 przez reaktywny Nałogowiec (40,990 p.)
Tu wystarczy zwykłe copy(), nie trzeba używać głębokiego kopiowania.

Podobne pytania

0 głosów
1 odpowiedź 271 wizyt
0 głosów
2 odpowiedzi 214 wizyt
pytanie zadane 7 października 2020 w Python przez Dawid Popławski Nowicjusz (160 p.)
+1 głos
1 odpowiedź 409 wizyt
pytanie zadane 20 lutego 2020 w Python przez Piotrovsky Nowicjusz (170 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...