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

Python nie działa mi kod.

Object Storage Arubacloud
+1 głos
266 wizyt
pytanie zadane 10 listopada 2022 w Python przez niezalogowany
banknotes_coins = [0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100, 200, 500]

dict_list = []
dict_denominations = {'0.01': 0, '0.02':0, '0.05':0,'0.1' : 0, '0.2' : 0, '0.5' : 0, '1' : 0, '2' : 0, '5' : 0, '10' : 0, '20' : 0, '50' : 0, '100' : 0, '200' : 0, '500':0}
def wplatomat(num):

    num = str(num)

    for key in dict_denominations:
        dict_list.append(key)
        if key == num:
            print("Tyyle jest banknotów {}, {}".format(dict_denominations[key],int(key)))
            print("Trwa wpłacanie",int(key))
            dict_denominations[key] += 1
    dict_list = dict_list.sort()
    print("Masz na swoim koncie:")
    for i in dict_list:
        print("{} Banknotów{} ' ".format(dict_denominations[i],int(i)))




wplatomat(500)

 

komentarz 11 listopada 2022 przez reaktywny Nałogowiec (40,990 p.)
Nelson89 dobrze wypunktował sprawę. To zadanie jest bardzo proste. Zaczynasz od banknotów/monet o największym nominale.

BTW. Rozwiązanie tego zadania jest na pl.python.org na starym forum :)

Za parę lat takie zadanie to będzie historia, bo na świecie banksterzy chcą odejść od pieniądza papierowego. Polecam bardzo książkę "Koniec pieniądza papierowego" - książkę również często promuje Pan Roman Kluska, założyciel Optimusa.

3 odpowiedzi

+2 głosów
odpowiedź 10 listopada 2022 przez Nelson89 Dyskutant (7,720 p.)

Cześć,

dobrym zwyczajem byłoby opisanie problemu - co Twój kod robi i gdzie dokładnie masz problem.

W funkcji wpłatomat musisz wskazać obiekty, które są globalne - deklarowane są poza funkcją - takie jak dict_list, dict_denominations.

Na przykład:

moja_lista = []

def moja funkcja(a):
    global moja_lista
    moja_lista.append(a)

Kolejna sprawa, jak sortujesz listę, używając wbudowanej funkcji sort() - to nie robisz przypisania do zmiennej, bo ta funkcja nic nie zwraca, tylko sortuje daną listę.

moja_lista = [2, 3, 2]
moja_lista.sort()

To sprawi, że lista będzie posortowana.

Jak chcesz stringa na inta przekonwertować, który jest liczbą i jest ułamkiem, to musisz to zrobić tak:

int(float('0.01'))

Jeżeli, to chciałeś zrobić w linii 18.

Pozdrawiam,

Nelson

+1 głos
odpowiedź 10 listopada 2022 przez VBService Ekspert (253,340 p.)
edycja 10 listopada 2022 przez VBService

Jeszcze dodam, jeżeli chcesz zachować format ile banknotów ma klient (użytkownik) to zamiast listy dict_list = [] użyj może dictionary
user_balance = {} przykład on-line.

Ten int w linii 18 jest niepotrzebny.

 

How to Sort a Dictionary in Python? ]

0 głosów
odpowiedź 11 listopada 2022 przez reaktywny Nałogowiec (40,990 p.)

To zadanie powraca - w różnych wersjach - jak bumerang. Jego rozwiązanie znajdziesz w sieci, tak jak podałem w komentarzu u góry.

Najlepiej jak napisał VBService użyć tu słownika, a nie listy. Po słowniku "przechodzi się" for-em nieco inaczej niż po liście, typowy zapis to:

for klucz, wartosc in slownik.items():
    ...

 

 

 

Podobne pytania

0 głosów
3 odpowiedzi 280 wizyt
pytanie zadane 1 września 2015 w JavaScript przez CPP_Newbie Użytkownik (770 p.)
0 głosów
0 odpowiedzi 292 wizyt
pytanie zadane 4 grudnia 2019 w Python przez Ziito Obywatel (1,110 p.)
0 głosów
2 odpowiedzi 374 wizyt
pytanie zadane 23 sierpnia 2015 w C i C++ przez Slasheruus 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!

...