Last active
January 2, 2025 17:57
-
-
Save zalnaRs/f866f8c9d08eab1871aa184e3bfb44b0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' | |
Felhasználó kezelés | |
2025. 01. 01. | |
Ebbe minden benne van amit eddig tanultunk ebbe az évbe. | |
Lehet, hogy picit komplikáltnak nézz ki, de valójában nem az. | |
Ha valamit nem értetek kérdezetek engem, ChatGPT, Google Gemini, Github Copilot, StackOverflow-t. | |
''' | |
import random # beimportáljuk a random modult, amit majd késöbb használunk | |
''' | |
ebbe a "felhasznalok" listába, fogjuk tárolni a nevet és a jelszót, egy úgynevezett "matrix"-ba, tehét a listába listákat tárolunk. | |
Valahogy így fog kinézni a listánk: | |
[ | |
["neve", "jelszava"], | |
["neve2", "jelszava"] | |
]. | |
Ha az 1. felhasználónak az adatait akarom akkor így lehet lekérni külön: | |
felhasznalok[0][0] = név | |
felhasznalok[0][1] = jelszó | |
''' | |
felhasznalok = [] | |
# elöre összeszedem egy listába a menü elemeket így egyszerübb lesz több opciót hozzáadni | |
menu_elemek = ['Felhasznaló hozzáadása', 'Felhasznaló törlése', 'Véletlenszerű felhasználó lekérése', 'Kilépés'] | |
# ez a változó azért kell, hogy a program addig fusson míg a felhasználó nem lép ki | |
fut_e = True | |
# az alkalmazás "main loop"-ja = itt csinálunk mindent | |
while fut_e: | |
# A felhasználók elemszámát ki számoljuk | |
# Megszámolás tétele: így müködik a len() függvény | |
felhasznalok_elemszama = 0 | |
for felhasznalo in felhasznalok: | |
felhasznalok_elemszama += 1 | |
# Kiírjuk a felhasználókat, csak a nevüket! | |
print('Felhasználók: ') | |
print(f'-Elemszámuk: {felhasznalok_elemszama}') | |
# Így kell átmenni egy listán (több opció is van, de ezt mindenkinek kell tudnia) | |
for i in range(0, felhasznalok_elemszama): | |
print(f'-{i+1}. {felhasznalok[i][0]}') | |
print('---') | |
print('Menü: ') | |
for i in range(0, len(menu_elemek)): | |
print(f'{i+1}. {menu_elemek[i]}') | |
# bekérjük, hogy melyik opciót szeretné választani | |
valasz = input('Válasz egy opciót: ') | |
print('------') | |
if valasz == '1': | |
# 1. Felhasználó hozzáadása | |
# a jo_e változót fogjuk, arra használni, hogy újra megkérdezzük a nevet vagy a jelszót, ha hibásan irja be | |
jo_e = False | |
# üres változók ebbe fogjuk majd beirní az eredményeket | |
nev = '' | |
jelszo = '' | |
print('Felhasználó létrehozása: ') | |
# Név bekérése | |
while not jo_e: | |
beirt_nev = input('Név: ') | |
# megnézzuk, hogy 5 karakter hosszú e? | |
# FONTOS: a szöveg (string) egy sima lista (array) | |
if len(beirt_nev) != 5: | |
print('HIBA: A neved 5 karakterből kell álljon! (se több, se kevesebb)') | |
else: | |
# Ha a fenti elagazások mind hamisak voltak, átirjuk a jo_e-t igazra és a nev váltózót a bekértre | |
# így megáll a while ciklus | |
jo_e = True | |
nev = beirt_nev | |
# újra ez jelszóval | |
jo_e = False | |
# ugyanaz mint a `not jo_e`, de gyorsabb | |
while jo_e == False: | |
beirt_jelszo = input('Jelszó: ') | |
beirt_jelszo_hossza = len(beirt_jelszo) | |
# Eldöntés tétele: megnézzük, hogy van e 'a' karakter a beirt_jelszo-ba | |
# ehelyett ezt is lehettet volna tenni az elagazásoknál: `'a' in beirt_jelszo` | |
i = 0 | |
# addig megy amíg az i kisebb mint a beirt_jelszo_hossza és a jelenlegi vizsgált beirt_jelszo karaktere (beirt_jelszo[i]) nem egyenlő 'a'-val | |
while i < beirt_jelszo_hossza and beirt_jelszo[i] != 'a': | |
i += 1 | |
# megnézzuk hogy a i nagyobb-e mint a beirt_jelszo_hossza, ha igen akkor volt benne. | |
# a `not` megforditja a boolean-t (igaz- vagy hamis-t). | |
if not i < beirt_jelszo_hossza: | |
print('HIBA: A jelszónak tartalmaznia kell egy "a" betüt!') | |
# megnézzük, hogy a beirt_jelszo_hossza nem kisebb mint 6 | |
elif not beirt_jelszo_hossza >= 6: | |
print('HIBA: A jelszó minimum 6 karakterböl kell álljon!') | |
else: | |
# szintén átirjuk a jo_e és a jelszót, ezzel megáll a ciklus | |
jo_e = True | |
jelszo = beirt_jelszo | |
# hozzáadjuk a felhasznalok listához a [nev, jelszo] listát | |
felhasznalok.append([nev, jelszo]) | |
elif valasz == '2': | |
# 2. Felhasználó törlése | |
# bekérjük a a nevet | |
beirt_nev = input('Név: ') | |
# Kiválasztás tétele: megnézzük, hogy hányadik helyen van a listába | |
i = 0 | |
while i < felhasznalok_elemszama and felhasznalok[i][0] != beirt_nev: | |
i += 1 | |
# ha van töröljük | |
if i < felhasznalok_elemszama: | |
print(f'A(z) {beirt_nev} felhasználót megtaláltuk.') | |
# i elemszámú elem (ebbe az esetbe lista (felhasznaló)) törlése | |
felhasznalok.pop(i) | |
else: | |
print('HIBA: Nincs ilyen nevű felhasználó!') | |
elif valasz == '3': | |
# 3. Véletlenszerű felhasznaló lekérése | |
# a felhasznalo listábol egy 0-tól a felhasznalók lista elemszáma - 1 random elemszámú felhasználót kiválasztunk | |
valasztott_felhasznalo = felhasznalok[random.randint(0, len(felhasznalok) - 1)] | |
print(f'Név: {valasztott_felhasznalo[0]}') | |
print(f'Jelszó: {valasztott_felhasznalo[1]}') | |
elif valasz == '4': | |
# 4. Kilépés | |
# átirjuk a fut_e változot hamisra, így meg áll a fő ciklus ("main loop") | |
fut_e = False | |
print('Viszontlátásra!') | |
print('Az adatokat nem mentettük, mivel Zámbo Dominik tanárúr nem mutattot nekünk indiai Python fájlkezelési videókat!') | |
else: | |
# ha hülyeséget írt be akkor egyik elágázás feltétele se lesz igaz | |
print('HIBA: Nincs ilyen opció!') | |
# ezzek elválasztók btw | |
print('------') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment