Python és Excel feladat megoldása: Véletlen számok generálása, adatok feldolgozása és fájlkezelés
Ebben a cikkben bemutatjuk, hogyan oldhatunk meg egy informatikai feladatot Python és Excel segítségével. A feladat során véletlenszerű számokat generálunk, fájlokat készítünk és dolgozunk fel, majd a Python konzolalkalmazás segítségével az adatokat értelmezzük és különböző kérdésekre válaszolunk. Az alábbiakban részletesen bemutatjuk a lépéseket és az alkalmazott technikákat.
1. Véletlen számok generálása Excelben
Az első feladatban Excel segítségével kell generálni 50 és 100 közötti darabszámú, 0 és 18 közötti egész számokat. Ehhez az Excel Véletlen.Között függvényét használhatjuk, amely lehetővé teszi a véletlenszerű számok generálását adott intervallumban. A feladat lépései a következőképpen alakulnak:
- Nyisd meg az Excel programot.
- A cellákba alkalmazzuk a Véletlen.Között(0;18) függvényt az egyes cellákban.
- Generálj 50 és 100 közötti számú adatot.
- Az A1 cellától kezdve másold át a számokat egy jegyzettömbbe.
- Az első sorba írd be a teljes neved ékezetek nélkül, majd mentsd a fájlt Net.txt néven.
2. Második fájl létrehozása
Ezután készíts egy másik fájlt, amelyben az első sorba egy tetszőleges nevet írsz. Ez a fájl hasonló felépítéssel rendelkezik, mint az előző, de a név most változik, és a fájlt tesztfajl.txt néven mentsd el. Az adatok formátuma ugyanaz, mint az előző fájlban.
3. Python konzolalkalmazás készítése
Miután elkészítettük az Excel fájlokat, a következő lépés egy Python konzolalkalmazás megírása, amely feldolgozza a Net.txt fájl adatait. Az alkalmazásnak képesnek kell lennie arra, hogy beolvassa a fájl tartalmát, és különböző statisztikákat jelenítsen meg az interneten töltött időről. A feladat a következő:
- Olvasd be a fájl adatokat a memóriába.
- Az első sorban található név alapján jelenítsd meg az „Adatfeldolgozó neve: <
>.” üzenetet. - Jelenítsd meg a beolvasott számadatok darabszámát és az adatokat.
- Írd ki a válaszokat a következő kérdésekre:
- Összesen mennyi órát netezett?
- Mennyi óra volt a leghosszabb gép előtt töltött idő?
- Mennyi nap netezett 6 óránál többet?
- Mennyi az átlagos netezésre fordított idő?
- Számold ki az egyes napokon az internet árát, ha egy óra net ára 100 Ft. Az eredményeket egy új fájlba, netar.txt néven mentsd el.
- Számold meg, hogy hány esetben található egymás után két nem egyforma adat a listában.
- Jelenítsd meg az egyes adatok előfordulási számát csökkenő sorrendben.
- Módosítsd a programot úgy, hogy kérdezze meg a felhasználótól a feldolgozandó fájl nevét, és dolgozza fel azt.
- Ha hibás fájlnevet ad meg a felhasználó, jeleníts meg értelmes hibaüzenetet, és zárd le a programot.
4. Python program kód
Az alábbiakban bemutatjuk a Python program egy egyszerűsített verzióját, amely a fenti feladatokat végrehajtja:
Python program a fájlok feldolgozásához def beolvas_fajl(fajlnev): try: with open(fajlnev, 'r') as file: sorok = file.readlines() nev = sorok[0].strip() adatok = [int(x) for x in sorok[1:]] return nev, adatok except FileNotFoundError: print("Hiba: A fájl nem található!") exit() def statisztika(adatok): osszesen = sum(adatok) leghosszabb = max(adatok) atlag = osszesen / len(adatok) tobb_6 = len([x for x in adatok if x > 6]) return osszesen, leghosszabb, tobb_6, atlag def net_ara(adatok): return [x * 100 for x in adatok] def elofordulasok(adatok): elofordulas = {} for adat in adatok: if adat in elofordulas: elofordulas[adat] += 1 else: elofordulas[adat] = 1 return dict(sorted(elofordulas.items(), key=lambda item: item[1], reverse=True)) fajlnev = input("Adja meg a fájl nevét: ") nev, adatok = beolvas_fajl(fajlnev) print(f"Adatfeldolgozó neve: {nev}") print(f"Összes adat: {len(adatok)}") print(f"Összesen netezett órák: {statisztika(adatok)[0]}") print(f"Leghosszabb netezési idő: {statisztika(adatok)[1]}") print(f"Napok, amikor 6 óránál többet netezett: {statisztika(adatok)[2]}") print(f"Átlagos netezés: {statisztika(adatok)[3]} óra") print(f"Egy óra internet ára: {net_ara(adatok)} Ft") print(f"Adatok előfordulásai: {elofordulasok(adatok)}")
5. Összegzés
A fenti Python program segítségével képesek vagyunk feldolgozni az Excelben generált adatokat, és különböző statisztikai számításokat végezni a netezési időkről. A fájlkezelés és adatfeldolgozás kombinálásával hatékony megoldásokat kínálunk a feladatok megoldására. Az ilyen típusú feladatok nemcsak a Python programozás és az Excel használatának elsajátítását segítik, hanem a probléma megoldási készségeinket is fejlesztik.