Come dovrei interpretare i " " e i "\t"

I
Ionut_02 (4310 points)
3 4 18
asked Dec 3, 2021 in HW6 by Ionut_02 (4,310 points)
edited Dec 3, 2021 by Ionut_02
Come dovrei interpretare i " " e i "\t"?

Ho modificato la domanda per essere più chiaro con chi vuole leggersi la soluzione subito, in caso di errori scusate e ditemelo

input_1 = "2 \t30, 30, 255, 44, 55," ----> errato perché manca una virgola tra "2 \t30"

output_1 = [230, 30, 255, 44, 55] ----> imp

input_2 = "20 \t30, 255, 44, 55," ----> errato perché manca una virgola tra "20 \t30"

output_2 = [20, 30, 255, 44, 55] ----> imp

input_3 = "20, \t30, 255, 44, 55,"------> corretto perché contiene tutte le virgole

output_3 = [20, 30, 255, 44, 55] ------> pos

ho riportato 2(3*) esempi pratici al fine di eliminare un dubbio che avverto nel HW6 e che potrebbe trovarsi nei test segreti

Vorrei che il professore Sterbini quando possibile possa chiarire la domanda "chi sono i separatori?", anche per rendere il codice meno ambiguo possibile (fatto nei commenti)

Grazie in anticipo

3 Answers

marcofelici (3160 points)
1 2 20
answered Dec 3, 2021 by marcofelici (3,160 points)
Da quanto ho capito io, in ogni riga del file ci sono dei valori. OGNUNO di essi può essere separato dall'altro con una virgola (",") e/o 0 o più spazi o tab("\t"). In questo modo tu sai come prendere tutti i dati da una riga, ovvero non solo sai come separare un gruppo di 5 valori CONSECUTIVI (che sono significativi perchè rappresentano le informazioni di un palazzo) ma anche separare i valori stessi. Quindi l'esempio che hai fatto mi risulta errato in quanto: input_1 = "2 \t30, 30, 255, 44, 55" darebbe come output: output_1 = [2, 30, 30, 255, 44, 55] che sono 6 valori e quindi non più significativi per UN SOLO PALAZZO e idem il secondo esempio. Questo perchè il modo che hai utilizzato per interpretare come separare i singoli valori (ovvero la virgola) è sbagliato perchè anche i singoli valori possono essere separati con degli spazi o tab ("\t") e quindi a quel punto come fai a capire quello ("\t") separa due valori di una stessa rappresentazione (ES: la larghezza del palazzo come nei tuoi esempi) oppure separa due rappresentazioni diverse (ad esempio il valore di larghezza e altezza dello stesso palazzo).
m
max.maniscalco (860 points)
1 2 10
commented Dec 3, 2021 by max.maniscalco (860 points)
Attenzione, il testo dice: "Il file contiene su ciascuna riga, seguiti da 1 virgola e/o 0 o più spazi o tab, gruppi di 5 valori", vuol dire che tra un numero e l'altro 1 virgola c'è sempre e può essere seguita da 0 o più spazi o tab.
I
Ionut_02 (4310 points)
3 4 18
commented Dec 3, 2021 by Ionut_02 (4,310 points)
Grazie per la risposta Marco, ma allo stesso tempo il testo non penso dica direttamente quale sia il separatore, io la penso come te, anche se mi aspetterei una risposta dal professore visto che è lui che decide, si gli esempi 1 e 2 interpretano i " " e "\t" in modo diverso apposta
marcofelici (3160 points)
1 2 20
commented Dec 3, 2021 by marcofelici (3,160 points)
In realtà non essendo specificato, non è detto che sia sempre la virgola a separare i valori e inoltre "e/o 0 o più spazi o tab" indica che tra un numero e l'altro non c'è sempre una virgola ma può esserci anche solo spazio o più spazi, a patto che questi due numeri siano uno l'ultimo valore del gruppo di 5 che rappresenta il canale B della terna R, G, B, e l'altro sia il primo valore di larghezza del gruppo di 5 successivo.
marcofelici (3160 points)
1 2 20
commented Dec 3, 2021 by marcofelici (3,160 points)
Si effettivamente dovrebbe da come ha scritto ha specificato solo quali possono essere i separatori ogni gruppo di 5 valori interi e non quale sia quello che separa ogni valore intero di questo gruppo.
m
max.maniscalco (860 points)
1 2 10
answered Dec 3, 2021 by max.maniscalco (860 points)
La virgola è il carattere importante che divide un numero dall'altro, tutti i caratteri whitespace possono essere ignorati.
marcofelici (3160 points)
1 2 20
commented Dec 3, 2021 by marcofelici (3,160 points)
In teoria è cosi ma non è specificato nella descrizione dell'Homework se sia sempre e solo la virgola a separare ogni valore del gruppo di 5 oppure può esserci anche uno spazio o tab.
andrea.sterbini (172300 points)
510 927 1776
answered Dec 3, 2021 by andrea.sterbini (172,300 points)
in ciascuno dei due esempi di input mancano due virgole, quindi sono input errati
I
Ionut_02 (4310 points)
3 4 18
commented Dec 3, 2021 by Ionut_02 (4,310 points)
Ok adesso ho aggiunto un terzo esempio che dovrebbe essere giusto come input e output, e ho aggiunto le virgole finali ai due input errati di base(e che rimangono errati), grazie
Matypist (5370 points)
8 16 45
commented Dec 3, 2021 by Matypist (5,370 points)
edited Dec 3, 2021 by Matypist

Professore mi scusi, mi è sorto un dubbio nell'interpretazione della consegna in seguito alla sua risposta, per virgole mancanti (a parte quelle finali) intende che ci sarebbero dovute essere per forza quelle che evidenzio di seguito in rosso:

input_1 = "2, \t30, 30, 255, 44, 55,"

input_2 = "20, \t30, 255, 44, 55,"


per essere un input valido? Se sì, l'"e/O" contenuto in consegna (nella parte che cito di seguito) è un refuso o l'abbiamo semplicemente interpretato male noi?


Il file contiene su ciascuna riga, seguiti
da 1 virgola e/o 0 o più spazi o tab,

Matypist (5370 points)
8 16 45
commented Dec 4, 2021 by Matypist (5,370 points)
andrea.sterbini (172300 points)
510 927 1776
commented Dec 4, 2021 by andrea.sterbini (172,300 points)
"0 o più" spazi o tab