Topic: esercizio think python  (Letto 116 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline frafrog

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
esercizio think python
« il: Gennaio 21, 2021, 23:36 »
Ciao a tutti, sto cercando di svolgere un esercizio ,che ho trovato sul libro think python, senza successo...   :| :confused:

Questo è l'esercizio : Scrivete una funzione di nome alfabetica che restituisca True se le lettere di una
parola compaiono in ordine alfabetico (le doppie valgono). Quante parole “alfabetiche” ci sono?

Questa è la mia soluzione :

def alfabetica(parola):
    parola = parola.lower()
    if len(parola) <= 1 :
        return True
    elif ord(parola[0]) > ord(parola[1]) :
        return False
    else :
        alfabetica(parola[1:])


Quando provo a eseguire lo script, l'interprete mi restituisce il valore None e non capisco perché  :(
« Ultima modifica: Gennaio 21, 2021, 23:39 da frafrog »

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 351
  • Punti reputazione: 0
    • Mostra profilo
Re:esercizio think python
« Risposta #1 il: Gennaio 22, 2021, 10:04 »
manca un "return"

>>> def alfabetica(parola):
if len(parola) == 1: return True
parola = parola.lower()
if ord(parola[0]) > ord(parola[1]):
return False
else:
return alfabetica(parola[1:])


>>> alfabetica('Aeiou')
True
>>> alfabetica('frafrog')
False
>>> alfabetica('123Aeiou')
True
>>>

Offline frafrog

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re:esercizio think python
« Risposta #2 il: Gennaio 25, 2021, 23:29 »
Grazie, non so come ho fatto a non notarlo  :|