Re: [Python] calcolo scientifico

2020-02-25 Per discussione Lorenzo Buonanno
Non c'è bisogno di scriversi `deg2rad` e `rad2deg`: ci sono già nel
(decisamente ricco) modulo `math` della libreria standard, coi nomi
`math.radians` e `math.degrees`

https://docs.python.org/3.8/library/math.html#angular-conversion

Tra l'altro segnalo a tutti che ci son tante belle nuove aggiunte in
python3.8, in particolare `math.dist`, `math.comb` e `math.isqrt`
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] calcolo scientifico

2020-02-21 Per discussione Lorenzo Buonanno
convertono l'angolo → dividono l'angolo

sono molto standard → non sono molto standard

Scusate
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] calcolo scientifico

2020-02-21 Per discussione Lorenzo Buonanno
Ciao! Con "gradi decimali" immagino che intendi i "gradi centesimali", che
convertono l'angolo retto per 100, le operazioni di python di default usano
i "radianti" (dividono l'angolo piatto per pigreco).

I gradi centesimali sono molto standard, quindi python non ha funzioni
built-in per convertire i radianti, ma è immediato scriverne una

>>> import math
>>> def radian_to_cent(angle: float) -> float:
... return angle * 200 / math.pi
...
>>> radian_to_cent(math.asin(0.83))
62.714
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Un chiarimento sulla sintassi dell'Help integrato.

2020-02-19 Per discussione Lorenzo Buonanno
Lo / alla fine degli argomenti indica che sono solo posizionali: non
possono essere passati come keyword

https://www.python.org/dev/peps/pep-0570/
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Iterare in una lista.

2020-02-17 Per discussione Lorenzo Buonanno
Ritiro tutto: per liste grosse il costo di calcolare (in python) a ogni
iterazione `(i + base) % len` è molto maggiore del costo di creare una sola
volta all'inizio la nuova lista:

In python3.8:
>>> import timeit
>>> setup = """def function1(lista, base):
... s = 0
... for e in lista[base:]+lista[:base]:
... s += e
... return s
...
... def function2(lista, base):
... s = 0
... l = len(lista)
... for i in range(l):
... s += lista[(i + base) % l]
... return s
...
... lista = list(range(10**6))
... base = 424_242
... """

>>> timeit.timeit("function1(lista, base)", setup=setup, number=500)
33.3623988628


>>> timeit.timeit("function2(lista, base)", setup=setup, number=500)
66.6768571770001


In pypy3 7.3.0

 timeit.timeit("function1(lista, base)", setup=setup, number=500)
3.72352198076
 timeit.timeit("function2(lista, base)", setup=setup, number=500)
9.05015236352
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Iterare in una lista.

2020-02-16 Per discussione Lorenzo Buonanno
Se k<=n, O(n+k) <= O(2n) che è == O(n)

In particolare il tempo necessario a stampare tutti gli elementi con print
(o a farci qualsiasi cosa di non estremamente banale) sarà molto maggiore
del tempo necessario a creare la nuova lista.

Mi aspetterei anch'io che la soluzione di cm sia più efficiente per liste
molto grosse (e usi meno memoria). Ma nel 99% dei casi mi sa che la
stragrande maggioranza del tempo si passa dentro il for, e le differenze
misurate non siano davvero significative

On Mon, Feb 17, 2020, 08:45 Pietro Brunetti  wrote:

>
>> Le differenze non sono sostanziali, ma la prima è leggermente più
>> efficiente
>>
>
> Ciao a tutti,
> trovo l'approccio di cm formalmente corretto "iterate lungo una lista" e
> non "create una lista".
>
> Per cm O(n) per l'altra funzione O(n+k), perché non solo itera ma anche
> estende.
>
> Basta dare una occhiata a questo, poi
>
> https://wiki.python.org/moin/TimeComplexity
>
> Adesso, il timeit mi contraddice. C'è qualche ottimizzazione dietro? Ho
> ragionato male? Bisogna provare con liste più "enormi"? Non so.
>
> Ciauz
> Pietro
>
>> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta di aiuto

2020-02-11 Per discussione Lorenzo Buonanno
Prova a mandare il codice che hai provato a usare!

Probabilmente stai facendo qualcosa del tipo:

numero = input("inserisci numero: ")
print(numero * 3)

Il risultato della funzione "input" è sempre una stringa (una sequenza di
caratteri), non un numero. Per far interpretare la stringa come numero, è
necessario usare la funzione int

caratteri_letti = input("inserisci numero: ")
numero = int(caratteri_letti)
print(numero * 3)
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Iterare fra le chiavi di un dizionario.

2020-02-11 Per discussione Lorenzo Buonanno
Un sorted dict potrebbe essere interessante,
http://www.grantjenks.com/docs/sortedcontainers/sorteddict.html rispetto a
un OrderedDict è ordinato per valore delle chiavi, non per ordine di
inserimento
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ordered dict.

2020-01-31 Per discussione Lorenzo Buonanno
Da python 3.6 i normali dict sono ordinati, ma puoi usare ancora gli
OrderedDict per scrivere codice che funzioni sulle diverse versioni e
espliciti il fatto che fai affidamento sul fatto che l'ordinamento sia
mantenuto

On Fri, Jan 31, 2020, 21:32 Gabriele Battaglia  wrote:

> Sera.
> Quello che in Python 2 si faceva per poter utilizzare i dizionari ordinati:
>
> from collections import OrderedDict
> Immagino sia cambiato, in Python 3.
> Ora come funziona? C’è un metodo da chiamare affinché gli elementi
> aggiunti restino nell’ordine d’entrata oppure si fa in qualche altro modo?
> Grazie.
>
> Gabry.
> —
> Namasté!
> Sent from Starship iMac27, Captain Battaglia
> I Z 4 A P U @ L I B E R O . I T
> --
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta chiarimento su SyntaxWarning

2020-01-13 Per discussione Lorenzo Buonanno
>
> Misteri pythonici!
>

Un elenco di comportamenti buffi dell'interning automatico delle stringhe
in cpython

https://github.com/satwikkansal/wtfpython/blob/master/README.md#-strings-can-be-tricky-sometimes


Con spiegazioni e un link al fatto che interna stringhe che matchano
[a-zA-Z0-9_]*
https://github.com/python/cpython/blob/3.8/Objects/codeobject.c#L23

>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Generare Screenshot automatici per pagine web

2019-09-26 Per discussione Lorenzo Buonanno
Puoi provare pyppetteer con Chrome headless, non dovrebbe aprire finestre

On Thu, Sep 26, 2019, 11:43 Lorenzo Macchiavelli 
wrote:

> Buongiorno Lista,
>
> qualcuno potrebbe consigliarmi un *modulo* di python semplice,
> per *generare* degli *screenshot *automatici di pagine web?
>
> Ho provato *ChromeDriver*, ma mi sembra troppo macchinoso..
> dato che dovrei usarlo in un cron job che parte più volte al giorno,
> non vorrei finestre che si aprono..
>
> Qualche idea?
>
> Grazie
>
> Lorenzo Macchiavelli
> *Web Designer - Media Developer *
>
> *Tel*: 349 3411955 *Mail*: lmacchiave...@gmail.com
> *Linkedin*: https://www.linkedin.com/in/macchiavelli/
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Convertire netmask in CIDR

2019-09-13 Per discussione Lorenzo Buonanno
Primo risultato cercando "netmask to cidr in Python"

https://stackoverflow.com/questions/38085571/how-use-netaddr-to-convert-subnet-mask-to-cidr-in-python

On Fri, Sep 13, 2019, 11:56 Lorenzo Mainardi  wrote:

> Qualcuno di voi ha idea se è possibile convertire una netmask in una CIDR
> con il modulo built-in ipaddress?
>
> Mi farebbe comodo convertire 255.255.255.255 -> 32 oppure 255.255.255.0 ->
> 24
>
> è facile da implementare, ma magari c'è già un metodo e non voglio
> reinventare la ruota.
>
> --
> LORENZO MAINARDI
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] genere (maschile o femminile) di un nome di persona

2019-08-13 Per discussione Lorenzo Buonanno
Per estrarre informazioni dal codice fiscale avevo buttato giù questo gist
un po' di tempo fa
https://gist.github.com/Recursing/a81b74595f04324dcd82aeb2cbb3469c

Spero sia corretto e possa tornare utile

On Tue, Aug 13, 2019, 12:18 Ricc63  wrote:

> Grazie. Ottimo db.
> Cmq penso di adottare ad altra soluzione per definire il sesso del
> dichiarante: dal codice fiscale. L'algoritmo è banale. Cmq ringrazio tutti
> per i suggerimenti dati.
>
> Inviato da BlueMail 
> Il giorno 13 ago 2019, alle ore 09:50, Carlo Miron  ha
> scritto:
>>
>> Il giorno mar 13 ago 2019 alle ore 09:32 Riccardo mancuso
>>  ha scritto:
>>
>>>
>>>  mi sembra che valga solo per nomi stranieri...
>>>
>>
>> No, il [database][] è decisamente multilingua. Vedi il caso "Andrea",
>> che è maschile per l'italia con peso 7, e femminile quasi ovunque
>> altrove.
>>
>> [database]: 
>> https://raw.githubusercontent.com/lead-ratings/gender-guesser/master/gender_guesser/data/nam_dict.txt
>>
>> ㎝
>>
>> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] genere (maschile o femminile) di un nome di persona

2019-08-12 Per discussione Lorenzo Buonanno
Io userei liste di nomi che trovi su internet (e.g.
https://it.m.wikipedia.org/wiki/Prenomi_italiani_%28A-L%29 per i nomi
italiani, ma in Italia c'è tanta gente con nomi stranieri, quindi
andrebbero usate anche quelli, almeno per i più comuni)

Dovrebbe coprire il 99% dei casi, per gli altri userei una forma neutra che
comunque devi considerare per i nomi promiscui (come Andrea)

On Tue, Aug 13, 2019, 00:18 Riccardo mancuso 
wrote:

> Ciao a tutti,
> a partire del nome della persona (sia esso maschile che femminile) devo
> cercare di definirne il genre, in modo che in fase di realizzazione di un
> format, si possa sostituire la classica dicitura (utilizzata nel genere
> maschile):
>
> "Il sottoscritto Pinco Pallino nato a ."
>
> piuttosto (se di genere femminile)
>
> "La sottoscritta Pinca Pallina nata a ."
>
> Come si potrebbe fare ?
> In prima approssimazione i nomi di persona femminili terminano tutti in a
> (Maria, Simona, Laura, Antonella, Giuseppina, Valentina, Teresa, Anna,
> Luisa, Marika, Giovanna, Vincenza, Katia, Elena, Eleonora, Felicia,  ecc.)
> ma ci sono anche casi speciali (tipo Marisol, Sharon, Giusy).
> Quindi l'idea è quella di considerare femminile tutti i nomi che terminano
> con "a" e poi inserire i casi speciali.
> Altri suggerimenti ?
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] problemi di importazione modulo python

2019-08-12 Per discussione Lorenzo Buonanno
https://www.twitter.com/raymondh/status/968634031842603008

In generale credo sia meglio usare "python3 -m pip" al posto di "pip", così
è più chiaro che versione di python si usa.

Anche usare virtual environments per gestire le dipendenze a livello di
progetto invece che di sistema o di utente è spesso molto comodo, e più
semplice di quel che sembra!
https://docs.python.org/3/tutorial/venv.html


On Tue, Aug 13, 2019, 00:08 Riccardo mancuso 
wrote:

> si. il problema era questo: pyexcel richiede python 3.5 mentre l'IDE aveva
> impostato di default python 2.7
> Grazie a tutti per le risposte
>
> Il giorno lun 12 ago 2019 alle ore 19:20 Gollum1 <
> gollum1.smeag...@gmail.com> ha scritto:
>
>> sistema operativo, versione di python, versione di pip e versione di
>> ipython.
>>
>> non è che hai un miscuglio di python 2 e python 3?
>> byez
>> --
>> gollum1
>>
>> Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e
>> gli errori, maledetto correttore automatico.
>> ___
>> Python mailing list
>> Python@lists.python.it
>> https://lists.python.it/mailman/listinfo/python
>>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Ricerca e sostituzione con regex

2019-06-16 Per discussione Lorenzo Buonanno
Prova una cosa come

import re
first_substitution = re.sub(r"\$\$(.*?)\$\$", r"\[\1\]", input_text,
flags=re.S)
final_text = re.sub(r"\$(.*?)\$", r"\(\1\)", first_substitution, flags=re.S)

On Sun, Jun 16, 2019 at 3:50 PM Daniele Zambelli 
wrote:

> Il giorno dom 16 giu 2019 alle ore 14:06 Giovanni Vittorio Spina
>  ha scritto:
> >
> > Ponendo ad esempio
> > a = " pippo $$"
> >
> > Si può avere il testo corretto con il seguente comando
> > b = a.replace(“$$<“,  "\\[<“).replace(“>$$”, “>\\]").replace(“$<”,
> “\\(<”).replace(“>$”, “>\\)”)
>
> Grazie per le indicazioni, però non mi sono spiegato bene. Con
> "" intendevo una qualunque formula matematica LaTeX:
>
> Il testo da modificare potrebbe essere:
>
> \begin{definizione}
> $$
> m \times n = \begin{cases}
>  0 & se \quad n = 0\\
>  m & se \quad n = 1\\
>  \underbrace{m + m + \dots + m}_{\text{n volte}} & \mbox{ negli altri casi}
> \end{cases}$$
> \end{definizione}
>
> \begin{itemize*}
>  \item \emph{Commutativa}: $a \cdot b = b \cdot a$
>  \item \emph{Associativa}: $(a \cdot b) \cdot c = a \cdot (b \cdot c)$
>  \item \emph{Elemento neutro} $a \cdot 1 = 1 \cdot a = a$
> \end{itemize*}
>
> \begin{definizione}
> Dati due numeri naturali~$m$ e~$n$, con~$n \neq 0$, la divisione associa
> un terzo numero naturale~$q$, se esiste, che moltiplicato per ad~$n$ dà
> come prodotto~$m$.
> Si scrive~$n : m = q$.
> \end{definizione}
>
> e dovrebbe diventare:
>
> \begin{definizione}
> \[
> m \times n = \begin{cases}
>  0 & se \quad n = 0\\
>  m & se \quad n = 1\\
>  \underbrace{m + m + \dots + m}_{\text{n volte}} & \mbox{ negli altri casi}
> \end{cases}\]
> \end{definizione}
>
> \begin{itemize*}
>  \item \emph{Commutativa}: \(a \cdot b = b \cdot a\)
>  \item \emph{Associativa}: \((a \cdot b) \cdot c = a \cdot (b \cdot c)\)
>  \item \emph{Elemento neutro} \(a \cdot 1 = 1 \cdot a = a\)
> \end{itemize*}
>
> \begin{definizione}
> Dati due numeri naturali~\(m\) e~\(n\), con~\(n \neq 0\), la divisione
> associa
> un terzo numero naturale~\(q\), se esiste, che moltiplicato per ad~\(n\) dà
> come prodotto~\(m\).
> Si scrive~\(n : m = q\).
> \end{definizione}
>
> Quindi dovrei identificare una coppia di coppie di dollari e
> trasformare la prima con la stringa: "\[" e la seconda con la stringa
> "\]":
>
> $$a^2=b^2+c^2$$   --->   \[a^2=b^2+c^2\]
> e
> $5+7=12$   --->   \(5+7=12\)
>
> È per questo che pensavo fosse più un lavoro da espressioni regolari
> che da semplice sostituzione.
>
> Grazie.
>
> --
>
> Daniele
>
> www.fugamatematica.blogspot.com
>
> giusto!
> nel verso
> forse è perché non guardiamo le cose
> Quando non ci capiamo,
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] soluzione con modulo itertools

2018-05-04 Per discussione Lorenzo Buonanno
Usa ['n1', 'n2', 'n3', 'n4'] al posto di 'abcde'.

Tieni presente che con product ti becchi anche ['n1', 'n1', 'n1', 'n1'],
forse vuoi usare permutations(lista, r=4)


On Fri, May 4, 2018, 19:31 Carpediem  wrote:

> Buonasera a tutti,
>
> oggi stavo cercando una soluzione per risolvere un problema che a farlo
> manualmente mi ha portato via molto tempo lasciandomi anche il dubbio
> che tutto sia ok: ho 5 nomi che devo incrociare tra loro prendendone 4
> alla volta. Le combinazioni buone sono tutte quelle possibili per cui,
> ad esempio, nome1, nome2, nome3, nome4 è cosa diversa da nome1, nome2,
> nome4, nome3 e così via.
>
> In rete ho trovato qualcosa che riguarda il modulo itertools che si
> avvicina molto al risultato che voglio ottenere:
>
> from itertools import product
> combo_pack = product("abcde", repeat = 4)
> for combo in combo_pack:
> print ("".join(combo))
>
> il risultato è l'incrocio di ognuna delle singole lettere prese quattro
> per volta escludendo di volta in volta la quinta lettera.
>
> La domanda è la seguente: come faccio ad ottenere lo stesso risultato
> chiedendo di incrociare non le 5 lettere di una singola stringa ma le 5
> stringhe di cui vi parlavo?
>
> Grazie.
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Exception Value: , , can't compare datetime.datetime to datetime.date

2018-03-27 Per discussione Lorenzo Buonanno
L'eccezione mi sembra abbastanza chiara, stai confrontando una date (che
contiene solo giorno mese e anno) con un datetime (che contiene giorno mese
anno ora minuto secondo e se ben ricordo millisecondi)
Siccome non sa che orario usare per la date lancia un errore

A seconda di quello che vuoi fare puoi convertire il datetime in date
(perdendo informazione sull'orario) o la date in datetime (assegnandole un
o certo orario, di default 00:00:00)

On Tue, Mar 27, 2018, 20:30 Francesco Bonanno  wrote:

> Ciao
>
> non riesco a trappare l'eccezione in oggetto.
>
> Django 2.03, Python 3.6.4, env linux ubuntu 16.04
>
> questa è la funzione:
>
> def azioni_recenti(self)
>
>  adesso = timezone.now()
>
>  return adesso - datetime.timedelta(days=1) <= self.data <= adesso #
> qua scaturisce l'eccezione
>
>
> data è definito come DateTimeField
>
> ho importato datetime e timezone da Django.utils
>
> Suggerimenti?
>
> Franky
>
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Lavorare con le matrici.

2017-10-21 Per discussione Lorenzo Buonanno
Consiglio anch'io numpy e ne approfitto per condividere il classico
trucchetto per ruotare matrici in python

rotated = zip(*original)

Oppure
rotated = zip(*reversed(original))

Per shiftare può essere comodo numpy.roll oppure deque.rotate nella
libreria standard, mi sembra

On Oct 21, 2017 14:42, "Gabriele Battaglia"  wrote:

> Buongiorno. Che modulo consigliereste ad un principiante, per iniziare a
> 'lavorare' con le matrici numeriche? Matrici intendo bi o tridimensionali.
> R_ora ottengo le bidimensionali annidando delle liste, ma immagino ci siano
> modi più agili. Ad esempio se volessi 'shiftare ' l'intero contenuto di una
> matrice, oppure ruotarlo, lavorare con le liste sarebbe lunghissimo, lento
> e scomodo.
> Gabriele.
>
> Inviato da Gabryphone 7 Plus.
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] [PyConIT] Follow-up Beginners' Day e CoderDojo

2017-04-16 Per discussione Lorenzo Buonanno
> Il giorno mer, 12/04/2017 alle 12.28 +, Massimiliano della Rovere
> ha scritto:
> > io sarei interessato a dare una mano a Pisa. Conoscete altri
> > pythonisti pisani che potrebbero voler collaborare? (io non ne
> > conosco).
> >
>
> Con il GULP (LUG pisano, http://gulp.linux.it/ ) abbiamo fatto un corso
> introduttivo a Python un paio di anni fa, per maggio prossimo abbiamo
> in programma un seminario su Python per analisi dei dati (dettagli da
> definire) e siamo apertissimi ad altre iniziative/collaborazioni del
> genere.
>
> (Poi passiamo pure in privato, ma volevo segnalare la cosa ad eventuali
> altri pisani in lista)
>
> ciao,
>
> Pietro

Mi unisco ai pythonisti pisani che potrebbero voler collaborare.

Penso possa essere molto interessante far partire una community a Pisa
(magari in collaborazione col GULP) per training sessions, hackaton, o
portare avanti progetti più o meno seri


Ciao a tutti e buona Pasqua,
Lorenzo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python