DIVAGAZIONE: il nome "terminale" deriva dal fatto che tale software svolge la stessa funzione dei vecchi terminali, ovvero macchine degli inizi dell'era informatica, il cui unico scopo era quello di fare da tramite tra l'operatore umano e il main-frame, ricevendo i comandi (l'input) dall'operatore e l'esito del comando (l'output) dal mainframe. Il terminale è l'interfaccia che usiamo per interagire con il nostro sistema operativo e con il quale possiamo svolgere le stesse funzioni dell'interfaccia grafica, ovvero avviare applicazioni, copiare e maneggiare i file e, in generale, cambiare la configurazione del nostro sistema.La riga di comando include un cursore lampeggiante dopo una riga del tipo C:\Users\Angelo>, che indica il fatto di essere pronto a ricevere i nostri comandi. Tale riga è la directory corrente della riga di comando ed è molto importante dato che determina il modo in cui possiamo indicare i programmi da eseguire. Noi vogliamo eseguire l'editor IDLE e pertanto digitiamo idle seguito da invio e aspettiamo.
(C:\Users\Angelo\Anaconda3\) C:\Users\Angelo>idleIn questo modo abbiamo chiesto al sistema operativo di avviare il programma con nome idle.exe. Si aprirà una finestra bianca con un prompt diverso da quello del terminale.
ATTENZIONE ATTENZIONE!! Se l'invocazione di idle ritorna un errore di comando non trovato, allora non abbiamo eseguito la riga di comando di Anaconda. Questo perché i programmi che abbiamo installato con Anaconda NON SONO conosciuti dalla riga di comando di Windows, ma devono essere manualmente inclusi, ovvero sono inclusi nel prompt di Anaconda. Più precisamente, il percorso nel filesystem in cui sono i file degli eseguibili non è incluso nella variabile di ambiente PATH, che contiene la lista di percorsi utilizzata dalla riga di comando per cercare i file degli eseguibili.Tale riga di comando, adesso, è la nostra interfaccia con l'inteprete python! Qui possiamo inserire i nostri comandi python e saranno eseguiti. Per aprire l'editor, adesso, selezioniamo dal menu File->New File e si aprirà, finalmente, il nostro editor di testi. L'editor di testi è diverso da un editor di documenti (word processor): Microsoft Word o Google Docs o Apple Pages o qualsiasi editor di documenti sono in grado di produrre e formattare bellissimi documenti, ma non sono progettati per mostrare e accedere al contenuto reale di un file. Quando creiamo un documento, vengono impiegati tanti caratteri che, in realtà, non sono mostrati a video, i cosiddetti caratteri speciali e le informazioni di formattazione. Per i nostri programmi python, tali informazioni non vanno bene. Il nostro python (e in generale un qualsiasi linguaggio di programmazione) ha bisogno di file con testo puro (raw text), ovvero sequenze di carattari. Gli editor di testi sono in fatti in modo da generare esattamente tali tipi di file. Inseriamo del testo nella finestra dell'editor...
C:\Users\Angelo\Documents\Python Scripts>allora la directory corrente è la directory Python Scripts, all'interno della directory Documents, all'interno della directory Angelo, all'interno della directory Users del disco C:. NOTA: in Linux e MacOS, il prompt è tipicamente diverso poiché non viene mostrato il disco e la directory è relativa alla home dell'utente. Per cui, per conoscere la working directory in maniera univoca bisogna usare il comando pwd (print working directory). Quindi, ammesso che il nostro utente si chiami angelo:
mypc:Documents/Python Scripts angelo$ pwd /home/angelo/Documents/Python Scripts mypc:Documents/Python Scripts angelo$
La prima cosa utile da sapere della riga di comando è che mette a disposizione molti comandi da tastiera che rendono rapido il suo uso. In particolare:Per usare propriamente la riga di comando due comandi in particolare sono importanti:
- l'auto-completamento con il tasto TAB, che consente di aiutare a completare automaticamente i nomi dei file e dei comandi (ad esempio se iniziamo a scrivere "cd Doc" e premiamo il tasto TAB --quello sopra il CAPS Lock-- la riga di comando completa da solo il comando "cd Documents"). Immaginiamo la comodità se il nome del file che vogliamo scrivere è qualcosa tipo user_assignments_settings_with_fixed_names_v.1.4.05-rev3.12.json o peggio...
- la navigazione della storia, che consiste nel memorizzare tutti i comandi eseguiti e consente di richiamare i comandi inseriti in precedenza per eseguirli di nuovo o alterarli prima di eseguirli.
C:\Users\Angelo> cd Documents C:\Users\Angelo\Documents>Per tornare alla directory precedente, usiamo il nome speciale composto da due punti ..:
C:\Users\Angelo\Documents> cd .. C:\Users\Angelo>La sintassi di cd in Linux e MacOS è identica. Perché è importante conoscere la directory corrente della riga di comando? Perché quando vogliamo eseguire un programma python dobbiamo essere sicuri che il file da eseguire sia nella directory corrente. Alternativamente, dobbiamo specificare a python l'intero percorso del file, comprese tutte le sotto-directory. Esempio: per eseguire il file hello.py che abbiamo creato prima, potremmo usare i seguenti comandi (che sono equivalenti)
C:\Users\Angelo\Documents\Python Scripts> python hello.py
C:\Users\Angelo>python "C:\Users\Angelo\Documents\Python Scripts\hello.py"
ATTENZIONE!! Poiché il file hello.py che abbiamo creato prima NON contiene codice python, otteremo un'errore... INOLTRE, nella seconda versione del comando abbiamo dovuto usare le virgolette poiché era presente un carattere di spazio nel nome di una delle directory (Python Scripts). INFINE, se abbiamo Linux o MacOS i due comandi sarebbero leggermente diversi, poiché le directory si indicano con lo slash (/), invece che con il backslash (\).
>>> 7*3 21 >>> 5/2 2.5 >>> 5//2 2 >>> 5%2 1 >>> 5**2 25 >>> 10**100 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 >>> 5*(4+3)/2 17.5 >>>Python mette a disposizione il concetto di funzione, ovvero un modo molto pratico per definire una serie di istruzioni da ripetere. Inoltr, python offre tantissime funzioni che aiutano a scrivere dei programmi utili. Una delle funzioni che useremo spessissimo è la funzione print, ovvero la funzione che stampa a video qualcosa. Quando vogliamo usare una funzione in python dobbiamo sempre usare le parentesi tonde. Quindi possiamo chiedere a python di stampare a video la stringa Hello world! usando le parentesi tonde e le virgolette per definire una stringa nel seguente modo:
>>> print("Hello world!") Hello world! >>>Possiamo anche chiedere a python di stampare una stringa e il risultato di un'operazione:
>>> print ("Zero", 4+4-4-4) Zero 0 >>>
print("Hello world!")che stampa a video la stringa "Hello world!". Come possiamo vedere, i caratteri che abbiamo inserito sono colorati in maniera diversa, perché l'editor IDLE ci aiuta a distinguere la sintassi di python: i nomi delle funzioni sono di un colore, i simboli sono di un altro e le stringhe di un altro ancora. Salviamo il file dal menu di IDLE File->Save. Adesso possiamo eseguire il nostro programma (che, ricordiamo è stato salvato come C:/Users/Angelo/Documents/Python Scripts/hello.py). Dalla riga di comando assicuriamoci di essere nella directory giusta --nel caso usiamo cd per spostarci-- e digitiamo dir (o ls) per essere sicuri che il file sia lì. E adesso possiamo eseguire il programma eseguendo il comando che abbiamo introdotto prima:
C:\Users\Angelo\Documents\Python Scripts> python hello.py Hello world! C:\Users\Angelo\Documents\Python Scripts>Abbiamo eseguito un programma che stampa una stringa. Possiamo adesso creare qualsiasi altro programma python semplicemente selezionando dal nostro interprete python il comando File->New File.
# Four fours challenge # Filename: fourfours.py # Problem description: The four fours challenge! from math import * print("Zero is", 4+4-4-4)e salviamo il nuovo file con il nome fourfours.py. Adesso possiamo eseguire il file e vedere che stampa "Zero is 0". La sfida consiste nello scrivere un programma che stampa a video tutti i numeri da 0 a 20 usando sempre e soltanto e comunque quattro 4... Vanno bene anche numeri con decimali (ovvero
1.0, 2.0
etc.) e frazionari (ovvero 0.4, 0.19
).
Poiché abbiamo usato la riga from math import *
, per affrontare la sfida possiamo usare anche due funzioni matematiche fondamentali, ovvero il fattoriale (factorial
) e la radice quadrata (sqrt
): avremo, ad esempio, che factorial(5)
ritorna 5!=5*4*3*2*1=120 e che sqrt(9)=3
.
-- I | Attachment | History | Action | Size | Date | Who | Comment![]() |
---|---|---|---|---|---|---|---|
![]() |
python00.jpg | r1 | manage | 30.8 K | 2017-10-03 - 10:10 | AngeloSpognardi | |
![]() |
python01.jpg | r1 | manage | 92.2 K | 2017-10-03 - 09:18 | AngeloSpognardi | |
![]() |
python02.jpg | r1 | manage | 34.0 K | 2017-10-03 - 09:40 | AngeloSpognardi | |
![]() |
python03.jpg | r1 | manage | 24.2 K | 2017-10-03 - 09:53 | AngeloSpognardi | |
![]() |
python04.jpg | r1 | manage | 63.5 K | 2017-10-03 - 09:56 | AngeloSpognardi | |
![]() |
python05.jpg | r2 r1 | manage | 28.9 K | 2017-10-03 - 09:58 | AngeloSpognardi |
![]() |
![]() |
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica ![]() |
|
![]() |
![]() |