Open In Colab

Introduzione programmazione

print(5*3)
x = 34 #INTEGER
type(x)
x = 34.1 #FLOAT
type(x)
#x=a ERROR
pippo=5
pippo*2
#1test          #ERROR

#la variabile=10  #ERROR
#la-variabile=10  #ERROR
lavariabile=10
stringa='ciao a tutti'
stringa
'ciao a tutti'
type(stringa)
str
stringa1 = 'la notte leoni...'
stringa2 = 'la mattina...'
print(stringa1+stringa2)
la notte leoni...la mattina...
età=29
testo = 'la mia età è ..'

#errore!

testo+età
testo+str(età)
'la mia età è ..29'
pere = '20'
type(pere)
str
# trasformazion in numero:
int(pere)
20
float(pere)
20.0
pere*3 ### errore!!!!!!!!!
'202020'
int(pere)*3
60
print(" se questa frase è troppo lunga, può \n benissimo essere suddivisa in \n due o più righe!")
 se questa frase è troppo lunga, può 
 benissimo essere suddivisa in 
 due o più righe!
from google.colab import files
uploaded = files.upload()
Upload widget is only available when the cell has been executed in the current browser session. Please rerun this cell to enable.
Saving dog.jpg to dog.jpg
!pip install calmsize
Collecting calmsize
  Downloading https://files.pythonhosted.org/packages/da/69/382ee4e1553f15321dd76109325f6a186a79354c53e8ac97cf79a2ebddbe/calmsize-0.1.3.tar.gz
Requirement already satisfied: setuptools in /usr/local/lib/python3.6/dist-packages (from calmsize) (46.3.0)
Building wheels for collected packages: calmsize
  Building wheel for calmsize (setup.py) ... [?25l[?25hdone
  Created wheel for calmsize: filename=calmsize-0.1.3-cp36-none-any.whl size=2887 sha256=7c7be09df3aa34a821d8f3f23d3482b01fa2bc707733a68b6460ed39e3801b7a
  Stored in directory: /root/.cache/pip/wheels/02/ac/1a/2a3418bc8f81abda6cd1b6d0f8f287556fc8de80dbabab75d1
Successfully built calmsize
Installing collected packages: calmsize
Successfully installed calmsize-0.1.3
import calmsize as cs
cs.size(2048)
2K<ByteSize amount=2.0>
!pwd  # per printare il percorso su cui ci troviamo
!ls  # per printare la lista delle cartelle che vediamo nell'attuale posizione
/content
sample_data
!mkdir test
#!rm -rf test/
cd test
/content/test
pwd
'/content/test'
cd ..
/content
from IPython.display import Image

Image('dog.jpg',width=200,height=120)
../../_images/introduzione_programmazione_34_0.jpg
Image('https://www.perfect-fit.it/media/11889/cat_m3_cat_outside_1.jpg',width=800,height=450)
../../_images/introduzione_programmazione_35_0.jpg
# Titolo
## Categoria
### Subcategoria
#### subsubcategoria

Oggetti in python

# [], {},() : LIST -- DICTIONARY -- TUPLE
## LIST ##
lista = [5,9,-2,11]
lista
[5, 9, -2, 11]
lista.sort()
lista
[-2, 5, 9, 11]
lista.sort(reverse=True)
lista
[11, 9, 5, -2]
lista = [0,1,-2,3,'hello',1.0] # int, string,float
lista
[0, 1, -2, 3, 'hello', 1.0]
type(lista)
list
# generate fast list:
lista1 = [3.5]*15
lista1
[3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5, 3.5]
lista2 = [4]*5
lista2
[4, 4, 4, 4, 4]
lista2.append(2) # in fondo
lista2
[4, 4, 4, 4, 4, 2, 2]
lista1 = [1, 2, 3, 4]
lista2 = [5, 6, 7, 8]
lista3 = lista1 + lista2
lista3
[1, 2, 3, 4, 5, 6, 7, 8]
listak = [10, 20, 30, 40]
lista2 = [50, 60, 70, 80]
listak.extend(lista2)
listak
[10, 20, 30, 40, 50, 60, 70, 80]
#count element inside a list
len(lista2)
7
#cancellare elemtni lista

anno = [2016, 2017, 2018, 2019 ,2020]
del anno [-1] ## se lo runno consecutivamente diventa lista vuota
anno
[2016, 2017, 2018, 2019]
del anno[0:2]
anno
[2018, 2019]
## oppure nomelista.remove(valore)
anno.remove(2018)
anno
[2019]
lista = [1,2,3,4,5]
lista
[1, 2, 3, 4, 5]
#select an element of a list
lista[5] # give an ERROR ## list index 0
lista[0]
#lista[1]
lista[4]
5
lista[4]==lista[-1]
True
lista[4]==lista[-2]
False
primi = [2,3,5,7,11,13,17,19,23,29,31]
primi[0:] # tutti
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
primi[4:]
[11, 13, 17, 19, 23, 29, 31]
primi[4:6]
[11, 13]
for pippo in primi:
     print(pippo)
2
3
5
7
11
13
17
19
23
29
31
lista_numerica = list(range(300,400,2))  ## solo numeri pari
lista_numerica
[300,
 302,
 304,
 306,
 308,
 310,
 312,
 314,
 316,
 318,
 320,
 322,
 324,
 326,
 328,
 330,
 332,
 334,
 336,
 338,
 340,
 342,
 344,
 346,
 348,
 350,
 352,
 354,
 356,
 358,
 360,
 362,
 364,
 366,
 368,
 370,
 372,
 374,
 376,
 378,
 380,
 382,
 384,
 386,
 388,
 390,
 392,
 394,
 396,
 398]
quadrati = []

for n in range(10):
    quadrati.append(n**2)

print(quadrati)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
quadrati = [n**2 for n in range(10)]

print(quadrati)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Dizionari

dizionario = {'key':'value'}
dizionario
{'key': 'value'}
type(dizionario)
dict
d = {'one':1,'two':2}
d
{'one': 1, 'two': 2}
e = {1:133,2:246}
e
f = {'one':1,2:2,3:'three'}
f.values()
dict_values([1, 2, 'three'])
d.keys()
dict_keys(['one', 'two'])
d.values()
dict_values([1, 2])

TUPLE (immutable)

tup1 = (1,2,3)
tup2 = (1,4,9)
tup1
(1, 2, 3)
tup2
(1, 4, 9)
 type(tup1)
tuple
b= sorted(tup2)
b
[1, 4, 9]
type(b)  # lo trasforma
list
### convert tuple to list
lista = [tup1,tup2]
lista
[(1, 2, 3), (1, 4, 9)]
lista[1] # perchè index 0
(1, 4, 9)
lista[0][1] #2
2
lista[1][1] #4
4

Array

import numpy as np
country = np.array(['USA', 'Japan', 'UK', 'Celestopoli', 'India', 'China'])
print(country)
['USA' 'Japan' 'UK' 'Celestopoli' 'India' 'China']
x = np.array([2,3,1,0])
x.shape
(4,)
y = np.array([[2,3,1,0],[1,1,1,1]])
y.shape
(2, 4)
np.zeros((2, 3))
array([[0., 0., 0.],
       [0., 0., 0.]])
k =np.ones((2, 3))
k
array([[1., 1., 1.],
       [1., 1., 1.]])
k.shape
(2, 3)
k
array([[1., 1., 1.],
       [1., 1., 1.]])
np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(2, 10, dtype=float) # default strp=1
array([2., 3., 4., 5., 6., 7., 8., 9.])
np.linspace(1., 4., 6)
array([1. , 1.6, 2.2, 2.8, 3.4, 4. ])
x = np.array([3, 6, 9, 12])
x/3.0
x
array([ 3,  6,  9, 12])
print(x)
[ 3  6  9 12]
type(x)
numpy.ndarray
z = np.array([2,3,1,0])
np.sort(z)
array([0, 1, 2, 3])
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[9, 8, 7], [6, 5, 4]])
c = np.concatenate((a, b))
c
array([[1, 2, 3],
       [4, 5, 6],
       [9, 8, 7],
       [6, 5, 4]])
c.shape
(4, 3)
np.ones((2, 2), dtype=bool)
array([[ True,  True],
       [ True,  True]])
z = np.array([[1, 0, 1], [0, 0, 0]],dtype=bool)
z
array([[ True, False,  True],
       [False, False, False]])
## Conversion to an array:

import numpy as np
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
my_list = np.asarray(my_list)
#type(my_list)
my_list
array([1, 2, 3, 4, 5, 6, 7, 8])
my_tuple = ([8, 4, 6], [1, 2, 3])
type(my_tuple)
tuple
my_tuple = np.asarray(my_tuple)
my_tuple
array([[8, 4, 6],
       [1, 2, 3]])

List vs Tuple

####### List vs Array
y = [3, 6, 9, 12]
y/3
##Give the error
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-138-1c78efc41cec> in <module>()
      1 ####### List vs Array
      2 y = [3, 6, 9, 12]
----> 3 y/3
      4 ##Give the error

TypeError: unsupported operand type(s) for /: 'list' and 'int'
# Sorting a list
numbers = [1, 3, 4, 2]
numbers
[1, 3, 4, 2]
numbers.sort()
print(numbers)
[1, 2, 3, 4]
## String list
a = ["mela", "banana", "arancia"]
a
['mela', 'banana', 'arancia']
a[0] = "fragola"
a
['fragola', 'banana', 'arancia']
type(a)
list
a = ("mela", "banana", "arancia")
a
('mela', 'banana', 'arancia')
type(a)
tuple
a[0] = "fragola"
## Give the error

List recap

a = [] 
a.append("ciao") 
a.append("a") 
a.append("tutti gli") 
a.append("studenti") 
print("il numero degli elementi all'interno della lista è: ", len(a))
il numero degli elementi all'interno della lista è:  4
a
['ciao', 'a', 'tutti gli', 'studenti']
# remove one element from list
a.remove(a[0]) #remove first element 'Hello'
a
['a', 'tutti gli', 'studenti']

Algebra Booleana

True
True
False
False
variabile = True
type(variabile)
bool
True + True
2
45*True
45
45*False
0
50>=40.9999
True
10//2 == 11//2
True
# vale anche con le stringhe!! 

'ciao' != 'goodbye'
True
'ciao' != 'ciao'
False

AND

5>6 and 6>5
False
5>4 and 6>7
False

OR

25 >=25  or 31!= 31
True
21 >21 or 31!=31
False
28!=28 or 33==33
True

NOT

#negazione

not 3==3
False
not 2==3
True

IF example

età=18

if età <18:
    print('sei minorenne')
else:
    print('sei maggiorenne')
sei maggiorenne
età=18

if età <10:
    print('sei un bimbo')
elif età<=18:
    print('sei un regaz')
elif età<50:
    print('sei un boomer')
else:
    print('bella vecchio! sei anziano')
sei un regaz
# Caso patente 
età=50
patente=False

if età >=18 and patente==True:
    print('puoi guidare finalmente la tua auto da sogno')
elif età >=18 and patente==False:
    print('no patente, no party')
else:
    print('mi dispiace, ritenta quando sarai più grande!!')
no patente, no party

Scrivi le funzioni

def print_tre_volte():
    print('Ciao')
    print('il mio nome è')
    print('Daniele')
print_tre_volte()
Ciao
il mio nome è
Daniele
def somma_due_numeri(a,b):
     print('questa funzione somma due numeri:')
     risultato = a + b 
     print('il risultato è  '+str(risultato)) # qui è costruito
somma_due_numeri(-10.0,3.0)
questa funzione somma due numeri:
il risultato è  -7.0

ALLE FUNZIONI POSSIAMO PASSARE DEI VALORI CHIAMATI ARGOMENTI

def somma_due_numeri(a,b): ## a,b sono argomenti
    #print('questa funzione somma due numeri:')
    risultato = a + b
    return risultato
# OUTPUT DI UNA FUNZIONE è IL VALORE DEL SUO RETURN
# TUTTE LE FUNZIONI HANNO UN RETURN
somma_due_numeri(2,3)
5
ls
formule.py  __pycache__/  sample_data/

INPUT

x =input()
#x = input('inserire qualcosa   ')
hhj
type(x)
str
### PROGRAMMA
print('questo è il mio programma in python')

nome=input('inserire il tuo nome  ') 
print('buon pomeriggio  '+nome+'  spero tu stia imparando tantissimo!')
questo è il mio programma in python
inserire il tuo nome  tdcyttf
buon pomeriggio  tdcyttf  spero tu stia imparando tantissimo!
età = input('quanti anni hai?')
print('Bene!!! dunque hai '+ età + '  anni. Il porssimo anno ne avrai '+ str(int(età)+1))
quanti anni hai?3
Bene!!! dunque hai 3  anni. Il porssimo anno ne avrai 4