Topic: aiuto con un esercizio  (Letto 732 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Moo

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: -1
    • Mostra profilo
aiuto con un esercizio
« il: Novembre 03, 2017, 11:19 »
ciao, mi potete dare una mano per favore risolvendo questi esercizi
nel primo per esempio



i += f2(x[k],0)
j += f2(x[k],1)



non capisco che fa
e il 2 esercizio non riesco proprio a farlo
grazie in anticipo.. :)


Si consideri il seguente programma Python:



def f1(x):
        i = 0
        j = 0
       for k in range(len(x)):
              i += f2(x[k],0)
              j += f2(x[k],1)
return i == j

def f2(x, p):
       a = 0
       for i in range(p, len(x), 2):
              a += x[i]
return a
m = [[2, 3, 1, 4, 5],
[0, 0, 0, 0, 0],
[1, 0, 1, 0, 0],
[1, 2, 0, 6, 3],
[5, 4, 0, 1, 1]]
print(f1(m))[/i]


Si descriva sinteticamente la funzione svolta dal programma e, in particolare, si mostrino la traccia d’esecuzione e
l’output prodotto.


Esercizio 2

Data una matrice quadrata di interi M, un elemento M[i,j] è detto “punto di sella” se risulta essere
contemporaneamente il minimo della riga i e il massimo della colonna j.
Si scriva una funzione Python punti_di_sella che riceve una matrice quadrata di interi M e restituisce una lista di coppie
di indici (i,j) che individuano la riga e la colonna in cui si trovano i punti di sella in M (se esistono).
Esempio:
se M =
4 5 5 9
6 7 6 7
6 8 6 9
5 2 3 3
allora punti_di_sella(M) restituisce [(1,0), (1,2), (2,0), (2,2)].
« Ultima modifica: Novembre 03, 2017, 21:56 da Moo »

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re:aiuto con un esercizio
« Risposta #1 il: Novembre 03, 2017, 12:23 »
ciao, mi potete dare una mano per favore risolvendo questi esercizi

Dai una mano a chi ti vuole dare una mano, formatta il codice Python come tale: entra in "Modifica" sul tuo messaggio, seleziona il codice Python, clicca sul pulsante con il tooltip "pythoncode" (quello immediatamente a sinistra di "Aspetto carattere", infine salva il messaggio. Fai attenzione a che il codice rispetti l'indentazione prevista, in Python è parte del linguaggio e non una semplice questione estetica.

Offline Moo

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: -1
    • Mostra profilo
Re:aiuto con un esercizio
« Risposta #2 il: Novembre 03, 2017, 13:44 »
hai completamente ragione, scusatemi che mi sono appena iscritto.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re:aiuto con un esercizio
« Risposta #3 il: Novembre 03, 2017, 18:09 »
hai completamente ragione, scusatemi che mi sono appena iscritto.

Nessun problema, porta solo pazienza un altro po' perché sei a metà dell'opera. Come ti dicevo l'altra metà è:

Fai attenzione a che il codice rispetti l'indentazione prevista, in Python è parte del linguaggio e non una semplice questione estetica.

Offline Moo

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: -1
    • Mostra profilo
Re:aiuto con un esercizio
« Risposta #4 il: Novembre 03, 2017, 21:59 »
hai completamente ragione, scusatemi che mi sono appena iscritto.

Nessun problema, porta solo pazienza un altro po' perché sei a metà dell'opera. Come ti dicevo l'altra metà è:

Fai attenzione a che il codice rispetti l'indentazione prevista, in Python è parte del linguaggio e non una semplice questione estetica.
fatto

Offline GlennHK

  • python sapiens sapiens
  • ******
  • Post: 1.654
  • Punti reputazione: 1
    • Mostra profilo
    • La Tana di GlennHK
Re:aiuto con un esercizio
« Risposta #5 il: Novembre 03, 2017, 22:59 »
Ho uno strano presentimento...  :)

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re:aiuto con un esercizio
« Risposta #6 il: Novembre 04, 2017, 00:35 »
fatto
Purtroppo no. Tra tutte quelle che vanno indentate, alcune righe lo sono con 7 caratteri, altre con 8, altre ancora non lo sono affatto. Come già detto l'indentazione
in Python è parte del linguaggio e non una semplice questione estetica.
pertanto se il codice non è indentato correttamente quando si prova a lanciare il programma esso o non funziona (è il tuo caso) o funziona male. Mi sembra strano che non te ne sia accorto, perciò devo chiedertelo: stai facendo girare il codice che cerchi di capire?

Un aiuto su come va usata l'indentazione:
https://www.python.org/dev/peps/pep-0008/
https://www.python.it/doc/articoli/pep-8.html

Offline Trizio

  • python unicellularis
  • *
  • Post: 40
  • Punti reputazione: 1
    • Mostra profilo
Re:aiuto con un esercizio
« Risposta #7 il: Novembre 04, 2017, 11:04 »
C'è sicuramente un errore alla riga 12, dove stai sommando un intero (a) ad una lista (x).

Probabilmente è:

a += x[offset]    # dove offset è i

UPDATE: non è colpa tua, ma del forum.

Al tuo posto, proverei a riscrivere quel codice usando nomi di variabili che abbiano un senso.

Aggiungo che la seconda funzione è stata scritta in modo deliberatamente criptico. La riga 11, in particolare, è da corte marziale; si sarebbe potuta scrivere in modo molto più esplicito, senza nemmeno usare for:


def f2(matrix_sublist, start, step=2):
    selected_items = matrix_sublist[start::step]
    return sum(selected_items)
« Ultima modifica: Novembre 04, 2017, 12:05 da Trizio »