Forum >> Principianti >> Problema con esercizio Python

Pagina: 1 2 Avanti

Salve a tutti sono nuovo su questo forum e sono nuovo nel linguaggio python. Mi è stato assegnato un esercizio che proprio non ho capito come fare. Vi allego qui sotto il testo. Grazie in anticipo a chi mi aiuterà!
Allegati
Salve a tutti sono nuovo su questo forum e sono nuovo nel linguaggio python. Mi è stato assegnato un esercizio che proprio non ho capito come fare. Vi allego qui sotto il testo. Grazie in anticipo a chi mi aiuterà!
Vediamo, quali punti dell'assegnazione sei in grado di svolgere?

# Scrivere una funzione sub_url(u1, u2, enc, maxlen)
# che legge le pagine agli indirizzi URL u1 e u2,
# le decodifica tramite la codifica enc
# e ritorna una lista senza ripetizioni
# delle parole di lunghezza al piu' maxlen
# che appaiono nella pagina u1 ma non appaiono nella pagina u2.
# Per parola si intende una qualsiasi sequenza di caratteri alfabetici consecutivi di lunghezza massimale.
# Un carattere e' alfabetico se il metodo isalpha() ritorna True.
# Tutte le parole devono essere ridotte in minuscole.
# La lista ritornata deve riportare le parole in ordine di apparizione nella pagina u1.
?
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
def noalpha(s):

'''Ritorna una stringa contenente tutti i caratteri

non alfabetici in s'''

noa= ''

for c in s:

if not c.isalpha() and c not in noa:

noa += c

return noa



def words(s):

'''Ritorna una lista di tutte le parole del testo s'''

noa = noalpha(s)

for c in noa:

s = s.replace(c, ' ')

return s.split()




def sub_url(u1, u2, enc, maxlen):

import urllib2 as ul

ur1=ul.urlopen(u1)

page=ur1.read()

ur1.close()

page=page.decode(enc)

ur2=ul.urlopen(u2,'U')

page=ur2.read()

ur2.close()

page1=page.decode(enc)
questo è quello che sono riuscito a fare. poi mi sono bloccato.. potreste darmi una mano a continuare? grazie mille
questo è quello che sono riuscito a fare. poi mi sono bloccato.. potreste darmi una mano a continuare? grazie mille
Beh, direi che ci sei quasi!
Mi sembra che manchi solo:

"""ritorna una lista senza ripetizioni delle parole di lunghezza al piu' maxlen che appaiono nella pagina u1 ma non appaiono nella pagina u2."""

Dunque, ora hai le tue due belle liste di parole, diciamo lista e lista1. Potresti aggiungerci una lista risultato, vuota, ed eseguire i rimanenti semplici passi

rendi tutte minuscole le parole di lista
rendi tutte minuscole le parole di lista1
per ogni parola di lista:
    se è di lunghezza inferiore a maxlen e non compare in risultato e non compare in lista1:
        aggiungila a risultato
restituisci risultato

Facile, no?
Buon lavoro!


THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
 se è di lunghezza inferiore a maxlen e non compare in risultato e non compare in lista1:
        aggiungila a risultato
rendere lettere minuscole mi sembra abbastanza facile. Ma su questo pezzo ha consigli da darmi? io ho pensato, faccio un if, ma non so che condizioni ci devo mettere
 se è di lunghezza inferiore a maxlen e non compare in risultato e non compare in lista1:
        aggiungila a risultato
rendere lettere minuscole mi sembra abbastanza facile. Ma su questo pezzo ha consigli da darmi? io ho pensato, faccio un if, ma non so che condizioni ci devo mettere
Giusto, un if ci sta bene. userei tipo parola not in risultato and parola not in lista1.
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
ok ho capito quello che dici tu. l unica cosa è come faccio a settare maxlen per poi dire se quella parola è > di maxlen metti la parola?
ok ho capito quello che dici tu. l unica cosa è come faccio a settare maxlen per poi dire se quella parola è > di maxlen metti la parola?
È il terzo argomento della tua funzione, no?

def sub_url(u1, u2, enc, maxlen):

THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
ma non gli devo dare un valore per dire se word> maxlen allora inserisci word?


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.