Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Slicing in Python

Linguaggi e sistemi

Moderatori: Foto UtenteMassimoB, Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[11] Re: Slicing in Python

Messaggioda Foto Utenteboiler » 14 gen 2024, 13:37

djnz ha scritto:Python è a tipizzazione forte

Ancora troppo debole per i miei gusti :mrgreen: (C# for the win!)

per cui la somma di una stringa con un intero è un errore (non ci sono conversioni "euristiche" implicite). L'equivalente sarebbe usare un oggetto dizionario con una conversione esplicita:

Codice: Seleziona tutto
my_dict["sequenza" + str(i)] = ...


Mentre scrivevi ho realizzato proprio una cosa simile in C# per mostrare a luxinterior come funziona un linguaggio serio :ok:
Per inciso, la conversione da numero a stringa è una delle poche che in C# sono ammesse implicitamente :lol:

Codice: Seleziona tutto
using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class DemoForLuxinterior
{
    public static void Main(string[] args)
    {
        Dictionary<string,string> dict = new Dictionary<string,string>();
       
        for (int i = 0; i < 10; i++)
        {
            dict.Add("sequenza" + i, (i%2==0)?"pari":"dispari");
        }
       
        string JsonData = JsonConvert.SerializeObject(dict);
       
        Console.WriteLine(JsonData);
    }
}

Sono piú di 20 caratteri perché è completo e compilabile (puoi provarlo qui senza bisogno di installare VisualStudio: https://dotnetfiddle.net/)

Come dicevo è compilabile e fa esattamente quello che ci si aspetta faccia, non c'è l'opzione di interpretare in modo fantasioso i comandi. E anche senza conoscere C#, è leggibile e comprensibile da chiunque abbia lavorato una volta in vita sua con una lingua nata dopo Pascal.

Boiler
Avatar utente
Foto Utenteboiler
22,9k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 4699
Iscritto il: 9 nov 2011, 12:27

0
voti

[12] Re: Slicing in Python

Messaggioda Foto Utenteboiler » 14 gen 2024, 13:39

Aggiungo:
luxinterior ha scritto:funziona e basta.

Sì, funziona e basta fin quando funziona. Poi non funziona piú e nessuno sa perché.

Mentalità da OceanGate, risultati da OceanGate.

Boiler
Avatar utente
Foto Utenteboiler
22,9k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 4699
Iscritto il: 9 nov 2011, 12:27

1
voti

[13] Re: Slicing in Python

Messaggioda Foto Utentedjnz » 14 gen 2024, 14:03

Versione Python corrispondente uno a uno (funzionante) Leggibile? Boh.

Codice: Seleziona tutto
import json
my_dict = {}
for i in range(10):
    my_dict["sequenza" + str(i)] = "dispari" if i&1 else "pari"
json_data = json.dumps(my_dict)
print(json_data)


Dizionario creato in dialetto stretto, assolutamente incomprensibile per i non addetti :roll:

Codice: Seleziona tutto
my_dict = {"sequenza" + str(i): "dispari" if i&1 else "pari" for i in range(10)}
Una domanda ben posta è già mezza risposta.
Avatar utente
Foto Utentedjnz
960 1 4 5
Expert
Expert
 
Messaggi: 536
Iscritto il: 26 lug 2020, 14:52

0
voti

[14] Re: Slicing in Python

Messaggioda Foto Utenteboiler » 14 gen 2024, 14:06

djnz ha scritto:Dizionario creato in dialetto stretto, assolutamente incomprensibile per i non addetti :roll:

Codice: Seleziona tutto
my_dict = {"sequenza" + str(i): "dispari" if i&1 else "pari" for i in range(10)}

Dictionary Comprehension... già imparato :mrgreen: :ok:
Avatar utente
Foto Utenteboiler
22,9k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 4699
Iscritto il: 9 nov 2011, 12:27

0
voti

[15] Re: Slicing in Python

Messaggioda Foto Utenteluxinterior » 14 gen 2024, 16:32

Comunque il mio non è un elogio al javascript ho "sporcato" la discussione di Boiler parlando di javascript perché ho avuto le stesse sue sensazioni all'inizio anche se con linguaggio diverso.

Però vuoi mettere
Codice: Seleziona tutto
var miavar = "" la variabile è una stringa
var miavar = {} la variabile è  un oggetto e dentro ci emtto quello che voglio altri oggetti stringhe vettori...
var miavar =[] la variabile è un vettore

Sempre sia lodato javascript

Sì, funziona e basta fin quando funziona. Poi non funziona piú e nessuno sa perché.

Mentalità da OceanGate, risultati da OceanGate.

Sai meglio di me che il tuo browser macina di continuo script in javascript.... per funzionare funziona
Avatar utente
Foto Utenteluxinterior
3.779 3 4 9
Master
Master
 
Messaggi: 2401
Iscritto il: 6 gen 2016, 17:48

0
voti

[16] Re: Slicing in Python

Messaggioda Foto Utenteboiler » 14 gen 2024, 17:05

luxinterior ha scritto:Sai meglio di me che il tuo browser macina di continuo script in javascript.... per funzionare funziona

Non sto criticando JavaScript (anche se non ne sono un fan), ma il fatto che per una celebrazione della pigrizia si rinunci alla type-safety.

Boiler
Avatar utente
Foto Utenteboiler
22,9k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 4699
Iscritto il: 9 nov 2011, 12:27

0
voti

[17] Re: Slicing in Python

Messaggioda Foto Utentedjnz » 14 gen 2024, 18:30

È "l'effetto collaterale" del polimorfismo portato all'estremo, alcune cose sono conoscibili solo a runtime. Il vero confronto sarebbe da fare con C#.

E l'argomento (giustamente) controverso è il Duck Typing. Non importa "cosa arriva", ma che abbia i metodi giusti per gestire la situazione.
Una domanda ben posta è già mezza risposta.
Avatar utente
Foto Utentedjnz
960 1 4 5
Expert
Expert
 
Messaggi: 536
Iscritto il: 26 lug 2020, 14:52

Precedente

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti