Corso di introduzione al Python


Primo incontro

Primi esempi di programmi in Python
  1. tabella di una funzione
  2. dalla base 10 alla base 2 o n (vedi funzione ricorsiva)
  3. gioco di Collatz
  4. controllo di primalità di un numero
  5. divisori di un numero
  6. numeri perfetti
  7. media, varianza, sqm
http://www.dti.unimi.it/%7Ecitrini/MD/SitoTeoriaNumeri/index.htm

def tabella(min, max, f):
    x=min
    while x<=max:
        print x,'   ',f(x)
        x=x+0.2


def dividi(num,base):
    if num/base ==0:
        print num % base,
    else:
        dividi(num/base,base)
        print num % base,

num=4100
base=9
print num,' in base ',base,':'
dividi(num,base)
print



"""gioco di Collatz Alice 2003 n 12 pag 556
   partendo da qualunque numero si arriva sempre a 8 4 2 1 """
def serie(n):
    if n>1:
        if n % 2 == 0:
            n=n/2
            print n,
        else:
            n=3*n+1
            print n,
        serie(n)
   
for i in range(2,50):
    print i
    serie(i)
    print
    print
serie(14123)

def primo(k):
    a=3
    x=True
    while a*a<=k:
        if (k % a) == 0:
            x=False
            print 'divisore',a
            print 'secondo divisore',k/a
            a=k
        a=a+2
    return x


#divisori di 5040 e 7560
def divisori(k):
    L=[1]
    radice=math.sqrt(k)
    #print radice
    a=2
    while a<=radice:
        if k % a==0:
            L.append(a)
            if a<>k/a:
                L.append(k/a)
        a=a+1
        #print a
    return L

def somma_elementi(L):
    somma=0
    for k in L:
        somma=somma+k
    return somma

def perfetto(k):
    D=divisori(k)
    print 'divisori di',k,':'
    print D
    if somma_elementi(D)==k:
        return True
    else:
        return False

def media(Lista):
    """ media, varianza dei valori in Lista
    """
    somma = 0
    n = len(Lista)
    for k in Lista:
        somma = somma+k
    m = float(somma)/n

    scartialqua=[(m-k)**2 for k in Lista]

    somma = 0
    for k in scartialqua:
        somma = somma+k

   
   
    varian = float(somma)/n
    sqm = varian**0.5
    print 'media ',m, ' varianza ', varian,'  sqm ', round(sqm,2)
    print 'rel  ',round(sqm/m,4)
    return m, varian, sqm


Lavori di gruppo