feat: Initial commit
This commit is contained in:
71
simulazioni/hacking/hacking.py
Normal file
71
simulazioni/hacking/hacking.py
Normal file
@@ -0,0 +1,71 @@
|
||||
from sys import exit
|
||||
|
||||
def carica_prodotti(filename: str):
|
||||
try:
|
||||
fio = open(filename, "r")
|
||||
|
||||
prodotti = dict()
|
||||
|
||||
for line in fio:
|
||||
line = line.strip().split()
|
||||
prodotti[line[0]] = line[1]
|
||||
|
||||
fio.close()
|
||||
return prodotti
|
||||
except FileNotFoundError:
|
||||
exit("Errore! Il file", filename, "non è stato trovato!")
|
||||
|
||||
|
||||
def carica_acquisti(filename: str, prodotti: dict):
|
||||
try:
|
||||
fio = open(filename, "r")
|
||||
|
||||
prodotti_sospetti = dict()
|
||||
|
||||
for line in fio:
|
||||
line = line.strip().split()
|
||||
prodotto = line[0]
|
||||
rivenditore = line[1]
|
||||
|
||||
if prodotto not in prodotti:
|
||||
print("Attenzione! il prodotto", prodotto, "non esiste")
|
||||
continue
|
||||
|
||||
if prodotto not in prodotti_sospetti:
|
||||
prodotti_sospetti[prodotto] = []
|
||||
|
||||
prodotti_sospetti[prodotto].append(rivenditore)
|
||||
|
||||
fio.close()
|
||||
return prodotti_sospetti
|
||||
except FileNotFoundError:
|
||||
exit("Errore! Il file", filename, "non è stato trovato!")
|
||||
|
||||
|
||||
def controlla_acquisti(prodotti: dict, acquisti: dict):
|
||||
prodotti_sospetti = dict()
|
||||
for prodotto in acquisti:
|
||||
if len(acquisti[prodotto]) > 1 or (len(acquisti[prodotto]) == 1 and acquisti[prodotto][0] != prodotti[prodotto]):
|
||||
prodotti_sospetti[prodotto] = acquisti[prodotto]
|
||||
|
||||
return prodotti_sospetti
|
||||
|
||||
|
||||
def stampa_prodotti_sospetti(prodotti: dict, prodotti_sospetti: dict):
|
||||
print("Elenco transazioni sospette")
|
||||
for prodotto in prodotti_sospetti:
|
||||
print("Codice prodotto:", prodotto)
|
||||
print("Rivenditore ufficiale:", prodotti[prodotto])
|
||||
print("Lista rivenditori:", " ".join(prodotti_sospetti[prodotto]))
|
||||
print()
|
||||
|
||||
|
||||
def main():
|
||||
prodotti = carica_prodotti("prodotti.txt")
|
||||
acquisti = carica_acquisti("acquisti.txt", prodotti)
|
||||
sospetti = controlla_acquisti(prodotti, acquisti)
|
||||
stampa_prodotti_sospetti(prodotti, sospetti)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user