Domanda Esercizio python

Aurora17

Utente Iron
9 Gennaio 2021
6
3
2
8
Non riesco a fare quest’esercizio con Python,qualcuno sa come farlo?
 

Allegati

  • image.jpg
    image.jpg
    3.5 MB · Visualizzazioni: 45
Concordo con quanto detto da luzzi.
Proviamo a darti una mano:

Prima ancora di poter definire una funzione, ti consiglio di andarti a vedere come gestire la manipolazione delle stringhe in python QUI , in particolare guardati la parte dello slicing e changing upper and lower case strings. Sono operazioni abbastanza elementari, ma bisogna sapere con cosa si ha a che fare.

Una volta capito cos'è e come funziona una stringa, saper fare "deal" con i loop è cosa fondamentale, soprattutto nelle funzioni.

Dai quindi una letta veloce QUI per i loop e tante altre cose.

Andiamo nel dettaglio:

Prova così: (nota: il professore non te l'accetterà, non essendo una funzione. è un codice puramente dimostrativo per farti capire con cosa hai a che fare)

Codice:
test_str = "A carnevale ogni scherzo vale!"

res = ""
for idx in range(len(test_str)):
    if not idx % 2 :
       res = res + test_str[idx].upper()
    else:
       res = res + test_str[idx].lower()

print(str(res))

Puoi vedere l'esecuzione del codice in live QUI , guarda attentamente, python ci mette 94 step per analizzare queste dieci linee di codice.

Per ogni indice nel range della lunghezza dei caratteri di test_str: partendo dall'indice 0 (come saprai in Python si parte da 0, in matematica da 1)
restituisci in res (result) la stringa di testo (test-str) con l'indice selezionato [idx].upper() oppure lower.
Bisogna fare attenzione su un dettaglio: qui si chiede di printare tutte i caratteri, uno maiuscolo e uno minuscolo, senza fare swap se una è maiuscola o minuscola quindi la funzione swapcase() non ha molto senso. Idem fare cosa simile a questa sarebbe sbagliata:

Codice:
for x in test_str:
    if x.isupper() == True:
        return x.lower()

oppure

Codice:
for x in test_str:
    return x.swapcase()


Prova tu a fare qualche "deal" con questo codice, dopodichè una volta capito il loop da fare potrai costruire la tua funzione
 
Ultima modifica:
Python:
string = "ciao a tutti"
for c, i in enumerate(string):
    print( i.upper() if c % 2 == 0 else i.lower(), end='' )
# CiAo a tUtTi

funzione:
Python:
def i(string):
    return ''.join([(i.lower() if c % 2 else i.upper()) for c, i in enumerate(string)])
print(i('ciao a tutti'))