Profilo di Daniele aka Palmux

Nome Daniele aka Palmux
Indirizzo email ask@me
AvatarAvatar utenti
Messaggi1265
  • Re: Quesito: come ritornare a passi precedenti di programma inserendo nuovi valori
    Forum >> Programmazione Python >> Scripting
    Ciao caro, primo esercizio... sistema il codice.

    Visto che la sintassi è parte del linguaggio, per capire eventuali errori metti tutto nella forma corretta usando l'apposito tasto code che trovi vicino alla tavolozza dei colori. Se non ti trovi, posta il codice con strumenti come Pastebin o similari.

    Poi si ragiona sul resto.

    Cya
  • Re: Esercizi Python
    Forum >> Programmazione Python >> Files e Directory
    Ciao a te e benvenuto in questo magico mondo. :py:

    Qui su questa risorsa tendiamo ad aiutare in maniera diversa, non risolvendo i quesiti per conto tuo, ma aiutandoti dove ti blocchi. Per questo sarebbe meglio che tu iniziassi con un esercizio alla volta, scrivendo del codice e poi eventualmente chiedendo aiuto all'insorgere di determinate difficoltà, a quel punto saremo ben lieti di aiutarti.

    Forza e coraggio, anche i grandi viaggi cominciano con un piccolo passo.

    Cya

    P.S. Ho spostato il tuo messaggio nella sezione Principianti.

  • Re: Nome pc in una lan
    Forum >> Principianti
    Riguardo socket.herror dove hai trovato i codici di errore ed il loro significato?
    Ho trovato tutto nella documentazione ufficiale.

    Cya


  • Re: Python - mySQL - MAMP
    Forum >> Principianti
    mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'localhost:3306' (61 Connection refused)

    c'è qualche problema di porta?
    Ciao caro, purtroppo non conosco il pacchetto che utilizzi, non so se esistano degli impedimenti per la connessione al DB. Vedo da quello che posti che non hai specificato il database, come specificato in questa pagina, che fa riferimento alla versione PRO a dire il vero.


    Prova a seguire la documentazione e magari fatti una ricerca su Stackoverflow, non si sa mai.

    In bocca al lupo e tienici aggiornati sui tuoi successi.

    Cya
  • Re: Nome pc in una lan
    Forum >> Principianti
    Non sbagli nulla, ma semplicemente non lo otterrai perché non esiste nessun riferimento/mappa DNS che dia informazioni alla scansione, guardati qui il motivo.
    import socket
    
    def host_lkp(addr):
        return socket.gethostbyaddr(addr)[0]
    
    ip_list = ['192.168.0.114', '192.168.0.118', '192.168.0.1', '192.168.0.136', '8.8.8.8']
    
    for ip in ip_list:
        try:
            machine = host_lkp(ip)
            print(f'Successo all'indirizzo {ip} si trova {machine}') 
        except socket.herror as e: 
            if e.errno == 1: 
                print(f'IP {ip} non ha record DNS') 
            elif e.errno == 2: 
                print('DNS server al momento risulta non disponibile') 
            else: 
                print('Error sconosciuto') 
    Il risultato dell'output sarà, con ogni probabilità:
    IP 192.168.0.114 non ha record DNS
    IP 192.168.0.118 non ha record DNS
    IP 192.168.0.1 non ha record DNS
    IP 192.168.0.136 non ha record DNS
    Successo all'indirizzo 8.8.8.8 si trova dns.google
    Se andiamo avanti con l'esempio con un server noto:
    >>> socket.gethostbyname('google.it')
    '142.250.180.131'
    >>> socket.gethostbyaddr('142.250.180.131')[0] 
    'mil04s43-in-f3.1e100.net'

    Ora se nel /etc/hosts aggiungessi (esempio per macchina GNU/Llinux, su Windows ignoro il procedimento):

    [...]
    192.168.0.114     pc2
    A questo punto otterresti qualcosa di diverso nella scansione:
    Successo all'indirizzo 192.168.0.114 si trova pc2
    IP 192.168.0.118 non ha record DNS
    IP 192.168.0.1 non ha record DNS
    IP 192.168.0.136 non ha record DNS
    Successo all'indirizzo 8.8.8.8 si trova dns.google


    Fammi sapere se ti è tutto chiaro.
    Cya
  • Re: Esercizio python sequenza
    Forum >> Principianti
    Ciao caro e benvenuto. :birrame:

    Data una sequenza di numeri scrivere un programma che stampi in imput i numeri compresi nell' intervallo 0;10

    Mhhhh, ma che vuol dire concretamente? Se qui sotto sbaglio l'interpretazione e non è quello che cerchi, fammi un esempio di quello che hai in ingresso e quello che ti aspetti debba succedere.

    N=int(input("inserisci un numero della sequenza"

    Contatore=0

    While n<=10

    Contatore=contatore+1

    Else


    Attento, l'indentazione in Python è parte del linguaggio e non può essere omessa. Usa il tasto code che trovi prima della tavolozza di colori durante la scrittura del messaggio.

    Dunque alcuni consigli:

    A. In questo caso potresti usare un ciclo for in accoppiata a range();
    B. Attenzione alla sintassi, è while non While, è else, non Else;
    C. Si tratta di input e non imput.



    Andiamo a vedere quello che hai scritto (aggiustato solo un po' per gli errori di sintassi):
    n = int(input("Inserisci un numero della sequenza:" ))
    contatore = 0
    while n <= 10:
        contatore += 1
    else:
        print("Tutto finito")
    A. Nella prima riga chiedi all'utente di inserire un numero;
    B. Nella seconda indichi che il contatore deve essere 0;
    C: Alla terza riga inizi col ciclo e gli stai dicendo... finché n è inferiore o uguale a 10, fai cose e vedi gente;
    D. Poi incrementi il contatore (che però non controlli mai);
    E. L'else è trascurabile, viene eseguito al termine.

    Ora se ho capito vagamente quello che vorresti, potresti usare una cosa del genere:
    for i in range(10): 
        n = int(input("Inserisci un numero: "))
        print("Hai inserito ", n) 
    else: 
        print("Siamo arrivati in fondo, tanti saluti")
    Questo semplice script continua a chiederti numeri e stampare la tua scelta, finché non arriva a 10 e quindi saluta e finisce.

    Se vuoi usare il while e il tuo contatore, non cambia molto:
    contatore = 0
    while contatore != 10:
        n = int(input("Inserisci un numero: ")) 
        print("Hai inserito ", n) 
    else: 
        print("Siamo arrivati in fondo, tanti saluti") 


    Perdonatemi se è un esercizio semplice ma io studio biologia e di programmazione non me ne intendo molto, non riesco a trovare una tipologia simile su internet e non so se sia giusto

    In bocca al lupo per i tuoi studi, consiglio personale è meglio che provi a capire semplicissimi script come questo anziché cercare la soluzione in rete, quello che apprendi resterà per sempre.

    Considera che potresti abbellire e di molto il tuo script, magari mettendo un controllo per interpretare il tipo di oggetto inserito, mettere un messaggio che informa l'utente di quanti numeri ha inserito e quanti ne può ancora inserire e cosine del genere.

    Fammi sapere se ti sono stato utile e se ho capito quello che chiedevi.

    Cya

    P.S. Ma che è successo coi messaggi, perché ne hai inseriti millemila? Attento in futuro, grazie.
  • Re: Differenza fra iterable e iterator e uso specifico...
    Forum >> Principianti
    Uh, guarda è un argomento molto vasto e che abbraccia vari aspetti. Su un forum è difficile affrontare con la dovuta profondità un argomento del genere, ma esiste una vastissima letteratura online sull'argomento che spiega per filo e per segno quello che chiedi, introducendo anche altri aspetti.

    A margine ricorda sempre che puoi "misurare" il peso degli oggetti e dare riscontro a quanto appreso:

    >>> import sys
    >>> l = [i for i in range(100000)]
    >>> g = (i for i in range(100000))
    >>> sys.getsizeof(l, "bytes")
    87616
    >>> sys.getsizeof(g, "bytes")
    112

    Ci sono, ti dicevo, delle interessanti letture [1] e [2] che spiegano la magia e con Google ne troverai altre mille, se l'argomento ti stuzzica non hai che da approfondire.

    Cya

  • Re: Installazione su macOS Sierra Versione 10.12.6
    Forum >> Principianti
    Mi spiace, non ho nessuna esperienza negli ambienti con la mela.

    Ti posso solo suggerire di chiedere aiuto, eventualmente, su uno degli altri canali della nostra comunità, potresti essere più fortunato.

    Cya
  • Re: Esercizio su Cicli While e For
    Forum >> Principianti
    Il risultato è quello che desideravo, grazie mille (conoscevo la funzione sum() e mi ero scordato l'esistenza di len()); vorrei chiederti solo un'ultima cosa, hai accennato al fatto che tu lo avresti scritto in modo più sintetico, come?
    Ciao caro, ascolta un fesso e fidati di me, ora non vuoi saperlo. ;)

    Ti dico solo che si tratta in sostanza di usare costrutti che accorpano in una sola riga le varie istruzioni. Meglio che non precorriamo i tempi, devi prima arrivarci a studiare cose come le list comprehensions e funzioni anonime (lambda) ad esempio.




    Grazie mille di tutto, scusa il disturbo e soprattutto buon fine settimana.
    Nessun disturbo, questa risorsa è qui per questo.

    Cya e buono studio.
  • Re: Esercizio su Cicli While e For
    Forum >> Principianti
    intanto ti ringrazio per la risposta e perdonami per il casino che ho combinato, ecco il codice "sistemato" (sperando nel modo giusto):
    Figurati, è un piacere.

    Allora ci sono varie cose da sistemare (analizzo solo il tuo codice non come lo scriverei io):

    A. mylist = [] ti viene azzerata ad ogni passaggio, mettila prima del while.

    B. Accorpa un po', puoi ridurre i passaggi. Ad esempio:
    mylist = [] 
    while True:
        val = input("Inserisci un numero: ")
        try:
            int(val)
            mylist.append(int(val))
        except ValueError:
            try:
                float(val)
                mylist.append(float(val))
            except ValueError:
                print("Non hai inserito un numero valido")

    C. Come hai visto non usare try... except in quel modo, ma in questo caso con un ValueError;

    D. Sto all'incirca seguendo il tuo script, ma non l'avrei fatto così prolisso, ci sono modi per semplificarlo (non voglio spaventarti);

    E. Per vedere il numero di record presenti nella tua lista, una len(mylist);

    F. Cosa hai contro sum() per sommare i valori della lista?

    Puoi mettere a posto il tuo script ora.

    Cya

    P.S. Non caricare file sul server, nel 2022 non serve farlo, esistono sistemi come quello che ti ho citato prima (Pastebin), che sono molto più comodi.