A legegyszerűbb kalkulátor írása pythonban 3

A kiszolgálók elhelyezése megbízható európai adatközpontokba. Nyissa meg a felhőalapú VPS / VDS szervert gyors SSD-ken 1 percen belül!

Legjobb tárhely:
- védi az adatokat a nem kívánt hozzáféréstől egy védett európai adatközpontban
- elfogadja a fizetést legalább a bitcoinban.
- elosztja terjesztését

- védelem a DDos támadásoktól
- mentes mentés
- Uptime 99.9999%
- Adatközpont - TIER III
- szolgáltató - TIER I

Támogatjuk az oroszban 24/7/365 Jogi személyekkel és természetes személyekkel dolgozunk. Most szüksége van 24 magra és 72 GB RAM-ra. Kérlek!

Kedvező tarifáink bizonyítják, hogy még nem tudta az olcsó tárhelyet!

Perc: válassza ki a konfigurációt, a fizetést és a CMS-t a VPS készen áll.
Pénzvisszafizetés - 30 nap!

Bankkártyák, e-deviza, Qiwi, Webmoney, PayPal, Novoplat stb.

Kérdezzen a 24/7/365 támogatáshoz

Válaszokat talál az adatbázisunkban, és ismerkedjen meg az ajánlásokkal

A Python programnyelv kiválóan alkalmas számok és matematikai kifejezések feldolgozására. Ebből a minőségből hasznos programokat hozhat létre.

Ebben a kézikönyvben hasznos gyakorlatot kínál: próbáljon egyszerű parancssori programot készíteni a számítások elvégzéséhez. Tehát ebben a bemutatóban megtudhatja, hogyan lehet a legegyszerűbb számológépet létrehozni a Python 3-ban.

A kézikönyv matematikai operátorokat, változókat, feltételes kifejezéseket, függvényeket használ.

követelmények

Az útmutató futtatásához telepítenie kell a Python 3-at a helyi gépre és telepítenie kell a fejlesztői környezetet. Minden szükséges utasítás megtalálható itt:

  • A Python 3 helyi fejlesztői környezetének konfigurálása a CentOS 7-ben
  • A helyi fejlesztői környezet konfigurálása a Python 3 rendszerhez a Windows 10 rendszerben
  • A helyi fejlesztői környezet konfigurálása a Python 3 számára Mac OS X rendszerben
  • A helyi fejlesztői környezet beállítása a Python 3 számára Ubuntorban 16.04

1: Beviteli karakterlánc

Először meg kell adnia egy bemeneti sort, amellyel a felhasználók a számológépben számításokhoz adhatnak adatokat.

Ehhez használja a beépített funkcióbevitelt (), amely elfogadja a felhasználó által létrehozott billentyűzetbevitelt. A bemeneti () függvény zárójeleként átadhatja a karakterláncot. A felhasználói bevitelhez egy változót kell rendelni.

Ebben a programban a felhasználó két számot adhat meg. Bemenet lekérésekor fel kell adnia egy helyet a vonal végén ahhoz, hogy elkülönítse a felhasználói bevitelt a programsorból.

number_1 = bemenet ('Adja meg első számát:')
number_2 = input ('Adja meg második számát:')

A program elindítása előtt mentse el a fájlt. Például hívjuk a calculator.py számot. A programot a fejlesztői környezet terminál ablakában futtathatja a parancs segítségével:

A program kéri, hogy írjon be két számot:

Adja meg első számát: 5
Adja meg második számát: 7

Abban a pillanatban a számológép elfogadja a bemeneti adatokat, amelyek nem korlátozódnak a számokra: szavakra, szimbólumokra, szóközökre, még beírni. Ez azért van, mert a bemeneti () függvény az adatokat sztringként veszi át, és nem tudja, hogy ebben az esetben csak számok szükségesek.

Ahhoz, hogy a program matematikai számításokat hajtson végre, a számokon kívül más adatokat nem fogadhat el.

A céltól függően kalkulátor program képes konvertálni funkció line input (), hogy egész vagy lebegőpontos szám. Ebben az esetben az egész számok megfelelőbbek. A bemenet () függvényt az int () függvényen belül át kell adni, hogy a bemenetet egész számgá alakítsa.

number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))

Most próbálj meg két egész számot beírni:

Adja meg első számát: 23
Adja meg második számát: 674

Minden hiba nélkül működik. Ha karaktereket, tereket vagy betőket ír be, akkor a program hibát ad vissza:

Írja be első számát: hello
Traceback (utolsó legutóbbi utolsó hívás):
Fájl: "testing.py", 1. sor,
number_1 = int (bemenet ('adja meg első számát:'))
ValueError: érvénytelen literál az int () számára az alap 10: 'hello'

Így írt egy sorot, amelybe beírhatod az adatokat a programba.

Megjegyzés. Próbálja meg a beviteli adatokat önállóan lebegőpontos számokká alakítani.

2: Operátorok hozzáadása

Most négy alapvető operátort kell hozzáadnunk: + (addíció), - (kivonás), * (szorzás) és / (osztás).

Jobb, ha a programot fokozatosan fejleszteni kell, annak érdekében, hogy minden szakaszban tesztelhesse.

Először add hozzá az átadás operátort. Helyezze a két számot a nyomtatásba úgy, hogy a számológép megjeleníti az eredményt.

number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))
nyomtatás (number_1 + number_2)

Futtassa a programot, és próbáljon meg hozzáadni két számot:

Adja meg első számát: 8
Adja meg második számát: 3
11

Most kissé megnehezítheti a programot. Az eredmény mellett a számológép a felhasználó által megadott számokat is megjeleníti.

number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)

Futtassa újra a programot, és próbálja meg megadni a számokat:

Adja meg első számát: 90
Adja meg második számát: 717
90 + 717 =
807

Most biztos lehet benne, hogy a megfelelő számokat beírta.

Ebben a szakaszban hozzáadhatja a többi operátort ugyanazon formában:

number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))
# Addition
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)
# Kivonás
nyomtatás ('<> - <> = '.format (number_1, number_2))
nyomtatás (number_1 - number_2)
# Szorzás
nyomtatás ('<> * <> = '.format (number_1, number_2))
nyomtatás (number_1 * number_2)
# Osztály
nyomtatás ('<> / <> = '.format (number_1, number_2))
nyomtatás (number_1 / number_2)

Most a számológép elvégezhet matematikai számításokat a +, -, * és / operátorok segítségével. Ezután korlátozni kell a program által végrehajtott műveletek számát egy időben.

3: Kondicionált üzemeltető hozzáadása

Adjon hozzá egy kis leírást a calculator.py program elejére a rendelkezésre álló műveletek listájával. Az egyik kezelő kiválasztásával a felhasználó megmondja a programnak, hogy pontosan mit kell tennie.

'' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
'' '

Megjegyzés. Valójában bármilyen karaktert használhat itt (például 1 az addícióhoz, b a kivonáshoz stb.).

Adja át a stringet a bemenet () függvényen belül, és hozzárendeljen egy változót a bemeneti értékhez (például ez lesz műveleti változó).

operation = bemenet ('' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
'' ')
number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)
nyomtatás ('<> - <> = '.format (number_1, number_2))
nyomtatás (number_1 - number_2)
nyomtatás ('<> * <> = '.format (number_1, number_2))
nyomtatás (number_1 * number_2)
nyomtatás ('<> / <> = '.format (number_1, number_2))
nyomtatás (number_1 / number_2)

Ebben a sorban a felhasználó megadhat bármely javasolt karaktert, de semmi sem fog történni. Ahhoz, hogy a program működjön, feltételes nyilatkozatot kell adnia. Az if nyilatkozat felelős a kiegészítésért, a három operátor elif a fennmaradó műveletekhez; a másik utasítás hibát ad vissza, ha a felhasználó a javasolt operátorok helyett más karaktert adott be.

operation = bemenet ('' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
'' ')
number_1 = int (bemenet ('adja meg első számát:'))
number_2 = int (bemenet ('adja meg második számát:'))
ha művelet == '+':
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)
elif művelet == '-':
nyomtatás ('<> - <> = '.format (number_1, number_2))
nyomtatás (number_1 - number_2)
elif művelet == '*':
nyomtatás ('<> * <> = '.format (number_1, number_2))
nyomtatás (number_1 * number_2)
elif művelet == '/':
nyomtatás ('<> / <> = '.format (number_1, number_2))
nyomtatás (number_1 / number_2)
más:
print ('Nem írt be érvényes operátort, kérjük, futtassa újra a programot.')

Tehát először a program kéri a felhasználót, hogy adja meg a művelet szimbólumát. Aztán két számot kér. Ezután megjeleníti a felhasználó bemenetet és a számítás eredményét. Például a felhasználó beírja a *, majd az 58-at és a 40-et.

Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
*
Kérjük, adja meg az első számot: 58
Adja meg a második számot: 40
58 * 40 =
2320

Ha a program első kérésére a felhasználó beírja a% karaktert, akkor hibaüzenetet kap.

Jelenleg a program elvégzi az összes szükséges számítást. Azonban egy másik művelet végrehajtásához a programot újra kell indítani.

4: A funkciók meghatározása

Annak biztosítása érdekében, hogy a programot ne kelljen újraindítani minden egyes feldolgozott példa után, több funkciót is meg kell határoznia. Először a számítás () függvényben adja meg az összes meglévő kódot, és add hozzá még egy réteget a programhoz. A program elindításához fel kell vennie egy függvényt a fájl végére.

# Funkciómeghatározás
def számít ():
operation = bemenet ('' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
'' ')
number_1 = int (input ('Kérjük, írja be az első számot:'))
number_2 = int (input ('Kérjük, írja be a második számot:'))
ha művelet == '+':
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)
elif művelet == '-':
nyomtatás ('<> - <> = '.format (number_1, number_2))
nyomtatás (number_1 - number_2)
elif művelet == '*':
nyomtatás ('<> * <> = '.format (number_1, number_2))
nyomtatás (number_1 * number_2)
elif művelet == '/':
nyomtatás ('<> / <> = '.format (number_1, number_2))
nyomtatás (number_1 / number_2)
más:
print ('Nem írt be érvényes operátort, kérjük, futtassa újra a programot.')
# A függvény hívása kiszámítja () a funkción kívül
számít ()

Hozzon létre egy másik függvényt, amely feltételes utasításokat tartalmaz. Ez a kódblokk lehetővé teszi a felhasználó számára, hogy: folytassa a programmal való munkát vagy kiegészítse azt. Ebben az esetben három operátor lesz: egy, ha egy elif és egy másik a hibakezeléshez.

Engedje újra a funkciót (). Adja hozzá a def calculate () blokk végéhez:


# A funkció újbóli megadása ()
def ismét ():
# Felhasználó bemenet
calc_again = input ('' '
Szeretné újra kiszámolni?
Kérjük, írja be az Y-t YES-re vagy N-re NO-ra.
'' ')
# Ha a felhasználó belép Y-be, a program elindítja a függvény számítását ()
ha calc_again == "Y":
számít ()
# Ha a felhasználó belép N-be, akkor a program elbúcsúzik és befejezi a munkát
elif calc_again == 'N':
print ("Lásd később.")
# Ha a felhasználó más karaktert ad meg, a program újra elindítja a funkciót ()
más:
ismét ()
# Hívás számítása ()
számít ()

Akkor is kiküszöbölhető az ügyintézés érzékenysége: az y és n betűket ugyanúgy kell kezelni, mint az Y és az N. Ehhez hozzá kell adni a str.upper () függvényét:


def ismét ():
calc_again = input ('' '
Szeretné újra kiszámolni?
Kérjük, írja be az Y-t YES-re vagy N-re NO-ra.
'' ')
# Az 'y' vagy az 'Y' elfogadással adja hozzá a str.upper ()
ha calc_again.upper () == "Y":
számít ()
# Fogadja az 'n' vagy az 'N' szót a str.upper ()
elif calc_again.upper () == 'N':
print ("Lásd később.")
más:
ismét ()
.

Most újból hozzá kell adnunk a függvényt () a számítás () függvény végéhez, így a program futtatja a kódot, amely megkérdezi a felhasználót, hogy folytatja-e a munkát.

def számít ():
operation = bemenet ('' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
'' ')
number_1 = int (input ('Kérjük, írja be az első számot:'))
number_2 = int (input ('Kérjük, írja be a második számot:'))
ha művelet == '+':
nyomtatás ('<> + <> = '.format (number_1, number_2))
nyomtatás (number_1 + number_2)
elif művelet == '-':
nyomtatás ('<> - <> = '.format (number_1, number_2))
nyomtatás (number_1 - number_2)
elif művelet == '*':
nyomtatás ('<> * <> = '.format (number_1, number_2))
nyomtatás (number_1 * number_2)
elif művelet == '/':
nyomtatás ('<> / <> = '.format (number_1, number_2))
nyomtatás (number_1 / number_2)
más:
print ('Nem írt be érvényes operátort, kérjük, futtassa újra a programot.')
# A () függvény hozzáadása ()
ismét ()
def ismét ():
calc_again = input ('' '
Szeretné újra kiszámolni?
Kérjük, írja be az Y-t YES-re vagy N-re NO-ra.
'' ')
ha calc_again.upper () == "Y":
számít ()
elif calc_again.upper () == 'N':
print ("Lásd később.")
más:
ismét ()
számít ()

Futtassa a programot a terminálon a következő paranccsal:

A programot nem kell újraindítani.

5: További műveletek

Az írott program teljesen készen áll a használatra. Azonban van még sok kiegészítő, amelyet felvehet a kódra, ha akarod. Például írhat egy üdvözlő üzenetet, és hozzáadhatja a kód tetejéhez:

def welcome ():
nyomtatás ('' '
Üdvözöljük a számológépen
'' ')
.
# Akkor be kell hívnia a funkciót
üdvözlet ()
számít ()

A hibakezeléshez további funkciókat is hozzáadhat a programhoz. Például a programnak akkor is folytatnia kell a munkáját, ha a felhasználó egy szám helyett szót ír be. Jelenleg ez nem így van: a program hibát ad a felhasználónak és abbahagyja a munkát.

Ezenkívül, ha a felhasználó kiválasztja a 0 nevezőt a megosztási operátor (/) kiválasztásakor, akkor hibát kell kapnia:

ZeroDivisionError: osztás nullával

Ehhez írjon egy kivételt a próbával ... kivéve az operátort.

A program 4 operátorra korlátozódik, de bővítheti ezt a listát:


operation = bemenet ('' '
Kérjük, írja be a teljes matematikai műveletet:
+ kiegészítéshez
- kivonás céljából
* a szorzáshoz
/ a megosztáshoz
** a hatalomért
% modulo esetén
'' ')
.
# A modul felemeléséhez és feldolgozásához feltételes utasításokat kell adni a kódhoz.

Hurok utasításokat is hozzáadhat a programhoz.

A hibaelhárítás és az egyes projektek javításának számos módja létezik. Mindig fontos megjegyezni, hogy egyetlen vagy semmi probléma sem megoldható.

következtetés

Most már tudod, hogyan kell írni a legegyszerűbb számológépet. A kézikönyv végrehajtása után saját maga is hozzáadhatja a program új funkcióit.