Forum
>>
Principianti
>>
funzione range?
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da DeletedUser |
2016-10-06 20:40:49 - funzione range?
|
Buonasera,
non avendo un'esempio sul mio manuale, mi viene spiegato semplicemente cosa fa la funzione range. Da quel che ho capito se io scrivo range10 acquisisce tutti gli elementi compresi tra 0 a 9. Se provo ad eseguire un programmino fatto da me non mi funziona(e ovviamente so già che sbaglio qualcosa). Mi potete fare un esempio semplice e funzionante su un programmino fatto con range? Altra cosa che non ho capito.. Se io scrivo range[1,10,2] perché dovrebbe stampare questi numeri? [1,3,5,7,9] il mio manuale dice che è così, ma non ne capisco il motivo.. |
|
Scritto da ㎝ |
2016-10-06 20:49:47 - Re: funzione range?
|
Cos'è "il tuo manuale"?
È range(10), con le parentesi tonde, non quadre. E, cosa significa "acquisisce"?
Ci fai vedere il tuo codice?
>>> for i in range(1, 10, 2): print(i) ... 1 3 5 7 9
Prova a variare i tre numeri, e vediamo se ci arrivi da solo... ㎝ THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you can do whatever you want with this stuff. If we meet some day, and you think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝ |
|
Scritto da DeletedUser |
2016-10-06 22:22:10 - Re: funzione range?
|
Il manuale è per la versione 2.5, ho scaricato la versione 3.6 credendo che non cambiasse tantissimo, ma in molte cose non mi stavo trovando (tipo il fatto che sia stato eliminato raw_input, oppure il fatto che dopo print ciò che voglio stampare vada tra parentesi).
Riguardo al termine che ho usato "acquisire" ho sbagliato.. non mi veniva il termine.. proverò a dire "leggere" sperando che lo azzecchi. Non badare ai termini che uso, perché a me non interessa essere "tecnico". A me interessa per lo più capire a piccoli passi il funzionamento di questo linguaggio di programmazione. Siccome non mastico l'informatica in generale mi sono munito di questo manuale "per bambini". Quindi se il mio manuale paragona le variabili con dei valori a delle scatole con dei contenuti... non farci caso se anziché variabili io possa dire scatole Ho letto meglio.. Ti confermo il fatto che range in questo manuale viene messo tra parentesi quadre (infatti range fa parte del capitolo intitolato liste speciali, e sul mio manuale le liste si fanno tra parentesi quadre). Nomi=["Andrea","Jacopo","Luca","Stefano"] print(Nomi2) (e mi stampa il nome di Luca) Ho letto meglio ciò che dice il manuale, dice che: il terzo indice si chiama "passo" e dice con quale intervallo leggere i numeri. Quindi scrivendo range[1,10,2] mi legge i numeri dispari, perché partendo da 1 mi deve leggere ogni due numeri. Riguardo l'esempio che hai fatto.. Ancora non sono arrivato al capitolo su for, viene dopo questo capitolo e quello sulle liste annidate. Giusto per capire e portarmi un po' avanti, ma range va inserito per forza in un ciclo? --- Ultima modifica di harimau08 in data 2016-10-06 22:42:39 --- --- Ultima modifica di harimau08 in data 2016-10-06 22:48:39 --- |
|
Scritto da Daniele aka Palmux |
2016-10-07 10:44:12 - Re: funzione range?
|
Sono molto curioso, che manuale stai leggendo?
|
|
Scritto da DeletedUser |
2016-10-07 14:01:32 - Re: funzione range?
|
Il manuale è questo in allegato.
Vorrei mettere subito le mani avanti dicendo che leggendolo "alla svelta", è molto probabile che io non abbia capito o abbia frainteso molti dei contenuti di questo manuale. (infatti alla minima difficoltà vengo in questo forum a far domande per ulteriori semplificazioni). Valutando il fatto che ho la terza media, e che non vado a scuola da 10 anni.. Credo che il mio livello d'attenzione non sia tanto diverso dai soggetti a cui è indirizzato il manuale (cioè ai ragazzini). Il capitolo sulle liste speciali (con l'accenno a range) inizia da pagina 104 e come si può notare in questo capitolo.. non c'è un esempio di un programma il cui sia usato range. Ma solo la definizione, il suo scopo e il fatto che se io scrivo range 10 mi stampa consecutivamente i numeri da 0 a 9. Se poi un esempio di range lo troverò nei prossimi capitoli questo è un altro discorso, ancora non ci sono arrivato. Ripeto la domanda...Ma alla fine range per funzionare deve per forza stare in un ciclo? |
|
Scritto da Daniele aka Palmux |
2016-10-07 15:03:31 - Re: funzione range?
|
Mi permetto di suggerirti di abbandonare quel manuale, è troppo datato.
Ti lascio alcuni link, valuta di passare ad uno di questi. Libri cartacei (Italiano) Python di Marco Beri [Guida tascabile, ottima per immergerti subito nel linguaggio] Imparare Python di Mark Lutz [La storia dell'insegnamento di Python] Programmare con Python - Guida completa di Marco Buttu [Ottimo testo] Programmare in Python di Kenneth A. Lambert Libri digitali (Italiano) Pensare in Python di Allen B. Downey Immersione in Python 3 di Mark Pilgrim Libri cartacei (Inglese) Nota: Ovviamente esistono molte delle versioni elencate in italiano. Learning Python 5th edition di Mark Lutz [Versione aggiornata di Imparare Python] Python Cookbook di David Beazley e Brian K. Jones [Fuori concorso perché non è una guida per principianti, ma è essenziale su ogni scrivania di un programmatore Python] Libri digitali (Inglese) Learn Python the Hard Way di Zed Shaw [Video e tutorial, con risorse anche a pagamento] Think Python di Allen B. Downey Invent with Python di Albert Sweigart [Non solo un libro, ma ben quattro] --- Ultima modifica di Daniele aka Palmux in data 2016-10-07 15:04:11 --- |
|
Scritto da DeletedUser |
2016-10-07 15:27:20 - Re: funzione range?
|
Farò come hai detto, mi mancano solo 8 pagine per terminare tutto ciò che mi interessa (l'ultimo modulo su pygame non mi interessa).
Poi passerò ad aggiornarmi ad uno dei manuali che mi hai suggerito. Grazie per il consiglio |
|
Scritto da Claudio_F |
2016-10-07 18:57:41 - Re: funzione range?
|
Le variabili intese come scatole, in Python sono un po' fuorvianti (in altri linguaggi no), anche se come primissima approssimazione le "scatole" sono le cose più facilmente rappresentabili nella mente, e allora vada l'approssimazione visto il "target" di quel corso. Ma appena fai qualcosa come questa il paragone con le scatole crolla miseramente:
>>> a = [1, 2, 3] >>> b = a >>> b[ 0 ] = 99 >>> print(b) [99, 2, 3] >>> print(a) [99, 2, 3] print, input e range sono alcune delle cose cambiate tra Py2 e Py3: In Py3 print è diventata una funzione invece di una (anomala) istruzione In Py3 input equivale a raw_input di Py2 In Py3 range equivale a xrange di Py2 Nella shell interattiva si può chiedere a Python con che cosa abbiamo a che fare, Py2 ci dice che range(n) produce una lista: >>> type(range(10)) <type 'list'>Mentre in Py3 viene prodotto un "oggetto" che può essere iterato ad esempio con for: >>> type(range(10)) <class 'range'>Quasi sempre si può scrivere in modo compatibile con entrambe le major version del linguaggio, ad esempio questa sintassi produce sempre una lista sia in Py2 che Py3: list(range(10))E questo dovrebbe rispondere anche alla domanda se range va usato *sempre* in un ciclo... no, la lista prodotta si può usare per altri scopi. Invece il range di Py3 (equivalente al xrange di Py2) è pensato appositamente per essere iterato in un ciclo, il vantaggio è che non viene prodotta subito tutta la lista (che occupa memoria) ma un valore per volta. *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.