Sì, grazie. Solitamente uso software CAS ma non sono ottimi per calcoli numerici.
> Il giorno 26 mag 2021, alle ore 09:22, Yuri <y...@alfa.it> ha scritto: > > I set di python servono per operazioni comuni, ma non sono una > implementazione matematica degli insiemi. Forse SimPy è quello che cerchi? > > https://docs.sympy.org/latest/modules/sets.html#compound-sets > > Il 25/05/21 21:30, Bruno Firmani ha scritto: >> Grazie Federico, >> ma a me sembra una lacuna. Forse uso abitualmente software CAS. >> >> Ciao >> Bruno >> >>>> Il giorno 25 mag 2021, alle ore 19:45, Federico Cerchiari >>>> <federicocerchi...@gmail.com> ha scritto: >>> >>> >>> Ciao Bruno, >>> >>> questo comportamento dell'interprete deriva dal fattto che in ss1 ed ss3, >>> nel momentto in cui True viene inserito nel set, è già presente un oggetto >>> con "valore" 1 nello stesso set. >>> Questo perchè i set (come le chiavi dei dizionari) sono collezioni di >>> "hashabili", gli hashabili sono oggetti di cui può essere calcolatto >>> l'hash, e l'hash è un numero intero che identtifica il "valore" >>> dell'oggetto. >>> >>> In questo caso, sia "True" che "1" hanno hash di valore 1: >>> >>> hash(True) >>> 1 >>> >>> hash(1) >>> 1 >>> >>> hash(True) == hash(1) >>> True >>> >>> True == 1 >>> True >>> >>> Entrambi True e 1 "valgono" 1, al momento dell'inserimento in un insieme, >>> Python fa questo ragionamento: "esiste già un elemento che "vale" come >>> questo?", e in ss1 ed ss3, la risposa è sì. Lo stesso vale in entrambi i >>> versi: >>> >>> { 1 , True } >>> {1} >>> >>> { True, 1 } >>> {True} >>> >>> Il comportamento è un false friend, ma deriva da come è implemenato il >>> metodo __hash__ alla base dell'interprete. Lo setsso vale per False e 0: >>> >>> { False, 0 } >>> {False} >>> >>> I due bool, ed 1 e 0, hanno lo stesso "valore" per l'interprete, pur >>> essendo "cose" diverse: >>> >>> True is 1 >>> False >>> >>> Ciao >>> Federico >>> >>>> Il giorno mar 25 mag 2021 alle ore 19:27 Bruno Firmani >>>> <firmanibr...@gmail.com <mailto:firmanibr...@gmail.com>> ha scritto: >>> >>> Buonasera, >>> sto incontrando questa difficoltà. >>> >>> Sto imparando. >>> >>> Alle istruzioni: >>> >>> ss0 = { 2<=2 , 5 >= 3 } >>> ss1 = { 1 , 2 , 3 , 4 , '4' , '5' , 'a' , 'b' , 'c' , 3 , '3' , 4 >>> , '4' , False , 2<=2 , 5 >= 3 } >>> ss2 = { 1 ,11 , 'a' , 'ab' , 'abc' } >>> ss3 = { 1 , 2 , 3 , 2 , 3 , 3 , 'a' , 'b' , 'c' , 'b' , 'c' , 'c' >>> , False , 2<=2 , 5 >= 3 } >>> >>> print('ss0 = ' , ss0) >>> print('ss1 = ' , ss1) >>> print('ss2 = ' , ss2) >>> print('ss3 = ' , ss3) >>> >>> ottengo come risposta: >>> >>> ss0 = {True} >>> ss1 = {False, 1, 2, 3, 4, '5', '3', 'b', 'c', '4', 'a'} >>> ss2 = {1, 'abc', 11, 'ab', 'a'} >>> ss3 = {False, 1, 2, 3, 'b', 'c', 'a'} >>> >>> >>> In "ss0" compare "True" che invece non viene evidenziato in "ss1" >>> e in "ss3". >>> Non so spiegarmi questo fenomeno. >>> >>> Cordiali saluti >>> Bruno Firmani >>> >>> >>> >>> >>> >>> Bruno Firmani >>> Via Giannantonio Manci 5 - 39100 BOLZANO >>> e.mail firmanibr...@gmail.com <mailto:firmanibr...@gmail.com> >>> mlbf1...@gmail.com <mailto:mlbf1...@gmail.com> >>> tel. +39 338 5721755 (cellulare) >>> fax +39 02 70039544 >>> _______________________________________________ >>> Python mailing list >>> Python@lists.python.it <mailto:Python@lists.python.it> >>> https://lists.python.it/mailman/listinfo/python >>> <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 > _______________________________________________ > 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