# # Correzioni esami del 24/01/2019. # # Prima parte: input di numeri da tastiera con check check = True negative = [] positive = [] while check: inp = input('Inserisci un numero: ') if inp not in ('F', 'f'): try: val = float(inp) if val > 0: positive.append(val) else: negative.append(val) except ValueError: print('Non hai inserito un numero, ritenta.') else: check = False # Parte 1) if len(positive) > len(negative): print('L\'utente ha inserito un maggior numero di valori positivi') elif len(negative) > len(positive): print('L\'utente ha inserito un maggior numero di valori negativi') else: print('L\'utente ha inserito tanti valori positivi quanti negativi') print('\n') # Parte 2) media_positivi = sum(positive)/len(positive) media_negativi = sum(negative)/len(negative) print('La media dei positivi è: {}'.format(media_positivi)) print('La media dei negativi è: {}'.format(media_negativi)) print('\n') # Parte 3) if abs(media_negativi) > media_positivi: inp = input('Inserisci una frase con almeno otto parole: ') frase = inp.split(' ') if len(frase) >= 8: print('\n') print('Numero di parole rispettato') print('\n') else: while len(frase) < 8: inp = input('Numero minimo di parole non rispettato, reinserisci la frase: ') frase = inp.split(' ') else: print('\n') print('Ora hai rispettato il numero minimo di parole.') # Parte 4) Valida se vogliamo considerare parole come lello e tetto come sia doppie che ripetute doppie = [] ripetute = [] check = [] d = 0 r = 0 for item in frase: for l in item: if l not in check: check.append(l) else: if l == check[-1]: d = d + 1 else: r = r + 1 # se vogliamo considerare lello come doppia e ripetuta check.append(l) if d > 0 and r > 0: doppie.append(item) ripetute.append(item) elif d > 0 and r == 0: doppie.append(item) elif d == 0 and r > 0: ripetute.append(item) check = [] d = 0 r = 0 print('Nella frase inserita ci sono {} parole con lettere doppie'.format(len(doppie))) print('Nella frase inserita ci sono {} parole con lettere ripetute'.format(len(ripetute))) # altra soluzione considerando lello solamente doppia doppie = [] ripetute = [] check = [] d = 0 r = 0 for item in frase: item = item + ' ' for l in range(0, len(item)-1): if item[l] not in check: check.append(item[l]) else: if item[l] == check[-1]: d = d + 1 else: if item[l] != item[l+1]: r = r + 1 else: check.append(item[l]) if d > 0 and r > 0: doppie.append(item) ripetute.append(item) elif d > 0 and r == 0: doppie.append(item) elif d == 0 and r > 0: ripetute.append(item) check = [] d = 0 r = 0 print('Nella frase inserita ci sono {} parole con lettere doppie'.format(len(doppie))) print('Nella frase inserita ci sono {} parole con lettere ripetute'.format(len(ripetute)))