Ciao a tutti di nuovo!

Sto imparando a programmare con Python. Sto leggendo la guida "Pensare da informatico" e la sto trovando particolarmente utile.

Mentre imparo sto creando un programma che mi testa i numeri dispari e mi dice se sono primi o meno... (una specie di test di primalità inventato da me ).

Mi sono bloccato su due questioni però:

1) Ho creato una lista di numeri con il seguente codice:
codice:
print(list(range(3, b-1, 2)))
e ho ottenuto:
codice:
[3, 5, 7]
. Quello che ottengo è corretto. Mi servirebbe moltiplicare tra loro gli elementi della lista ma non riesco a capire come fare. Il problema sorge perchè in base al numero inserito dall'utente i numeri nella lista possono variare come quantità. Ho cercato in internet e sul forum ma non riesco a trovare nulla. Help please!

2) Nella mia prima riga di codice chiedo all'utente di inserire un numero dispari. E se questi inserisci un numero dispari non ho alcun problema. Vorrei che se inserisse qualsiasi altra cosa (pari, lettere o simboli) il programma ripartisse dalla richiesta "Inserisci un numero dispari".

Per il momento ho risolto in un modo poco ortodosso, così:

codice:
print "Questo programma serve per determinare se un numero dispari e' primo"
print ""
print "Inserisci un numero dispari"
a = input()
b = a / 3
c = b - 1
print ""
print ""
if a % 2 == 0:
    print "Il numero inserito e' pari. Inserisci un numero dispari!"
elif a % 2 == 1:
    print "Dividiamo il numero scelto per 3 e lo arrotondiamo per difetto ove necessario:"
    print (b)
if b % 2 == 0:
    print "Il piu' grande numero dispari che moltiplicato per 3 potrebbe dare il numero inserito e':"
    print b - 1
    print "Questi sono i numeri dispari che moltiplicati tra loro possono dare il numero inserito:"
    print(list(range(3, b-1, 2)))

elif b % 2 == 1:
    print "Il piu' grande numero dispari che moltiplicato per 3 potrebbe dare il numero inserito e':"
    print b
    print "Questi sono i numeri dispari che moltiplicati tra loro possono dare il numero inserito:"
    print(list(range(3, b+2, 2)))
Come posso fare?

Grazie mille per l'aiuto!