Forum
>>
Principianti
>>
Codice funzionante, perchè?
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da DeletedUser |
2016-10-11 17:28:12 - Codice funzionante, perchè?
|
Buonasera,
volevo provare a fare un esercizietto (credendo che fosse semplice). Incredibilmente, sono riuscito a farlo senza sapere il perché... (e senza averlo copiato da altri siti). Mi viene il dubbio che il programmino abbia degli errori, e che mi funzioni per colpo di fortuna solo su alcuni numeri. Il programma in questione è quello di inserire un numero, e farmi dire in risposta dall'interprete se è un numero primo oppure no, in base al codice inserito che è il seguente: numero=int(input("inserisci il numero")) def numero_primo(numeroPrimo): numeroPrimo=numero if not numero != 2: print("è un numero primo!") elif numero == numero== numero / numero == 1 and numero == numero / 1 == numero: print("è un numero primo!") else: print(" non è un numero primo") Dopo anni che non tocco libri scolastici ho letto su Internet, e mi sono informato che la caratteristica dei numeri primi, è che sono dei numeri divisibili solo per se stessi e per uno. Il problema è che anche con numeri non primi ottengo la stessa cosa: 4 diviso se stesso = 1 e 4/1= il dividendo. Quindi perché se provo ad inserire numeri non primi l'interprete riesce a capire che non è un numero primo? Scusate l'ignoranza, ma come ho già scritto in altri post ho la terza media, e non tocco libri da 10 anni, per cui non riesco a capire se è sbagliata la mia definizione matematica di numero primo(che ho trovato su Internet) oppure c'è qualcosa che non va nel codice. --- Ultima modifica di harimau08 in data 2016-10-11 17:29:30 --- |
|
Scritto da Ale |
2016-10-12 00:43:02 - Re: Codice funzionante, perchè?
|
ciao
sistemando l'indentazione ed aggiungendo la chiamata alla funzione lo script parte, ma se gli dai 17 in input, risponde che non è numero primo |
|
Scritto da DeletedUser |
2016-10-12 09:47:51 - Re: Codice funzionante, perchè?
|
Hai ragione, e non so perchè..
effettivamente neanche con altri numeri funziona, tipo il 31, e ci saranno sicuramente altri casi. Però la cosa che non capisco è il perché funziona e se funziona perché fa delle eccezioni con alcuni numeri. Come ho scritto su, su Internet ho letto la definizione di numero primo e c'era scritto che per regola è un numero divisibile solo per se stesso e per uno. Il problema è che anche i numeri non primi sono divisibili per uno e per se stessi, quindi perché mi funziona il programma? Come fa a capire quale numero è primo se sono tutti divisibili per uno e per se stessi? |
|
Scritto da Orsogrizzly |
2016-10-12 16:49:48 - Re: Codice funzionante, perchè?
|
Ora non ho a disposizione un terminale con python, e non sono
Ancora pratico di python 3, ma nell'istruzione da te immesa : If ecc.... Sei sicuro che questo (==) sia il 'simbolo' di confronto, Oppure e quello di eguaglianza? Es. Numero == 0 print (numero) If numero = numero / numero : print ("mha che sia un numero") else: print (numero + 1) Tieni presente che quello appena scritto è stato scritto da cell. |
|
Scritto da DeletedUser |
2016-10-15 11:10:13 - Re: Codice funzionante, perchè?
|
riguardo l'if su un manuale c'è scritto che gli uguali sono doppi, mentre invece è singolo quando si vuole assegnare un valore ad una variabile.
Alla fine mi sono informato altrove, e m'han fatto capire che il codice è completamente sbagliato, infatti numeri come il 17, il 31.. non li segna come numeri primi, quindi questo tipo di programma dovrò farlo con maggior senso e criterio. |
Pagina: 1
Esegui il login per scrivere una risposta.