Kurzusok
/
Python
Python
/
Feladatok
/
Pénzváltás
Pénzváltás

Pénzváltás

Tanulófeladat

Bevezetés

Számok

A Pythonban három különböző beépített számtípus létezik: ints, floats és complex. Ebben a feladatban azonban csak ints és floats típusokkal fogsz foglalkozni.

Egész számok

Az ints egész számok. Például: 1234, -10, 20201278.

A Pythonban az egészek tetszőleges pontosságúak, a számjegyek számát csak a gazdarendszer rendelkezésre álló memóriája korlátozza.

Lebegőpontos számok

A floats olyan számok, amelyek tizedespontot tartalmaznak. Például: 0.0, 3.14, -9.01.

A lebegőpontos számok általában C-beli double típussal vannak megvalósítva a Pythonban (15 tizedesjegy pontossággal), de a reprezentációjuk a gazdarendszertől és más megvalósítási részletektől függően változhat. Ez meglepetéseket okozhat a lebegőpontos számokkal való munka során, de a legtöbb helyzetben „elég jó”.

További részleteket és beszélgetéseket a következő forrásokban láthatsz:

Aritmetika

A Python teljes mértékben támogatja az aritmetikát ints és floats között. A bináris aritmetikai operátorokkal (+, -, *, /, // és %) használva a szűkebb számokat a kevésbé szűk típusukhoz igazítja.

A Python az ints típust szűkebbnek tekinti, mint a floats típust. Ezért ha egy kifejezésben float szerepel, az eredmény is float lesz. Osztásnál azonban az eredmény mindig float lesz, még akkor is, ha csak egészeket használsz.

# The int is widened to a float here, and a float type is returned.
>>> 3 + 4.0
7.0
>>> 3 * 4.0
12.0
>>> 3 - 2.0
1.0
# Division always returns a float.
>>> 6 / 2
3.0
>>> 7 / 4
1.75
# Calculating remainders.
>>> 7 % 4
3
>>> 2 % 4
2
>>> 12.75 % 3
0.75

Ha egész eredményre van szükség, a // operátorral csonkíthatod az eredményt.

>>> 6 // 2
3
>>> 7 // 4
1

Ha egy float típust egésszé szeretnél alakítani, használhatod az int() függvényt. Ha egy egész típust float típussá szeretnél alakítani, használhatod a float() függvényt.

>>> int(6 / 2)
3
>>> float(1 + 2)
3.0

Utasítások

A barátod, Chandler egzotikus országokat szeretne bejárni a világ minden táján. Sajnos Chandler matektudása nem valami erős. Eléggé tart tőle, hogy az utazása során átverik a pénzváltóknál, ezért szeretné, ha készítenél neki egy valutakalkulátort. Íme az alkalmazással szemben támasztott követelményei:

1. Becsüld meg az értéket váltás után

Hozd létre az exchange_money() függvényt, amely 2 paramétert vár:

  1. budget : A pénzösszeg, amit be szeretnél váltani.
  2. exchange_rate : Az egy egység külföldi valutával egyenlő hazai valuta összege.

A függvénynek a beváltott valuta értékét kell visszaadnia.

Megjegyzés: Ha a valutád USD, és USD-t szeretnél EUR-ra váltani 1.20-as árfolyamon, akkor 1.20 USD == 1 EUR.

>>> exchange_money(127.5, 1.2)
106.25

2. Számold ki a váltás után megmaradó összeget

Hozd létre a get_change() függvényt, amely 2 paramétert vár:

  1. budget : A váltás előtti pénzösszeg.
  2. exchanging_value : Az az összeg, amit a budget-ből kivesznek, hogy beváltják.

A függvénynek azt az összeget kell visszaadnia, ami a budget-ből megmarad.

>>> get_change(127.5, 120)
7.5

3. Számold ki a bankjegyek értékét

Hozd létre a get_value_of_bills() függvényt, amely 2 paramétert vár:

  1. denomination : Egyetlen bankjegy értéke.
  2. number_of_bills : A bankjegyek teljes száma.

Ez a pénzváltó pult csak bizonyos címletekben foglalkozik készpénzzel. A kapott teljes összegnek oszthatónak kell lennie egy »bankjegy« vagy egység értékével, ami után törtrész vagy maradék maradhat. A függvényednek csak a bankjegyek teljes értékét kell visszaadnia (a törtrészeket nem számítva), amit a pult visszaadna. Sajnos a maradékot/visszajárót a pult bónuszként megtarthatja.

>>> get_value_of_bills(5, 128)
640

4. Számold ki a bankjegyek számát

Hozd létre a get_number_of_bills() függvényt, amely az amount és a denomination paramétert várja.

A függvénynek azt a bankjegyszámot kell visszaadnia, amit a megadott amount összegből kaphatsz. Másképp fogalmazva: hány egész bankjegy fér bele a kiinduló összegbe? Ne feledd, csak egész bankjegyeket kaphatsz, bankjegyek törtrészét nem, ezért ennek megfelelően ossz. Valójában lefelé kerekítesz a legközelebbi egész bankjegyre/címletre.

>>> get_number_of_bills(127.5, 5)
25

5. Számold ki a bankjegyekre váltás után megmaradó összeget

Hozd létre a get_leftover_of_bills() függvényt, amely az amount és a denomination paramétert várja.

A függvénynek azt a maradék összeget kell visszaadnia, amit a megadott bankjegycímlet mellett a kiinduló amount-ból nem lehet visszaadni. Nagyon fontos pontosan tudni, mennyit tarthat meg a pult.

>>> get_leftover_of_bills(127.5, 20)
7.5

6. Számold ki az értéket váltás után

Hozd létre az exchangeable_value() függvényt, amely a budget, exchange_rate, spread és denomination paramétert várja.

A spread paraméter a váltási díjként levont százalék, egész számként megadva. Tizedes számmá kell alakítani úgy, hogy elosztod 100-zal. Ha 1.00 EUR == 1.20 USD, és a spread 10, akkor a tényleges árfolyam a következő lesz: 1.00 EUR == 1.32 USD, mert az 1.20-nak a 10%-a 0.12, és ez a pluszdíj hozzáadódik az árfolyamhoz.

A függvénynek az új valuta maximális értékét kell visszaadnia, miután kiszámoltad az árfolyamot plusz a spread-et. Ne feledd, hogy a valuta címlete egész szám, és nem osztható tovább.

Megjegyzés: A visszaadott érték int típusú legyen.

>>> exchangeable_value(127.25, 1.20, 10, 20)
80
>>> exchangeable_value(127.25, 1.20, 10, 5)
95
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Pénzváltás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.