Forum
  
    >> 
    
      Principianti
    
  
  >>
  
    problema: :)
  
  
  
  
  
  
  
   
  
    
    
    
      
      
  
Pagina: 1
  
Esegui il login per scrivere una risposta.
      
  
      
    Pagina: 1
| 
          
Scritto da giacomo217  | 
        
          
 2017-09-29 00:19:41 - problema: :) 
  
 | 
      
| 
          
          
             ciao ragazzi ho un quesito per voi   
          
          
            
          
          
        facendo un po' di pratica con i primi capitoli del libro mi sono imbattuto in un problema: - se il numero è multiplo di 3 stampa "si" - altrimenti stampa "no" a = input("inserisci un numero")
if (a/3)==type(int):
   print("si")
else: print("no")
print type(a) lo so che il problema lo posso risolvere anche con il resto uguale a 0. Solo che voglio capire perchè con l'altra soluzione mi stampa il ''no''.
grazie mille ragazzi e scusate ma sono alle prime armi sto ancora imparando.  | 
      |
| 
          
Scritto da Daniele aka Palmux ![]()  | 
        
          
 2017-09-29 00:55:04 - Re: problema: :) 
  
 | 
      
          
          
            
 Eccolo il punto, usa l'operatore "%" e semplificati la vita.
 
          
          
            
          
          
        Nel tuo if sbagli, non deve essere uguale a type(int), ma al limite solo int. Ma anche così non ottieni quello che credi, perché stai dicendo a Python di fare una divisione di interi e quindi otterrai ancora un intero, cosa che non ti aspetteresti nel caso di una divisione con resto. Ma ecco che arriva in soccorso proprio "%" che ti mostra il resto dell'operazione. Non deve sorprenderti se: >>> 12/3 == 13/3 True >>> 12%3 == 13%3 FalseCya  | 
      |
| 
          
Scritto da giacomo217  | 
        
          
 2017-09-29 01:25:12 - Re: problema: :) 
  
 | 
      
          
          
            
 Innanzitutto grazie per la risposta.
 
          
          
            
          
          
        Allora spiegami una cosa per favore. Su Python 3.6 se stampo 7/2 mi risponde con 3.5 Su Python 2 invece mi risponde con 3 Per avere il resto faccio 7%2 e trovo il resto, in questo caso di 1. Allora perché non va? Lo so che con l'operatore % mi semplifico la vita, vorrei solo capire il perché questa cosa.  | 
      |
| 
          
Scritto da Daniele aka Palmux ![]()  | 
        
          
 2017-09-29 01:35:06 - Re: problema: :) 
  
 | 
      
          
          
            
 Su Python3 sì, il mio esempio era con Py2 e comunque hai sbagliato il confronto nell'esempio di prima. 
 
          
          
            
          
          
        Hai diversi strumenti per controllare se va bene l'operazione (Python3.6): >>> 12/3 4.0 >>> 13/3 4.333333333333333 >>> float.is_integer(12/3) True >>> float.is_integer(13/3) FalseOra ci siamo dai e non vorrei averti fatto casino con l'esempio in Python 2, non so perché ero convinto usassi quello. Cya  | 
      
Pagina: 1
Esegui il login per scrivere una risposta.
  
