Sei sulla pagina 1di 3

LEZIONE 8

#ESERCIZIO p 6.4 rimuove elementi centrali se dispari 1,se pari 2


#pop(len//2)#se dispari
#pop(len//2)#rimuovo uno poi ricado nel caso dispari
#pop(len//2)#lo devo fare due volte

def removemiddle(data):
if data==0:
return
if len(data)%2==0:
data.pop(len(data//2))
data.pop(len(data//2))
else:
data.pop(len(data//2))

SECONDO MASSIMO
#esercizio p6.4 secondo elemento maggiore
#max mi dice il primo massimo, il secondo massimo è elemento più grande diverso
da 12
#
def secondlargest(data):
largest=max(data)
second=min(data)#possibile valore
for element in data:
if element>second and element != largest:
second = element
return second
Metodo alterativo
def secondlargest(data):
largest=max(data)
poslargest=data.index(largest)
data.pop(poslargest)
second=max(data)
data.insert(poslargest,largest) #devo reinserire il valore per lasciarla
inalterata
return second

ESERCIZIO H
#esercizio p6.4 H se una condizione è soddisfatta, lista in ordine crescente,
osservo la lista e dove un elemento è < elemento precedente
#ritorno falso, se gli ho scorsi tutti posso restituire true
def isincreasing(data):
for i in range(1,len(data)):
if data[i]<data[i-1]:
return False
return True
ESERCIZIO I
# esercizio p6,4 i restituire true se ci sono elementi adiacenti duplicati
def elementiadiacenti(data):
for i in range(0,len(data)-1):
if data[i]==data[i+1]:
return True
return False
ESERCIZIO J
# esercizio p6,4 J restituire true solo se ci sono elementi duplicati
def elementiduplicati(data):
for i in range(0,len(data)-1):
for j in range(i+1,len(data)):
if data[i]==data[j]:
return True
return False

TABELLE

Ho sia colonne che righe (con liste come righe)

Matrice di valori interi con tutte le medaglie del medagliere e ogni riga è uno stato. La tabella è data da 2
dimensioni. Se creo una tabella in python: riga racchiusa da parentesi quadra il tutto avvolto da una quadra
iniziale e una finale

Tab=[

[……..]

Le righe sono delle liste e le raggruppo in una tabella (una lista con ogni elemento un riferimento alla lista)

È una lista di liste nel caso del python

Posso partire da lista vuoto, creando singole righe e aggiungendole alla tabella, le operazioni su tabelle
sono simili a quella delle liste.

Ho due indici tab [riga] [colonna] per lavorare su tutta la tabella

Per stampare devo fare un doppio ciclo for (esterno definisce le righe) (l’interno definisce le colonne) per
andare a capo con la print vuota

Per lavorare con gli elementi interni utilizzi i e j che variano con +1 e -1 e così via

Sommare elementi sulla riga il secondo indice viene definito da un ciclo for tenendo ferma la riga

Numero di righe della tabella faccio len sul nome della tabella

Per le colonne prendo la riga 0 e faccio la len su di essa


#esercizio p 6,21 tabelle
#quadrato magico, ogni elemento ha valore diveso da 1 a 16, somme per righe,
colonne diagonali con tutte lo stesso risultato
#chiedere all'utente i valori
SIZE=4
#riempio la tabella per righe
board=[] #quattro letture che le aggiungo alla tabella e la ripeto 4 volte
for i in range (SIZE):#per ogni riga
row=[]
for j in range(SIZE):
row.append(int(input("valore: ")))
board.append(row)
for i in range(SIZE):
for j in range(SIZE):
print(f"{board[i][j]:4d}", end = ' ')
print()
#controllare gli elementi nel quadrato magico da 1 a 4 alla 2
magico=True
numericorretti=True
for i in range(1,SIZE*SIZE+1):
if (not i in board[0]) and (not i in board[1]) and(not i in board[2]) and
(not i in board[3]):
print(f"il quadrato non è magico, manca {i}")
magico=False
target=sum(board[0])#somma di tutti gli elementi nella prima riga fa 10

for i in range(1,SIZE):
if sum(board[i])!=target<.
print(f"la riga {i} ha somma diversa")
magico=False
#ora controllo le colonne
for i in range (SIZE):
sum=0
for j in range(SIZE):
sum=board[i][j]+sum
if sum!= target:
print("errore: la colonna",i,"ha somma diversa")
#prendo ora le diagonali
diag1=board[0][0]+board[1][1]+board[2][2]+board[3][3]
if diag1!= target:
print("priblema con la diagonale 1")
magico=False
#faccio la stessa cosa con ila diagonale 2
if magico:
print("il quadrato è magico")
else:
print("il quadrto non è magico")

Potrebbero piacerti anche