Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
XP NINJA
#452
üzenetére
"Nem törekszem a legeslegegyszerűbb módra, annak szerintem még nincs itt az ideje, de ezt én is túlzásnak érzem."
Szerintem a Python nyelv egyik legjobb tulajdonsága, hogy alapból egyszerű és logikus szerkezeteket használ. Teljesen felesleges elbonyolítani a dolgokat, érdemes egyből az egyszerűre rámenni.
Ami a megoldásodat illeti, az első feladatban két fájlt is be kéne olvasni, nem csak a foglaltsag.txt-t. A 4. feladat sem jó, mert nem az a kérdés, hogy melyik kategóriájú székből van a legtöbb, hanem hogy melyikből adták el a legtöbbet. Ehhez viszont valahol fel kéne használni a lista nevű listádat, ami sehol nem szerepel.
Az én megoldásom alább látható. Nem ellenőriztem le valós adatokkal és azt sem állítom, hogy nem létezik szebb vagy egyszerűbb megoldás a problémákra. Most ennyire tellett:
print("1. feladat")
def fajl_beolvasas(fajlnev):
with open(fajlnev, 'r') as f:
adat = [sor.strip('\n') for sor in f]
return adat
fog_lista = fajl_beolvasas("foglaltsag.txt")
kat_lista = fajl_beolvasas("kategoria.txt")
print("2. feladat")
def foglaltsag_ellenorzes(lista, sor, szek):
if lista[sor][szek] == "x":
return True
else:
return False
sor = int(input("A sor szama? "))
szek = int(input("A szek szama? "))
if foglaltsag_ellenorzes(fog_lista, sor, szek):
print("A szek mar foglalt")
else:
print("A szek meg ures")
print("3. feladat")
# Összefűzzük a foglaltságokat egyetlen sztringbe, hogy egyszerűbb legyen számolni
fog_sztring = "".join(fog_lista)
# Az alábbi formázás automatikusan egész százalékokat ír ki
uzenet = "Eddig {} jegyet adtak el, ami a nezoter {:.0%}-a"
foglalt_db = fog_sztring.count("x")
print(uzenet.format(foglalt_db, foglalt_db/len(fog_sztring)))
print("4. feladat")
# Összefűzzük a kategóriákat is egyetlen sztringbe, hogy egyszerűbb legyen számolni
kat_sztring = "".join(kat_lista)
# A kategorizált ülőhelyeket egy szótárba (dictionary) tesszük. Elsőre mind üres.
kategorizalt = {"1": 0, "2": 0, "3": 0, "4": 0, "5": 0}
# Végigmegyünk a foglaltsági fájlon, és megszámoljuk a foglalt kategorizált üléseket
for i, fogl in enumerate(fog_sztring):
if fogl == "x":
kateg = kat_sztring[i] # A kategória neve, ami a kategoria.txt fájlban volt
kategorizalt[kateg] += 1
legtobb = max(kategorizalt, key=kategorizalt.get)
print("A legtobb jegyet a {} kategoriaban adtak el".format(legtobb))
print("5. feladat")
arak = {"1": 5000, "2": 4000, "3": 3000, "4": 2000, "5": 1500}
bevetel = 0
for kat in kategorizalt:
bevetel += kategorizalt[kat] * arak[kat]
print("A pillanatnyi bevetel: {}Ft".format(bevetel))
print("6. feladat")
egyedul = 0
for sor in fog_lista:
# Ha a sor elején van egy egyedülálló üres hely
if sor.startswith("ox"):
egyedul += 1
# Ha a sor végén van egy egyedülálló üres hely
if sor.endswith("xo"):
egyedul += 1
# Ha a soron belül vannak egyedülálló üres helyek
egyedul += sor.count("xox")
print("A nezoteren jelenleg {} egyedulallo ures hely van".format(egyedul))
print("7. feladat")
sum_lista = []
for i, sor in enumerate(fog_lista):
sum_sor = []
for j, szek in enumerate(sor):
if szek == "x":
sum_sor.append("x")
else:
sum_sor.append(kat_lista[i][j])
sum_lista.append(sum_sor)
with open("szabad.txt", "w") as f:
[f.write(line + '\n') for line in sum_lista]
Új hozzászólás Aktív témák
- Revolut
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- Oh hi Mark: megreccsent a Metaverzum
- Battlefield 6
- Mibe tegyem a megtakarításaimat?
- gban: Ingyen kellene, de tegnapra
- E-roller topik
- Autós kamerák
- One otthoni szolgáltatások (TV, internet, telefon)
- Itt a ChatGPT végső megoldása
- További aktív témák...
- MSI Modern 15 FHD IPS Ryzen7 7730U 4.5Ghz 16GB 512GB SSD Radeon RX Vega8 Graphics Win11 1év Garancia
- Új MSI Modern 15 FHD IPS Ryzen5 7530U 4.5Ghz 16GB 512GB SSD Radeon RX Vega7 Graphics Win11 Garancia
- Új Asus Zenbook 14 WUXGA OLED 10bit HDR Ultra7 155H 16mag 32GB 1TB SSD Intel ARC Win11 Garancia
- Új Asus Zenbook 14 WUXGA OLED 10bit HDR Ryzen AI 7 350 32GB 1TB SSD Radeon 860M Win11 2év Garancia
- Új Asus Zenbook 14 WUXGA OLED 10bit HDR Ryzen AI 7 350 16GB 512GB SSD Radeon 860M Win11 2év Garancia
- ÁRGARANCIA!Épített KomPhone i5 14400F 32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- DELL Precision 5540 Workstation i7-9850H Nvidia Quadro T1000 32GB 512GB 15.6" 1 év garancia
- Akció! Gamer PC-Számítógép! Intel Ultra 5 245K / RTX 3080 10GB / 16GB DDR5 / 1TB SSD!
- HIBÁTLAN iPhone 13 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4245, 100% Akksi
- Samsung Galaxy S24 FE 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

