** IF ** Scrivere una funzione che dati in ingresso il costo del biglietto per visitare un museo e il numero di studenti di una classe in gita scolastica, ritorna la spesa totale, considerando che se gli studenti sono compresi fra 10 e 30 il biglietto per studente costa il 20% in meno, se sono 31 o più il 30% in meno. Scrivere una funzione indovina che invita l'utente ad inserire un numero finché non indovina un numero casuale, selezionato appena si invoca la funzione. L'utente riceve le indicazioni "troppo grande" o "troppo piccol" a seconda se il numero inserito è più grande o, rispettivamente, più piccolo di quello da indovinare. La funzione restituisce il numero di tentativi impiegati dall'utente per indovinare. ***** LISTE ***** Scrivere una funzione che prende una lista di interi e restituisce la somma di tutti i numeri pari meno la somma di tutti i numeri dispari che la compongono. Scrivere una funzione che prende in input una lista di interi e ritorna la lista con i complementi a 100 degli interi della lista in input. Scrivere una funzione che prende in input un intero n e stampa a video n righe dove la riga i-esima ha tutti i numeri a 1 a i separati da uno spazio. Scrivere una funzione che presa una lista di interi restituisca il numero dei valori valle, considerando che un elemento si definisce valle se s[i] [True, False, False, True] Scrivere la funzione crossover che prende due stringhe e stampa due stringhe la prima data dalla concatenazione della prima metà della prima stringa con la seconda metà della seconda stringa e la seconda data dalla seconda metà della prima stringa con la prima medà della seconda stringa. Esempio: >>> crossover("abc","efg") abe cfg OPPURE afg bce >>> crossover("abcd", "efghijk") abhijk cdefg Scrivere la funzione intreccia che prende due stringhe e ritorna una nuova stringa che è l'intreccio delle due passate in input. Esempio: >>> intreccia("abc","efg") aebfcg >>> intreccia("abcd", "efghijk") aebfcgdhijk Scrivere la funzione minore che prende in input una lista di stringhe e ritorna una lista con le stringhe di lunghezza minore (se ce n'è una sola, la lista contiene un solo elemento). Scrivere una funzione sottostringa che prende in input una lista di stringhe e una stringa e ritorna una lista con le stringhe che contengono la stringa in input come sottostringa. Scrivere una funzione che traduca una parola o frase presa come input in alfabeto farfallino. Scrivere un'altra funzione che faccia il contrario. Il farfallino o alfabeto farfallino è un gioco linguistico per bambini, in cui ogni vocale viene raddoppiata con l'aggiunta di una f nel mezzo. Esempio: ciao come va? -> cifiafaofo cofomefe vafa? Scrivere una funzione che prende una stringa e stabilisce se è un indirizzo email valido o no, ritornando True o False, rispettivamente. Scrivere una funzione che prende due interi k ed n in input e genera una sequenza di n parole generate casualmente, ognuna di lunghezza al massimo k. Scrivere una funzione che, data una lista di numeri, fornisce in output un istogramma basato su questi numeri, usando cancelletti. Esempio: la lista [7,3,9,5] deve produrre: ####### ### ######### ##### Scrivere una funzione confronta(s1, s2) che prese due stringhe s1 e s2, restituisce la lista degli indici i tali che s1[i] è uguale a uno dei caratteri s2[i-1], s2[i], s2[i+1]. Esempio: >>> confronta("esca","lasci") [1,2] Scrivere una funzione che presa una lista e restituisce una nuova lista composta dagli stessi elementi e nello stesso ordine, ma nella quale eventuali elementi contigui ripetuti compaiono una sola volta. Esempio: L'input [1,2,2,"a","b","a","a","casa","casa",2.0,2.0,2.0,3] deve restituire [1,2,"a","b","a","casa",2.0,3] Scrivere una funzione che presa una lista, la modifica in modo che gli elementi contigui ripetuti compaiono una sola volta. Esempio: La lista [1,2,2,"a","b","a","a","casa","casa",2.0,2.0,2.0,3] deve essere modificata in [1,2,"a","b","a","casa",2.0,3] Scrivere una funzione che presa una lista e restituisce una nuova lista composta da tuple. Ogni elemento della tupla ha il primo elemento che è un elemento della lista in input e il secondo elemento, quante volte l'elemento si ripete a partire da quella posizione. Gli stessi elementi devono essere nello stesso ordine della lista in input. Scrivere la funzione che ricostruisce la lista in input a partire dalla lista di tuple della funzione precedente. Esempio: [1,2,2,2,"b","a","a",2.0,2.0,2.0,"casa","casa"] <=> [(1,1),(2,3),("b",1),("a",2),(2.0,3),("casa",3)] **** FILE **** Scrivere una funzione che prende in input n ed un file f contenente parole separate da spazi o a capo, ed estrae casualmente n parole da f.