Profilo di Plutarco

Nome Plutarco
Indirizzo email n/a
Messaggi10
  • Re: inserire 2 funzioni in una
    Forum >> Principianti
    Si ho risolto, grazie mille
  • inserire 2 funzioni in una
    Forum >> Principianti
    ciao ragazzi volevo sapere se era possibile accorpare queste 2 funzioni in un' unica funzione
    import re
    def post(fposts,insieme):
        dizio=dizionario(fposts)
        lista_id=[]
        for k,v in dizio.items():
            lista_id+=[k for w in insieme if ' '+w.lower()+' ' in v.lower()]
        return set(lista_id)
    
    def dizionario(fpost):
        with open(fpost,encoding='UTF-8') as file:
            file=file.read()
            filex=re.sub('[^\w><]',' ',file)
            filex=file.split()
            filex=' '.join(file)
            posts=file.split('<POST>')
            if posts0=='':
                del posts0
            codice_id=re.findall('(?<=<POST>).*\d*',file, re.MULTILINE)
            codice_id=' '.join(codice_id)
            codice_id=codice_id.split()
            dizio=dict(zip(codice_id,posts))
        return dizio
    grazie in anticipo
  • Re: sintassi parole in numeri
    Forum >> Principianti
    mi spiego meglio,
    io devo fare in modo che se scrivo un numero tipo 121, mi stampa a video un dizionario nel quale sono presenti le parole, già presenti nel file, che hanno come sintassi la stessa del numero, ovvero, lettera1+lettera2+lettera1

    def decod(pfile, codice):
        for x in pfile:
            for i in codice:
                dizio={a:b for a,b in zip(i,x)}
    io per il momento ho questo, ma mi sono bloccato perché:
    1) quando inserisco il file da caricare non mi legge cosa c'è nel file ma mi conta 'file.txt' come una stringa
    2) non so se il metodo che ho utilizzato per inserire il singolo numero con le lettere delle parole nel dizionario vada bene
    3) non so come fare per stampare a video un dizionario che mi stampi le parole all'interno del dizionario con la stessa sintassi del numero inserito
  • sintassi parole in numeri
    Forum >> Principianti
    ciao ragazzi,
    devo fare un programma dove ho una stringa di numeri da 0 a 9 e un file di testo (file.txt) contenente una seria di parole casuali.
    quello che devo fare io è, inserire i input una serie di numeri e lui mi stampa a video le parole che hanno quella sintassi
    esempio:
    >>> program03.decod('file.txt','121')
    {'afa', 'ada', 'gag', 'sos', 'ere', 'ivi', 'aia', 'ala', 'iti', 'odo', 'ara', 'ava', 'imi', 'oro', 'ama', 'non', 'idi', 'oso'}
    
    >>> program03.decod('file.txt','3533939339')
    {'ninnananna'}
    la mia domanda è,
    io ho già caricato il file e tutto quanto,
    ma come faccio a cambiare la sintassi della parola in numeri?
  • Re: Numeri in lettere
    Forum >> Principianti
    Risolto, grazie mille
  • Re: Numeri in lettere
    Forum >> Principianti
    Ok ma sia nelle secondarie che nella principale il parametro all'interno deve essere lo stesso?
    Tipo

    principale(n)

    Secondaria(n)
  • Re: Numeri in lettere
    Forum >> Principianti
    Ok non lo sapevo, la prossima lo farò
    allora io quello che pensavo era innanzitutto casomai spezzettarlo in più funzioni, in modo tale da ridurre gli if, come per esempio dai numeri da 1 a 19, per le decine e per le centinaia, ma non so come fare per poi richiamarle nella funzione principale
  • Numeri in lettere
    Forum >> Principianti
    Ciao ragazzi
    Volevo sapere se in questo codice era possibile eliminare qualche if in modo tale da ridurre l'intricatezza




    def conv(n):
    'Scrivete qui il codice della funzione'
    if n == 0:
    return ""
    elif n <= 19:
    return ("uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove", "dieci", "undici", "dodici", "tredici", "quattordici", "quindici", "sedici", "diciassette", "diciotto", "diciannove")n-1
    elif n <= 99:
    decine = ("venti", "trenta", "quaranta", "cinquanta", "sessanta","settanta", "ottanta", "novanta")
    letter = decine[int(n/10)-2]
    t = n%10
    if t == 1 or t == 8:
    letter = letter[:-1]
    return letter + conv(n%10)
    elif n <= 199:
    return "cento" + conv(n%100)
    elif n <= 999:
    m = n%100
    m = int(m/10)
    letter = "cent"
    if m != 8:
    letter = letter + "o"
    return conv( int(n/100)) + \
    letter + \
    conv(n%100)
    elif n<= 1999 :
    return "mille" + conv(n%1000)
    elif n<= 999999:
    return conv(int(n/1000)) + \
    "mila" + \
    conv(n%1000)
    elif n <= 1999999:
    return "unmilione" + conv(n%1000000)
    elif n <= 999999999:
    return conv(int(n/1000000))+ \
    "milioni" + \
    conv(n%1000000)
    elif n <= 1999999999:
    return "unmiliardo" + conv(n%1000000000)
    else:
    return conv(int(n/1000000000)) + \
    "miliardi" + \
    conv(n%1000000000)
  • Re: Funzione e divisori
    Forum >> Principianti
    Guarda ti ringrazio ma ho risolto
    Ho utilizzato 2 funzioni,

    Una che mi leggeva tutti i divisori e una che mi vedeva quali erano primi e li posizionava in una lista, e quelli che avevano tot divisori li inseriva in un'altra
  • Funzione e divisori
    Forum >> Principianti
    Ciao ragazzi,
    Io sono nuovo anche nel mondo python e oggi all'università mi si è proposto questo problema, ho uno codice da scrivere che dice

    "Si definiscono divisori propri di un numero tutti i suoi divisori tranne l'uno e scrivere una funzione modi(ls,k) che, presa una lista ls di interi ed un intero negativo k:

    1) cancella dalla lista ls gli interi che non hanno esattamente k divisori

    2) restituisce una seconda lista che contiene i soli numeri primi di ls.

    Numero primo = 0 divisori propri

    Aiutatemi per favore