Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - spiritoserio

Pagine: [1] 2 3 4
1
Web framework / [Risolto]Re:Modifica style.css
« il: Giugno 01, 2020, 22:04 »
Con chrome c’è semplicemente da cancellare la cache con CTRL+SHIFT+CANC.

Risolto.

2
Web framework / Re:Modifica style.css
« il: Giugno 01, 2020, 12:37 »
Ho scoperto che solo chrome non mi applica
Le modifiche :eyeroll:

3
Web framework / Modifica style.css
« il: Giugno 01, 2020, 11:56 »
Ciao ragazzi,

Ho un piccolo problema;
Sto facendo un blog per un mio gruppo fb tutto procede benissimo tranne che se modifico la lunghezza di un div in style.css django non mi applica la modifica e sono bloccato ho tutto nella cartella static come da manuale ma non applica le modifiche css  qualcuno puo’ darmi una mano? Sono bloccato li.

Grazie ragazzi.

4
Base / Re: Aiuto cicli
« il: Novembre 26, 2013, 20:19 »
Citazione da: spiritoserio
funziona bene.

Mica no... cosa fa se inserisci 21?

[codice]
if  num_righe_colonne > 9 and num_righe_colonne <= 20:
[/codice]

cosi verifica ....  :fingers-crossed:

5
Base / Re: Aiuto cicli
« il: Novembre 25, 2013, 22:28 »
Ti boccio!  :devil:

Non ha senso la scritta "inserire un numero inferiore a 21 e non NEGATIVO" quando poi qualsiasi numero negativo viene trasformato in positivo e passa lo stesso... e se uno scrive -5000?

Trasformare i numeri negativi in positivi ha stesso senso di trasformare numeri maggiori di 20 in minori applicando arbitrariamente una formula matematica, che so, continuare a dividere per 2 finché scendiamo sotto il 20 per far passare comunque qualsiasi cosa. No. Se l'utente ha inserito qualcosa di errato, l'inserimento va rifiutato.

A far bene quella funzione dovrebbe essere più generale (usabile anche in ogni altro programma che richieda l'inserimento "sicuro" di un numero intero), e magari accettare un range ben specifico di valori, tra un limite inferiore e uno superiore che le vengono forniti.

La funzione potrebbe chiamarsi int_input, ed essere usata ad esempio in questo modo:
[codice]numero_righe = int_input('Inserire il numero di righe (da 3 a 20): ', 3, 20)
numero_colonne = int_input('Inserire il numero di colonne (da 3 a 20): ', 3, 20)
[/codice]

Che cattivo  :devil:
Hai ragione mi sono perso tra i 1000 ragionamenti per i numeri negativi.... infatti pensandoci mi rendo conto di aver fatto una cavolata  :quiet:
con abs non controlla piu nulla :D

ok prendo spunto dalla tua dritta e faro' su qualcosa :D

ma cosi fa' proprio cosi schifo ? funziona bene.

[codice]
def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('Inserire numero da 10 a 20:'))
            if  num_righe_colonne > 9 <= 20:
                return num_righe_colonne
            else:
                print '-------->> Inserire numero da 10 a 20:'
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'     
   

[/codice]

6
Base / Re: Aiuto cicli
« il: Novembre 25, 2013, 19:06 »
Che ne pensi se uso la funzione:

[codice]abs()[/codice]

[codice]return abs(num_righe_colonne)[/codice]

[codice]
def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne <= 20:
                return abs(num_righe_colonne) # Se negativo ritorna num positivo.
            else:
                print '-------->> Devi inserire un numero inferiore a 21 e non NEGATIVO.'
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'     


[/codice]

7
Base / Re: Aiuto cicli
« il: Novembre 25, 2013, 18:29 »
Citazione
def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne <= 20:
                return num_righe_colonne
            else:
                print '-------->> Devi inserire un numero inferiore a 21.'
                return num_righe_e_colonne()
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'

Certo che così va bene, ma la ricorsione in questo caso è "un optional", non deve essere obbligatoria, altrimenti c'è qualcosa che non va a livello di interprete :dont-know:



Citazione
corretto tutto , ora verifica anche i numeri negativi:
if num_righe_colonne > 0 <= 20:

Così controlli solo che num_righe_colonne sia maggiore di zero... e che zero sia  minore o uguale a venti.

Ciao Claudio ,

e' vero , finalmente ci sono arrivato.
La ricorsione è un optional perchè finquando non si verifica il 'return' (che ferma il 'while') la ricorsione avviene automaticamente :D infatti funziona.

Ora per i  numeri negativi vedo cosa fare.

8
Base / Re: Aiuto cicli
« il: Novembre 24, 2013, 21:22 »
Cosi non controlla i valori negativi...provvedo. :D
[codice]


def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne <= 20:
                return num_righe_colonne
            else:
                print '-------->> Devi inserire un numero inferiore a 21.'
                return num_righe_e_colonne()
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'

[/codice]

edit:

corretto tutto , ora verifica anche i numeri negativi:

[codice]
if num_righe_colonne > 0 <= 20:

[/codice]

9
Base / Re: Aiuto cicli
« il: Novembre 24, 2013, 14:52 »
Bandiera inglese

[codice]

def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne) or riga == colonna or colonna == num_colonne - riga + 1:
                print '%*s' % (spazio, riga*colonna),
            elif riga == (num_righe+1)  / 2  or colonna == (num_colonne+1) /2: # ho preferito fare un elif per non allungare troppo la riga dell if
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
           
        print

[/codice]

Bandiera italiana (senza colori) :D

[codice]
def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne):
                print '%*s' % (spazio, riga*colonna),
            elif colonna == (num_colonne+1) /3 or colonna == num_colonne -(num_colonne / 3):
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
[/codice]

Bandiera bulgara(senza colori) :D

[codice]

def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne):
                print '%*s' % (spazio, riga*colonna),
            elif riga == (num_righe+1) /3 or riga == num_righe -(num_righe / 3):
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
           
        print
[/codice]       

Bandiera a scacchi :D

[codice]

def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne):
                print '%*s' % (spazio, riga*colonna),           
            elif riga == (num_righe+1) /3 or riga == num_righe -(num_righe / 3) or colonna == (num_colonne+1) /3 or colonna == num_colonne -(num_colonne / 3):
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
           
        print

[/codice]

Claudio mi daresti una dritta per il rombo ?

10
Base / Re: Aiuto cicli
« il: Novembre 24, 2013, 12:34 »
Tolta la ricorsione funziona bene però meno se tolgo il 'break'
perchè continua a chiedermi il numero anche se <= 20....

[codice]
def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne <= 20:
                return num_righe_colonne
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'
[/codice]

escludendo il break ho fatto cosi per farlo funzionare:

[codice]
def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne <= 20:
                return num_righe_colonne
            else:
                print '-------->> Devi inserire un numero inferiore a 21.'
                return num_righe_e_colonne()
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.' 
[/codice]

quindi in "else" ho dovuto ricorrere alla ricorsione giusto no ? :confused:

11
Base / Re: Aiuto cicli
« il: Novembre 24, 2013, 12:14 »
In questo topic si fa a gara a chi quota di più?  :devil:


Citazione
def num_righe_inserite(): 
    while True: 
        try: 
            num_righe = int(raw_input('INSERIRE NUMERO RIGHE: ')) 
            if num_righe > 20: 
                 print 'Valore massimo inseribile è 20, RIPETI' 
            elif num_righe < 21: 
                return num_righe 
                break 
        except ValueError: 
            print 'Non hai inserito un NUMERO INTERO, RIPETI.' 
            return num_righe_inserite()


Alcune osservazioni: la chiamata ricorsiva non serve perché la logica è già inserita in un ciclo while. Anche il break è di troppo, perché la funzione termina già con return num_righe. Il doppio controllo >20 <21 è ridondante, perché se non è > di 20 è per definizione già <21.



Prossimi passi (solo per lati uguali e dispari)...

La bandiera inglese (facile):

  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
  2   4                      16                      28  30
  3       9                  24                  39      45
  4          16              32              48          60
  5              25          40          55              75
  6                  36      48      60                  90
  7                      49  56  63                     105
  8  16  24  32  40  48  56  64  72  80  88  96 104 112 120
  9                      63  72  81                     135
 10                  60      80     100                 150
 11              55          88         121             165
 12          48              96             144         180
 13      39                 104                 169     195
 14  28                     112                     196 210
 15  30  45  60  75  90 105 120 135 150 165 180 195 210 225


Il rombo (questo invece è bello difficilotto):

  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
  2                          16                          30
  3                      21      27                      45
  4                  24              40                  60
  5              25                      55              75
  6          24                              72          90
  7      21                                      91     105
  8  16                                             112 120
  9      27                                     117     135
 10          40                             120         150
 11              55                     121             165
 12                  72             120                 180
 13                      91     117                     195
 14                         112                         210
 15  30  45  60  75  90 105 120 135 150 165 180 195 210 225


hahahahahhaha grande Claudio mi dai una bella gatta da pelare.....a dire il vero avevo gia pensato di rincarare la dose e fare cioè che hai postato  sarà il prossimo passo verso la versione 5 :P

E' vero ci sono molti 'quote' hiihihihihhi

per quanto riguarda le osservazioni che hai fatto , a rileggere il codice hai ragionissimo....correggero' anche queste piccole cose...
pero' grazie a voi sto imparando tantissimo in modo chiaro e semplice.
GRAZIE!

Mi metto a lavoro per cercare di fare quello che hai postato :D

12
Base / Re: Aiuto cicli
« il: Novembre 24, 2013, 12:10 »
Versione migliorata

[codice]
# Versione 4.5 :D
# Ciclo if minimizzato (grazie Claudio)
# corretto bug in for colonna ( grazie Paolo)
# Inseriti controlli valori
# Inserimento menu scelta
# Inserito stampa riga obliqua da destra verso sinistra grazie Claudio e Paolo.
# Aggiunto x di numeri all'interno del quadrato
# Ora all'interno del quadrato si forma una X di numeri :D
# Menu e scelta utente in un unica funzione
# Eseguito un refactoring generale per minimizzare il codice ( grazie GlennHK )
# Aggiunto controllo sulla scelta del menu che ora accetta solo 0 e 1 e gestisce il ValueError


from time import *

# Funzione che calcola il quadrato

def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne) or riga == colonna or colonna == num_colonne - riga + 1:
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
           
        print
         
# Controllo inserimento dati da parte dell'utente.

def num_righe_e_colonne():
    while True:
        try:
            num_righe_colonne = int(raw_input('INSERIRE Numero: '))
            if num_righe_colonne > 20:
                print '-------->> Valore massimo inseribile è 20, RIPETI'
            elif num_righe_colonne < 21:
                return num_righe_colonne
                break
        except ValueError:
            print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'
            return num_righe_e_colonne()
   

# Menu + scelta

def esegui_menu():

    # Menu
    print " * -> Premi 1 per provare il programma"
    print " * -> Premi 0 per uscire
"

    # Scelta
    try:
        scelta = int(raw_input('Inserisci scelta: '))
        print
        if scelta <> 1 and  scelta <> 0:
            print '-------->Valore inserito non corretto inserisci 1(Per entrare) o 0(Per uscire): '
            return esegui_menu()
        elif scelta == 1:
            num_righe = num_righe_e_colonne()
            print
            num_colonne = num_righe_e_colonne()
            print
            stampa(num_righe,num_colonne)
        elif scelta == 0:
            print 'ARRIVEDERCI'
            print '-------->> sto per chiudere il programma...'
            sleep(4)
            exit()
    except ValueError:
        print '-------->> Non hai inserito un NUMERO INTERO, RIPETI.'
        return esegui_menu()
           
           


# Richiamo menu per la scelta delle opzioni
esegui_menu()
   


[/codice]

13
Base / Re: Aiuto cicli
« il: Novembre 23, 2013, 19:39 »
Hai scritto due funzioni uguali, un po' di refactoring su!

Hai ragione :D

grazie ne faro' diventare una soltanto.
Sono alle prime armi non essere troppo cattivo ehhehehehe   :embarrassed:

14
Base / Re: Aiuto cicli
« il: Novembre 23, 2013, 18:31 »
cioe' forse ci sono :

* c = colonna

riga 2
       2         4         6         8         10         12         14        16        18        20
      c1        c2        c3       c4       c5           c6         c7        c7         c8        c9
                                                                                                    |
                                                                                                    |
                                                                                           in questo momento : colonna == num_colonne - riga+1 Giusto?

Attenzione che ci sono 2 colonne c7, comunque si, in quel punto a
[codice]colonna == num_colonne - riga + 1[/codice]
sostituendo i numeri e tenendo presente che siamo a colonna 9 abbiamo:
[codice]9 == 10 - 2 + 1
9 == 9[/codice]
La condizione di uguaglianza in effetti è verificata, quindi stampa.

poi prosegue:

riga 3
     3        6        9         12        15         18          21          24        27        30
                                                                                       |
                                                                                       |
                                                                                 in questo momento : colonna( che vale 8 ) == num_colonne - riga+1 cioè 8 e uguale a 10-2 Giusto?

Certo, siamo a colonna 8, e come prima sostituendo i valori,
[codice]8 == 10 - 3 + 1
8 == 8[/codice]
la condizione risulta effettivamente ancora verificata, stampa nuovamente.

Quello che però mi sembra ti stia sfuggendo è il perché di quella relazione matematica fra righe e colonne,
del come ci si è arrivati a scrivere proprio quella e non altre.

Ragioniamoci: ssserva nuovamente il quadrato 10x10 iniziando dalla fine della prima riga, c'è un 10.
A che colonna è? Alla numero num_colonne, quella più a destra, la colonna numero 10.

Ora guarda la seconda riga: il nuovo valore, quel 18 è stampato a che colonna?
A colonna 9, cioè num_colonne - 1.

Ok, ma se voglio esprimerlo in termini di righe cosa scrivo? Sono a riga 2, se scrivessi num_colonne - riga avrei 10 - 2 = 8a colonna,
ma siamo alla 9a colonna, quindi fare semplicemente num_colonne - riga, cioè sottrarre semplicemente il valore della riga così com'è significa sbagliare di uno la colonna giusta.

Bene, se sottraggo uno di troppo come correggo? Con num_colonne - riga + 1 così non sottraggo più un 1 di troppo.
Ma è proprio quello che abbiamo scritto nel programma, ecco come ci si è arrivati.

Chiaramente questa relazione vale quando siamo alla seconda riga, ma continua a valere anche per tutte le restanti fino alla fine.


Grazie Paolo ....immenso spiegazione perfetta ....proprio questa spiegazione volevo.....sei fantastico a spiegare :D

NB: Tutte queste dritte le sto mettendo in un pdf le conservo in caso che in futuro mi dimentichi qualcosa.

ora posto la versione 4.0 del programmino perchè intanto sono andato avanti e mi sono meravigliato che usando solo cio' che ho studiato prima di bloccarmi
sui for (righe - colonne) sono riuscito a fare.

[codice]codice completo versione 4.0[/codice]

[codice]
# Versione 4.0 :D
# ciclo if minimizzato (grazie Claudio)
# corretto bug in for colonna ( grazie Paolo)
# inseriti controlli valori
# inserimento menu scelta
# inserito stampa riga obliqua da destra verso sinistra grazie Claudio e Paolo.
# ora all'interno del quadrato si forma una X di numeri :D

from time import *

# funzione che calcola il quadrato

def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne) or riga == colonna or colonna == num_colonne - riga + 1:
                print '%*s' % (spazio, riga*colonna),
            else:
                print '%*s' % (spazio, ''),
           
        print

# creo il menu per l'utente

def menu():
    print " * -> Premi 1 per provare il programma"
    print " * -> Premi 0 per uscire"


# controllo inserimento righe

def num_righe_inserite():
    while True:
        try:
            num_righe = int(raw_input('INSERIRE NUMERO RIGHE: '))
            if num_righe > 20:
                 print 'Valore massimo inseribile è 20, RIPETI'
            elif num_righe < 21:
                return num_righe
                break
        except ValueError:
            print 'Non hai inserito un NUMERO INTERO, RIPETI.'
            return num_righe_inserite()
           
# controllo inserimento colonne

def num_colonne_inserite():
    while True:
        try:
            num_colonne = int(raw_input('INSERIRE NUMERO colonne: '))
            if num_colonne > 20:
                print 'Valore massimo inseribile è 20, RIPETI'
            elif num_colonne < 21:
                return num_colonne
                break
        except ValueError:
            print 'Non hai inserito un NUMERO INTERO, RIPETI.'
            return num_colonne_inserite()

# scelta utente

def esegui_scelta():
    scelta = int(raw_input('Inserisci scelta: '))
    print
   
    if scelta == 1:
        num_righe = num_righe_inserite()
        print
        num_colonne = num_colonne_inserite()
        print
        stampa(num_righe,num_colonne)
    elif scelta == 0:
        print 'ARRIVEDERCI'
        print 'sto per chiudere il programma...'
        sleep(4)
        exit()
    else:
        print 'stai inserendo un valore non corretto , riprova'
        esegui_scelta()


# richiamo funzioni

menu()
esegui_scelta()
   


[/codice]

15
Base / Re: Aiuto cicli
« il: Novembre 23, 2013, 17:29 »
Vedi se questa versione del programma che è il tuo con in più
  • una leggera pausa (0.2 secondi) per darti il tempo di vedere il quadrato mentre viene costruito,
  • la stampa di un trattino al posto dello spazio così da vedere visivamente dov'è il programma in quel momento,
ti aiuta a chiarirti le idee:[codice]
def stampa(num_righe, num_colonne):
    spazio = len(str(num_righe*num_colonne))
    for riga in range(1, num_righe+1):
        for colonna in range(1, num_colonne+1):
            if riga in(1,num_righe) or colonna in(1,num_colonne) or colonna == num_colonne - riga + 1:
                print '%*s' % (spazio, riga*colonna),
                sleep(0.2)
            else:
                print '%*s' % (spazio, '-'),
                sleep(0.2)
        print

num_righe = int(raw_input('INSERIRE NUMERO RIGHE: '))
print

num_colonne = int(raw_input('INSERIRE NUMERO COLONNE: '))
print

stampa(num_righe, num_colonne)[/codice]

Grande!
è molto piu bello cosi però sinceramente nn mi chiarisce bene il mio dubbio.

cioe' forse ci sono :

* c = colonna

riga 2
       2         4         6         8         10         12         14        16        18        20
      c1        c2        c3       c4       c5           c6         c7        c7         c8        c9
                                                                                                    |
                                                                                                    |
                                                                                           in questo momento : colonna == num_colonne - riga+1 Giusto?
poi prosegue:

riga 3
     3        6        9         12        15         18          21          24        27        30
                                                                                       |
                                                                                       |
                                                                                 in questo momento : colonna( che vale 8 ) == num_colonne - riga+1 cioè 8 e uguale a 10-2 Giusto?

ecc....
                                                                                       


Pagine: [1] 2 3 4