Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - nuzzopippo

Pagine: [1] 2 3 ... 23
1
Base / Re:Operazioni condizionali : IF
« il: Ottobre 20, 2020, 13:07 »
beh ... saresti più chiaro se comprendessi il codice nei campi ottenuti con il pulsante "pythoncode"
def profiliacciaio():
    profilo=int(input("Inserisci il tipo di profilo IPE in mm =  ")
          if profilo==80
              print(profilo)
una prima cosa che si nota subito sono i livelli di indentazione, oltre che la mancanza di una parentesi allo "input" e dei due punti nello "if", prova così :
>>> def profiliacciaio():
profilo = int(input('Inserisci il tipo di profilo IPE in mm = '))
if profilo == 80:
print(profilo)


>>> profiliacciaio()
Inserisci il tipo di profilo IPE in mm = 75
>>> profiliacciaio()
Inserisci il tipo di profilo IPE in mm = 80
80
>>>


[Edit] dimenticavo, non Ti da errore nella mancanza dei due punti allo if per la precedente mancanza della parentesi allo "int(input())", credo che il parser si attenda la fine dell'istruzione per la chiamata ad int e quindi "tarda" ad interpretare l'istruzione errata.

2
Documentazione / Re:tradurre la documentazione di Python?
« il: Ottobre 20, 2020, 09:05 »
Mi dispiace di non poter aiutare, data la mia ignoranza dell'inglese (il poco tempo è marginale), ma non posso fare a meno di lodare l'inizatiativa e ringraziare @RicPol per il Suo impegno, di cui ho già beneficiato scaricandomi il tutorial tradotto.

Ovvio che auguro successo al progetto, dato che ne beneficerei certamente, in ogni caso il ricostituirsi di una seppur minima "comunità" sarebbe un beneficio per tutti imho.

3
Esercizi / Re:Suggerimenti esercizio
« il: Ottobre 16, 2020, 11:40 »
Dopo tanto tempo, torno con un po' di codegolf  :devil:


my_func=lambda s:reduce(lambda q,c:(q[0]+(c.lower() if q[1] else c.upper()),not q[1]),list(s),("",True))[0]


Ah! Si chiama "Codegolf"? ... veramente interessante
questo su ho faticato un po' per capirlo e l'accorgimento "+['']" dell'ultimo non mi era mai venuto in mente
... ovviamente, mi astengo dal "tentar buca", compreso l'esempio di @caronte è codice border-line per me :)

4
Esercizi / Re:Suggerimenti esercizio
« il: Ottobre 14, 2020, 10:55 »
...sei solo una tartarughina, non hai molta memoria...

Azz! ... un semaforo piccolo piccolo? magari una carota ed una lattuga da mordicchiare sono permesse? :D

5
Esercizi / Re:Suggerimenti esercizio
« il: Ottobre 13, 2020, 13:16 »
Per questa problematica non devi ciclare sugli elementi ma sugli indici, dato che devi valutare il caso "pari" ed il caso "dispari".

Suggerimento : guarda la funzione builtin "range()"

[Edit] dimenticavo, guarda che "letter" è un singolo elemento, oltre tutto "stringa".

6
Benvenuto e regolamento / Re:Ciao a tutti + le solite domande
« il: Ottobre 11, 2020, 11:33 »
Ciao @Andrea, ben venuto.

Consigli da darTi personalmente non ne ho, tranne, forse, il suggerimento di studiare "per diletto" e poi, magari, se scorgi una direzione che Ti interessi, imboccarla ...

7
Base / Re:ricerca file che non ha estensione
« il: Ottobre 11, 2020, 11:27 »
...
Quindi come vedi è piuttosto fumosa la domanda "questo file ha un'estensione o no". Il mio interesse nella cosa era puramente didattico, per invitare l'OP a capire la necessità di definire in modo rigoroso i problemi, quando si vuole fare programmazione. Cioè, nel caso che, hai visto mai, l'OP fosse interessato a fare programmazione... eh.

Capisco, ed il Tuo è un ottimo invito, purtroppo, fin troppo spesso disatteso.

 :birrame:

8
Base / Re:ricerca file che non ha estensione
« il: Ottobre 10, 2020, 12:57 »
... forse l'OP può accontentarsi nel suo caso specifico, ma in generale il quesito non è questo.

Torno a ripetere... se un file si chiama "pippo.pluto.paperino", tu diresti che "paperino" è l'estensione del file? ...
No, certo che no.

E quindi? La domanda dell'OP ha dei risvolti interessanti, a ragionarci sopra.
Risvolti interessanti? Sicuramente!
Come è sicuro che si va "in confusione" tra estensioni, magic-number, meta-dati e quant'altro ;)
le modalità di riconoscimento delle tipologie dei files nei differenti sistemi operativi sono state "convenzioni" diciamo un po' "localizzate" dagli interessi del momento di alcune aziende ... non parliamo, poi, di tipi che usano disinvoltamente le "estensioni" pensando tantomeloleggosoloio  :D

Identificare correttamente le tipologie di files? Il discorso è interessante,c'è sempre molto da imparare.

Solo per restare nella limitata sfera delle "estensioni" già questa pagina di wikipedia da pallida idea di che lavoro "ci vorrebbe" per fare un lavoro di riconoscimento (ne mancano diverse a me "familiari") di sola valutazione di stringhe

 ... ed ora la domanda : quale è il Tuo intendimento con "risvolto interessante"?

9
Programmazione in rete - web / Re:Ho un problema con il file csv
« il: Ottobre 10, 2020, 12:19 »
poi "raw_input()"? Utilizzi una versione 2.x di python? Guarda che è fuori supporto.
Si sto utilizzando la versione 2.7.6 on linux2, usando il Raspberry.
Sul raspberry mi risultano girare diversi sistemi operativi, uno dei più diffusi è raspbian, appunto un sistema linux derivato dalla debian ... sui sistemi linux correnti normalmente girano contestualmente due versioni di python, la 2.7.x (in dismissione) e la 3.x.
Prova da shel a dare il comando "python3", vedi che Ti risponde, dovrebbe apriesi una shell python 3.x, se è così Ti consiglio caldamente di migrare in tale ambiente le Tue prove.



Il mio problema é di appendere il file in un ciclo for o if ...
E per ultimo. Come faccio a controllare se su quella data ci sono giá i dati presenti nel file out.csv?
Per es. i dati che vanno dal 01-09-2020 fino al 20-09-2020 ci sono giá nel file out.csv, non duplicarli.

Lasciamo perdere i vari input ed import di pandas, numpy, url, etc, trattiamo l'essenziale.
Stiamo trattando dei dati CVS, supponiamo files già "registrati" per semplicità, quindi del testo con stringhe disposte secondo un ben preciso ordine e con un separatore ben definito.
Dato che vuoi "unirli" è lecito supporre che tutti i files abbiano lo stesso schema dati, così come è lecito supporre che righe con date uguali abbiano gli stessi dati, dato che vuoi discriminare per data.
Siano file1.csv, file2.csv e file3.csv dei files dati scaricati che vogliamo raccogliere nel file "agosto.csv", supponiamo il tutto contenuto nella stessa directory, che abbia solo i csv interessanti.
sia questa la partenza :

NzP:~$ cat file1.csv
data;valore1;valore2;valore3
01-08-2020;9;12;10
02-08-2020;15;7;125
03-08-2020;10;10;5
04-08-2020;6;2;5
05-08-2020;8;9;11
NzP:~$ cat file2.csv
data;valore1;valore2;valore3
04-08-2020;6;2;5
05-08-2020;8;9;11
06-08-2020;11;10;8
07-08-2020;9;9;12
08-08-2020;13;9;11
NzP:~$ cat file3.csv
data;valore1;valore2;valore3
08-08-2020;13;9;11
09-08-2020;10;11;11
10-08-2020;11;12;14
11-08-2020;12;15;16
12-08-2020;14;12;7
NzP:~$ cat agosto.csv
data;valore1;valore2;valore3
01-08-2020;9;12;10
02-08-2020;15;7;125
NzP:~$

apriamo una shell python, ci spostiamo nella direttrice e leggiamo i files presenti :

Python 2.7.17 (default, Jul 20 2020, 15:37:01)
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license()" for more information.
>>> import os
>>> import glob
>>> os.chdir('test/pyt/valentina')
>>> f_csv = glob.glob('*')
>>> f_csv
['agosto.csv', 'file3.csv', 'file1.csv', 'file2.csv']

il risultato di glob() non è ordinato, supposto che i nomi dei files siano progressivi conformemente ai dati ordiniamo e definiamo la destinazione

>>> f_csv.sort()
>>> f_csv
['agosto.csv', 'file1.csv', 'file2.csv', 'file3.csv']
>>> f_dest = 'agosto.csv'

consideriamo che dobbiamo verificare, per ogni singolo file che ogni singola riga dati sia contenuta o meno nel file di destinazione, dovremo quindi conoscere il contenuto della destinazione, che cambia ad ogni aggiunta, e scartare ciò che è già presente, aggiungere il resto ... si potrebbe fare così

>>> for f in f_csv:
if not f == f_dest:
with open(f_dest, 'r') as fd:
data = fd.read()
with open(f, 'r') as new:
rows = new.read().splitlines()
fd = open(f_dest, 'a')
for r in rows:
if not r in data:
fd.write(r+'\n')
fd.close()


>>>

ed avremo :

NzP:~$ cat agosto.csv
data;valore1;valore2;valore3
01-08-2020;9;12;10
02-08-2020;15;7;125
03-08-2020;10;10;5
04-08-2020;6;2;5
05-08-2020;8;9;11
06-08-2020;11;10;8
07-08-2020;9;9;12
08-08-2020;13;9;11
09-08-2020;10;11;11
10-08-2020;11;12;14
11-08-2020;12;15;16
12-08-2020;14;12;7
NzP:~$

... ovviamente, questo è un metodo proprio elementare, di base, destinato a perdere "efficienza" di fronte a grosse quantità di dati cui farebbe pensare il pandas nei Tuoi import ma "potrebbe" funzionare "se" i presupposti ipotizzati sono giusti, non si sa, al momento, la situazione.

Certo la documentazione di pandas potrebbe dare idee migliori ... ma il tono del post mi fa pensare opportuno suggerire questa lettura, credo molto utile.

Ciao

10
Base / Re:ricerca file che non ha estensione
« il: Ottobre 09, 2020, 13:00 »
...E infatti la ricettina gentilmente fornita è... beh, molto dubbia... guarda caso.

Su questo non ci piove, non per niente vi era un "probabilmente" tra parentesi :)

Comunque, in mancanza di un punto, di certo estensione non c'è (che sarebbe il quesito posto) ... più interessante, certamente, sarebbe la problematica inversa, ossia : riconoscere il tipo di file in assenza di estensione, faccenda che, a volte, mi è capitata, utilizzando un s.o. nel quale le estensioni non sono, poi, significative ... non mi sono ancora posto 'sto specifico problema in python ;)

[Edit] ... faccenda su cui, python, sembra piuttosto amichevole, devo dire
>>> import os
>>> import magic
>>> os.chdir('my_tmp/da_masterizzare/modelli_vari')
>>> mime = magic.Magic(mime=True)
>>> mime.from_file('Testata_bilancio')
'application/vnd.oasis.opendocument.text'
>>>

Il file è stato riconosciuto correttamente.

11
Programmazione in rete - web / Re:Ho un problema con il file csv
« il: Ottobre 09, 2020, 12:43 »
Cia @Valentina, ben venuta

Un po' confuso il Tuo post, utilizza il pulsante "pythoncode" dell'editor per formattare il codice ... poi "raw_input()"? Utilizzi una versione 2.x di python? Guarda che è fuori supporto.

...
Il mio problema che sto riscontrando è che avrei bisogno che questi dati siano di un mese o un anno, ho bisogno di appendere più file CSV.
Come ho fatto io, non riesce a scaricarlo, evidentemente è a causa del server e mi è stato dato questo task.
Allora come posso appende il file csv creato in precedenza con un altro file csv nell'altro senza cambiare quello che è stato scritto prima con una nuova data? Per es. mi scarica 01-03-2020 fino a 20-03-2020, appendo l'altro file che va dal 21-03-2020 al 30-03-2020 e cosí via... cosí che posso avere un file csv con i dati all'interno che vanno dal 01-03-2020 fino al 30-09-2020 quindi sono 6 mesi.

Dalla parte evidenziata, mi sembra di comprendere che il Tuo problema sia, essenzialmente, di appendere dei dati in input ad un file esistente, per far ciò, supposto sia del testi e di aprire il file di destinazione tramite la funzione builtin "open" è sufficiente aprirlo in scrittura utilizzando il suffisso "a", che, citando :
Citazione
'a' - open for writing, appending to the end of the file if it exists

quindi, supposto sia "miofile" la destinazione :
>>> f = open('miofile', 'a')
>>> f.write('Apelle figlio di Apollo')
23
>>> f.write('fece una palla di pelle di pollo')
32
>>> f.close()
....
da terminale il risultato sarebbe
NzP:~$ cat miofile
Apelle figlio di Apollofece una palla di pelle di polloNzP:~$

12
Base / Re:ricerca file che non ha estensione
« il: Ottobre 09, 2020, 11:58 »
Scusami non capisco come dovrei procedere, mi puoi fare un esempio?

Il buon @Ric Ti stava invitando a pensarci un po' su : cosa è che caratterizza una "estensione"? ... se proprio non viene in mente, basterebbe una breve ricerca, in wikipedia troviamo :
Citazione
'estensione di un file, in ambito informatico, è un suffisso, ovvero una breve sequenza di caratteri alfanumerici (tipicamente tre), posto alla fine del nome di un file e separato dalla parte precedente con un punto, attraverso il quale ...
Quindi, in presenza di una estensione, dovrebbe esserci almeno un punto!

Giacché sono meno buono di @RicPol (se ci arrivi da Te Ti fa un gran bene) Ti ho preparato un esempio come richiesto. Posizionato in una direttrice con delle sub-directory così fatte :
NzP:~$ tree
.
├── mand_fuori_gest
│   ├── mand_14_2019_lettera.pdf
│   ├── mand_14_2019.pdf
│   ├── rev_12_13_lettera.pdf
│   ├── rev_12_2019
│   ├── rev_13_2019.pdf
│   ├── rev_14_2019.pdf
│   ├── rev_14_lettera_copia.pdf
│   ├── rev_14_lettera.pdf
│   ├── riepilogo_mand.pdf
│   └── riepilogo_rev.pdf
└── modelli_vari
    ├── incontro_2
    ├── incontro.doc
    ├── incontro.odt
    ├── nuovo_logo.png
    ├── nuovo_modello_carta_intestata.odt
    ├── nuovo_modello_ferie.odt
    ├── nuovo_modello_lettera_2.odt
    ├── nuovo_modello_lettera_3.odt
    ├── nuovo_modello_lettera_4.odt
    ├── nuovo_modello_lettera.odt
    ├── nuovo_modello_lettera.pdf
    ├── Testata_bilancio
    └── uso_mezzo_proprio.pdf

2 directories, 23 files

Se scorri i file, vedi che ve ne sono tre privi di estensione, per tirarli fuori non dobbiamo far altro che dividere il nome del file tramite il punto con split e, se gli elementi sono più di uno avremo (probabilmente) una estensione
>>> for cartella, sottocartella, files in os.walk(os.getcwd()):
for f in files:
if len(f.split('.')) == 1:
print(f)


rev_12_2019
incontro_2
Testata_bilancio
>>>

13
Mondo Python / Re:Python 3.9 è tra noi
« il: Ottobre 07, 2020, 13:18 »
Oh! beh ... ed io che ero tanto contento di aver "finalmente" raggiunto lo 8.2 quale standard su linux  :confused: Comunque, poco male, anche se fosse lo 3.0 sarei comunque "indietro" ;)

Interessante info e, come sempre, bello il Tuo articolo, si vede che il Tuo scrivere, come il vino, migliora nel tempo :)

14
Base / Re:PROBLEMA CON ESERCIZIO LISTE
« il: Ottobre 05, 2020, 08:55 »
Lasciando perdere il "Cifrario di Cesare" (non mi aveva nemmeno fiorato l'idea potesse essere un tentativo di criptazione), trovo molto interessante
... può essere utile sapere che questa classe di problemi, dove si devono fare calcoli su un anello, si chiama "aritmetica modulare" (modulare... modulare... modulare viene da "modulo"... questo è un suggerimento).

... non avevo mai sentito parlare di "aritmetica modulare", una brevissima ricerca me ne rivela la semplicità, applicata alla problematica sopra :
>>> lessico = 'abcdefghijklmnopqrstuvwxyz'
>>> lessico += lessico.upper()
>>> lessico
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> def circular_traslate(text, step):
my_text = ''
for c in text:
if c in lessico:
index = (lessico.index(c) + step) % len(lessico)
my_text += lessico[index]
else:
my_text += c
return my_text

>>> circular_traslate('telefono', 7)
'Alslmvuv'
>>> circular_traslate('Alslmvuv', -7)
'telefono'
>>> circular_traslate('Zichichi', 4)
'dmglmglm'
>>> circular_traslate('dmglmglm', -4)
'Zichichi'
>>>


argomento interessante indipendentemente dal problema dello OP ... non ho cercato eventuali "moduli" in merito, se avrò tempo lo farò, magari vi sono "ordini" di problematiche che trascendono una tale "semplicità".

Ciao :)

15
Base / Re:PROBLEMA CON ESERCIZIO LISTE
« il: Ottobre 01, 2020, 08:00 »
Guarda, io la prima parte l'avevo scritta così:
...
Perché l'esercizio specificava di usare delle liste

Ok, liste allora, qualche suggerimento :
Il ciclo di input che utilizzi funziona ma è macchinoso, al di la dell'esercizio in se; puoi evitare di dover impostare tanto la lunghezza della stringa da inserire quanto inserimenti continuativi delle singole lettere se consideri la funzione builtin "list()" che, come puoi vedere dalla docs in link, restituisce una lista da un iterabile, come già indicato le stringhe sono iterabili e la lunghezza di una lista può essere ottenuta, se serve, attraverso la funzione builtin "len()"
>>> word = input('Inserisci solo lettere che vanno da A a Z : ')
Inserisci solo lettere che vanno da A a Z : Apelle
>>> parola = list(word)
>>> parola
['A', 'p', 'e', 'l', 'l', 'e']
>>> len(parola)
6
>>>


... poi, suggerirei un piccolo accorgimento, Nel prompt del Tuo input indichi l'intervallo "A - Z" ma le lettere minuscole sono "diverse" dalle lettere maiuscole
>>> 'a' == 'A'
False
>>> 'a' > 'A'
True
>>>

tienilo presente per evitare confusione, quando arriverai alle stringhe leggi i metodi "upper()" e "lower()" della classe.

Ciao :)

Pagine: [1] 2 3 ... 23