1)un programma python non è altro che un file di testo.
per "caricarlo" sul Raspberry, o lo editi direttamente su di esso, o lo trasferisci via copia di file, chiave USB, rete, FTP, SFTP, SSH, VNC, come vuoi...
Solitamente io mi collego al Raspberry in remoto da pc windows in SSH tramite il programma MobaXterm.
ha anche una pratica funzione per trasferire i file (basta trascinarli nelle cartelle del Raspberry che visualizza in una barra ad albero sulla sinistra)
Per lanciarlo, basterà, da Terminale, scrivere python nomeprogramma.py o python3 nomeprogramma.py se usi python 3.x
2) questa è piuttosto semplice: Raspberry non ha ingressi analogici, solo digitali. Per usare grandezze analogiche si può aggiungere qualsiasi integrato ADC (Analog to Digital Converter) per convertire il segnale analogico in un numero digitale che Raspberry può gestire.
3)come si indicano le uscite, dipende da che libreria utilizzi in Python per gestire il GPIO. ve ne sono infatti diverse. Oggi non ha senso non usare gpiozero, che semplifica moltissimo la vita : ad esempio non serve specificare se quel dato pin dovrà essere un ingresso o una uscita: se richiamo la funzione LED per comandare un LED, ovviamente sarà una uscita e automaticamente gpiozero te lo imposterà come uscita. Viceversa se richiamo Button, sarà per un tasto, e automaticamente setterà il pin come ingresso.
Gpiozero è preinstallata in Raspbian, la sua
documentazione la trovi qui
in ambito di apprendimento di Python, ti consiglio anche
questo articolo, nel nostro Blog in cui vengono elencati dei libri (molti anche gratuiti) per imparare il linguaggio.