<jupyter_start><jupyter_text>Video: un "piccolo" video di supporto a questo notebook: [![Video Ripasso](https://img.youtube.com/vi/DboxF2DxXlI/0.jpg)](https://www.youtube.com/watch?v=DboxF2DxXlI)  Informazioni generali su Python. * linguaggio multi-paradigma: orientato a oggetti, supporto per il functional programming.* semplice, indentazione, ...<jupyter_code>import this
import antigravity<jupyter_output><empty_output><jupyter_text>Programmazione orientata ad oggetti<jupyter_code>class Rettangolo:
    def __init__(self,b,a):
        self.base=b
        self.altezza=a 
primo = Rettangolo(10,20)
primo.altezza
primo.base
class Rettangolo:
    def __init__(self,b,a):
        self.base=b
        self.altezza=a 
    def perimetro(self):
        return 2*(self.altezza+self.base)
primo = Rettangolo(10,20)
primo.perimetro()
class Rettangolo:
    def __init__(self,b,a):
        self.base=b
        self.altezza=a 
    def __str__(self):
        return 'R: '+str(self.base)+' x '+str(self.altezza)
    def __len__(self):
        return max(self.altezza,self.base)
    def __add__(self,other):
        return Rettangolo(self.base+other.base,self.altezza+other.altezza)
    def perimetro(self):
        return 2*(self.altezza+self.base)
primo = Rettangolo(10,20)
print(primo)
print(primo)
len(primo)
secondo = Rettangolo(5,20)
terzo = primo + secondo 
print(terzo)<jupyter_output>R: 15 x 40<jupyter_text>Istruzioni di stampa: print()<jupyter_code>?print
print(1,2,3)
print(1,2,3,sep='$',end='\t')
print(1,5,7,sep='$',end='\t')
a = 'ciao'
type(a)
b = 'a'
type(b)
a= complex(34,67)
a
numeroComplesso=3+6j
numeroComplesso.imag<jupyter_output><empty_output><jupyter_text>Operatore di assegnazione<jupyter_code>x = 12
y = 12
id(x)==id(y)
y = '13'
id(y)==id(x)
x = ['simone']
y = ['simone']
id(x[0])==id(y[0])<jupyter_output><empty_output><jupyter_text>Input<jupyter_code>s = input('Inserisci un numero: ')
s
s = int(s)
s<jupyter_output><empty_output><jupyter_text>Whos<jupyter_code>whos<jupyter_output>Variable     Type          Data/Info
------------------------------------
Rettangolo   type          <class '__main__.Rettangolo'>
primo        Rettangolo    R: 10 x 20
secondo      Rettangolo    R: 5 x 20
terzo        Rettangolo    R: 15 x 40<jupyter_text>Stringhe<jupyter_code>#immutabili 
x='cima'
x[2]='n'
#cima -> cina
#init code here

#end code here<jupyter_output><empty_output><jupyter_text>Parole Riservate<jupyter_code>import keyword
print(keyword.kwlist)<jupyter_output><empty_output><jupyter_text>Funzione anonima<jupyter_code>def quad(x):
    return x*x
quad(2)
f = lambda x : x*x<jupyter_output><empty_output><jupyter_text>Esercizio:Fizz Buzz https://en.wikipedia.org/wiki/Fizz_buzz<jupyter_code>#fizz buzz
#init code here

#end code here<jupyter_output><empty_output><jupyter_text>Funzioni ricorsive<jupyter_code>#fattoriale
def fattoriale(n):
    if(n==0):
        print('fattoriale(0)=1')
        return 1
    print('fattoriale({})={}*fattoriale({})'.format(n,n,n-1))
    return n*fattoriale(n-1)
fattoriale(3)<jupyter_output><empty_output><jupyter_text>Esercizio funzione ricorsiva<jupyter_code>#esiste('1','32fgh3165')
#ritorna true se una stringa ha un elemento<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1520722966656279, 'fraction_numerical': 0.023060143346837023, 'mean_word_length': 5.01123595505618, 'pattern_counts': {'":': 0, '<': 48, '<?xml version=': 0, '>': 49, 'https://': 3, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '12', 'dir': 'jupyter-structured-clean-dedup', 'id': '637506', 'license': 'CC0-1.0', 'n_tokens_mistral': 1376, 'n_tokens_neox': 1340, 'n_words': 209, 'path': 'Lez05_ripasso/Ripasso.ipynb', 'repo_name': 'simonesilvetti/teaching_2017_units_dmg_python', 'size': '3209'}