iz2rpn

Soluzione 2

Jan 8th, 2023 (edited)
1,200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.65 KB | Source Code | 0 0
  1. import csv
  2.  
  3. # creo il dizionario di confronto per ogni lettera dove corrisponde sulla tastiera del telefono, scomodiamo un dizionario
  4. phone_keyboard = {
  5.     'A': '2', 'B': '2', 'C': '2',
  6.     'D': '3', 'E': '3', 'F': '3',
  7.     'G': '4', 'H': '4', 'I': '4',
  8.     'J': '5', 'K': '5', 'L': '5',
  9.     'M': '6', 'N': '6', 'O': '6',
  10.     'P': '7', 'Q': '7', 'R': '7', 'S': '7',
  11.     'T': '8', 'U': '8', 'V': '8',
  12.     'W': '9', 'X': '9', 'Y': '9', 'Z': '9'
  13. }
  14.  
  15. with open('noahs-customers.csv', 'r') as customers_file:
  16.     customers_reader = csv.reader(customers_file) # leggi il file CSV dei clienti
  17.     customers_Date = list(customers_reader) # Converti in una lista
  18.  
  19. for row in customers_Date:
  20.     if len(row) >= 2: # verifico che la riga abbia almeno 2 elementi
  21.         full_name = row[1] # il nome completo del cliente è contenuto nella seconda colonna del file CSV
  22.         phone = row[5] # Il numero cliente è contenuto nella quinta colonna (anche se mi convince poco quello che sto facendo)
  23.         name_parts = full_name.rsplit(" ", 2) # suddivido la stringa a partire dall'ultimo spazio, dividendo in 2 parti
  24.        
  25.         if len(name_parts) >= 2: # verifico che la lista abbia almeno 2 elementi
  26.             surname = name_parts[1] # il cognome è la penultima parte del nome
  27.             name = name_parts[0] # il nome è la prima parte del nome
  28.            
  29.             #print("Nome:", name, "Cognome:", surname) # stampo nome e cognome [riga di test]
  30.            
  31.             if len(surname) == 10:
  32.                 phone_number = "" # inizializzo una stringa vuota per il numero di telefono
  33.                 counter = 0 # inizializzo un contatore
  34.                
  35.                 for letter in surname: # per ogni lettera del cognome
  36.                     phone_number += phone_keyboard[letter.upper()] # aggiungo il numero corrispondente al numero di telefono
  37.                     counter += 1 # incremento il contatore
  38.                     if counter == 3: # se il contatore raggiunge 3
  39.                         phone_number += "-" # aggiungo il separatore "-" al numero di telefono
  40.                     elif counter == 6: # se il contatore raggiunge 6
  41.                         phone_number += "-" # aggiungo il separatore "-" al numero di telefono
  42.                 # in questo modo abbiamo la struttura del numero di telefono in questo modo XXX-XXX-XXXX che confrenteremo con il numero telefonico nella colonna cinque
  43.                
  44.                 if phone_number == row[5]: # se il numero di telefono che abbiamo convertito è uguale abbiamo vinto, stamperemo anche il nome per avere una confronto.
  45.                     print(surname + ' ' + phone_number + ' ' + row[5])
Advertisement
Add Comment
Please, Sign In to add comment