Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2008, 16:54   #1
Occasus
Member
 
L'Avatar di Occasus
 
Iscritto dal: May 2005
Città: Another World
Messaggi: 237
[Python] Aiuto esercizio di "How to Think Like a Python Programmer"

Ciao a tutti.
Dopo diversi fallimenti, sto tentando di imparare qualcosa su un linguaggio di programmazione, in questo caso il Python.
http://www.greenteapress.com/thinkpy...005.html#toc50 , esercizio 3.

Avendo già a disposizione queste funzioni:
Codice:
import math
from TurtleWorld import *
TurtleWorld()
bob = Turtle()
bob.delay = 0.01

def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    """(in degrees). t is a turtle.
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)
come posso fare a realizzare la funzione per disegnare i fiori?

L'unica cosa funzionante che sono riuscito a fare è la definizione della funzione:
Codice:
def flower(t, r, petals):


Grazie per l'aiuto.
Occasus è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 13:18   #2
Occasus
Member
 
L'Avatar di Occasus
 
Iscritto dal: May 2005
Città: Another World
Messaggi: 237
up
Occasus è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 21:31   #3
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ma scusa..
per il poco che ricordo di python....
le virgolette triple nella funzione arc non dovrebbero essere alla fine della stringa?
cmq spè che mi scarico 'sto turtleworld che non ho mai sentito e vedo
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 21:35   #4
Occasus
Member
 
L'Avatar di Occasus
 
Iscritto dal: May 2005
Città: Another World
Messaggi: 237
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ma scusa..
per il poco che ricordo di python....
le virgolette triple nella funzione arc non dovrebbero essere alla fine della stringa?
cmq spè che mi scarico 'sto turtleworld che non ho mai sentito e vedo
Sí, il commento l'ho aggiunto mentre scrivevo il messaggio.
È chiaramente sbagliato, ma non era presente nelle versioni che ho passato all'interprete.
Occasus è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 21:49   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 180)
        #fai girare la tartaruga di 90°


TurtleWorld()
bob = Turtle()
bob.delay = 0.01
flower(bob, 50, 4)
dovrebbe essere qualcosa del genere ovviamente inserendo il comando che fa girare la tartaruga di 90° a sinistra e *in teoria dovrebbe andare*
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 22:04   #6
Occasus
Member
 
L'Avatar di Occasus
 
Iscritto dal: May 2005
Città: Another World
Messaggi: 237
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
dovrebbe essere qualcosa del genere ovviamente inserendo il comando che fa girare la tartaruga di 90° a sinistra e *in teoria dovrebbe andare*
Questo è il problema. Ho provato tante soluzioni (la prima funzione era simile, se non uguale a quella tua) che in teoria dovrebbero andare, ma in pratica non disegnano i fiori.
Occasus è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2008, 23:03   #7
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da Occasus Guarda i messaggi
Questo è il problema. Ho provato tante soluzioni (la prima funzione era simile, se non uguale a quella tua) che in teoria dovrebbero andare, ma in pratica non disegnano i fiori.
ehmm...
se hai un raggio x e fai un arco di 180° allora ti ritrovi esattamente in corrispondenza del punto di partenza, dopo aver disegnato un arco, però traslato di 2x lungo la direzione perpendicolare (con verso a sinistra) della posizione inziale della tartaruga.
La direzione della tartaruga sarà a quel punto parallela rispetto a quella iniziale, ma il verso sarà opposto.
Quindi ruotando di 90° verso destra e ripetendo il procedimento avremo che sarà traslata di 2x nella direzione verso cui era rivolta prima di essere girata di 90°.
Finendo il giro si avrà una situazione di questo tipo (rappresentando solo i diametri degli archi):
Codice:
------
|    |
|    |
------
con la tartaruga che sarà ritornata al punto di partenza disegnando i 4 archi che formano i petali del fiore.
A quel punto generalizzare la funzione per ogni numero di petali dovrebbe essere banale così ad occhio.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 11:21   #8
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7257
per non saper ne leggere ne scrivere in python sono riuscito a ottenere una cosa simile
Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 90)
        lt(turtle, 90)
        arc(turtle, radius, 90)
        lt(turtle, (360/petals+90))


TurtleWorld()
bob = Turtle()
bob.delay = 0.001
flower(bob, 90, 7)
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 12:45   #9
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
per non saper ne leggere ne scrivere in python sono riuscito a ottenere una cosa simile
Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 90)
        lt(turtle, 90)
        arc(turtle, radius, 90)
        lt(turtle, (360/petals+90))


TurtleWorld()
bob = Turtle()
bob.delay = 0.001
flower(bob, 90, 7)
infatti hai usato la banale generalizzazione e il left turn che per qualche strano motivo ( ) quei geni hanno chiamato lt anzichè left turn
Ho sempre odiato chi chiama i metodi e le variabili con nomi non significativi

Cmq il mio codice, con un numero di petali pari a 4 ed aggiungendo il left turn funziona perfettamente
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 12:54   #10
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7257
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
infatti hai usato la banale generalizzazione e il left turn che per qualche strano motivo ( ) quei geni hanno chiamato lt anzichè left turn
Ho sempre odiato chi chiama i metodi e le variabili con nomi non significativi

Cmq il mio codice, con un numero di petali pari a 4 ed aggiungendo il left turn funziona perfettamente
ma come fai a disegnare un petalo con un solo arco?

ps. da uno che usa tk che nomi dei metodi ti aspettavi?
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:16   #11
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
ma come fai a disegnare un petalo con un solo arco?

ps. da uno che usa tk che nomi dei metodi ti aspettavi?
..hai provato a lanciare il mio codice per 4 petali con l'aggiunta di lt(turtle, 90)?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:19   #12
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
anzi...
guarda che figata
Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 180)
        lt(turtle, 360/petals)


TurtleWorld()
bob = Turtle()
bob.delay = 0.01
flower(bob, 50, 8)


è belliffimo

__________________

Ultima modifica di ^TiGeRShArK^ : 19-01-2008 alle 13:21.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:32   #13
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7257
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
anzi...
guarda che figata
Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 180)
        lt(turtle, 360/petals)


TurtleWorld()
bob = Turtle()
bob.delay = 0.01
flower(bob, 50, 8)


è belliffimo

nono tu devi provare questo

Codice:
import math
from TurtleWorld import *


def polyline(t, length, n, angle):
    """Draw n line segments with the given length and
    angle (in degrees) between them. t is a turtle.
    """
    for i in range(n):
        fd(t, length)
        lt(t, angle)

def arc(t, r, angle):
    """Draw an arc with the given r (radius) and angle
    (in degrees). t is a turtle."""
    arclength = 2 * math.pi * r * angle / 360
    n = int(arclength / 4)
    length = arclength / n
    polyline(t, length, n, float(angle)/n)


def flower(turtle, radius, petals):
    for i in range(petals):
        arc(turtle, radius, 120)
        lt(turtle, 120)
        arc(turtle, radius, 120)
        lt(turtle, (360/petals+120))


TurtleWorld()
bob = Turtle()
bob.delay = 0.001
flower(bob, 90, 9)
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:36   #14
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
nono tu devi provare questo
certo che è intrippante sta tartarughina
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:44   #15
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7257
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
certo che è intrippante sta tartarughina
mi ricordo di averci giochicchiato con un oggetto simile quando ero giovane..
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 17:49   #16
Occasus
Member
 
L'Avatar di Occasus
 
Iscritto dal: May 2005
Città: Another World
Messaggi: 237
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
ehmm...
se hai un raggio x e fai un arco di 180° allora ti ritrovi esattamente in corrispondenza del punto di partenza, dopo aver disegnato un arco, però traslato di 2x lungo la direzione perpendicolare (con verso a sinistra) della posizione inziale della tartaruga.
La direzione della tartaruga sarà a quel punto parallela rispetto a quella iniziale, ma il verso sarà opposto.
Quindi ruotando di 90° verso destra e ripetendo il procedimento avremo che sarà traslata di 2x nella direzione verso cui era rivolta prima di essere girata di 90°.
Finendo il giro si avrà una situazione di questo tipo (rappresentando solo i diametri degli archi):
Codice:
------
|    |
|    |
------
con la tartaruga che sarà ritornata al punto di partenza disegnando i 4 archi che formano i petali del fiore.
A quel punto generalizzare la funzione per ogni numero di petali dovrebbe essere banale così ad occhio.
Il problema, come hai notato, è che funziona solo con quattro petali.

Forse l'unica soluzione è prendere goniometro, calcolatrice e squadra, calcolare le misure e scrivere la funzione.
Occasus è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 19:36   #17
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da Occasus Guarda i messaggi
Il problema, come hai notato, è che funziona solo con quattro petali.

Forse l'unica soluzione è prendere goniometro, calcolatrice e squadra, calcolare le misure e scrivere la funzione.
no.. quello di cui ho postato l'immagine è fatto in quel modo con 8 petali
e cmq l'avevo già scritto io che serviva una banale generalizzazione per farlo funzionare per tutti i casi..
cosa che ha fatto konte nel suo codice
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 11:11   #18
guyver
Bannato
 
L'Avatar di guyver
 
Iscritto dal: May 2001
Città: Versilia
Messaggi: 1503
cad in python

ciao approfitto di questo 3d per chiedere:
stavo provando a far partire questo cam scritto in python e rilasciato sotto licenza mit
però mi da errore su un indentazione ma non capisco come risolverlo...
qualcuno me lo sà dire???
Allegati
File Type: zip cam.zip (22.3 KB, 3 visite)
guyver è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2008, 11:58   #19
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Non si "approfitta" di un thread, se ne apre uno nuovo, non costa nulla farlo ed in tal modo si contribuisce a mantenere ordinato il forum.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 10:03   #20
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16211
Quote:
Originariamente inviato da Occasus Guarda i messaggi
Ciao a tutti.
Dopo diversi fallimenti, sto tentando di imparare qualcosa su un linguaggio di programmazione, in questo caso il Python.
http://www.greenteapress.com/thinkpy...005.html#toc50 , esercizio 3.

Avendo già a disposizione queste funzioni:

CUT

come posso fare a realizzare la funzione per disegnare i fiori?
Anzitutto, mi sa che gli angoli dovranno essere due: uno per il numero dei petali (che è semplicemente 360°/n) e uno per la loro ampiezza, che chiamiamo alpha.

Proviamo a far disegnare alla tartarughina la parte inferiore di un petalo orizzontale.
Possiamo farlo dicendole di
- girare a destra di alpha/2, e poi
- tracciare un arco di ampiezza alpha.

A questo punto, la tartarughina è girata a sinistra di alpha/2 rispetto a est.
Per farle fare la parte superiore, dobbiamo farle ripetere la procedura, specularmente rispetto all'asse orizzontale, e in senso inverso.
Quindi, nel momento in cui inizia a disegnare, deve essere rivolta di alpha/2 a destra rispetto a ovest.
E questo, glielo possiamo far fare con un giro verso sinistra di 180°-alpha.

Adesso si può ripetere il tracciamento dell'arco; alla fine del quale, la tartarughina sarà girata di alpha/2 a sinistra rispetto a ovest.
Per farla di nuovo andare verso est, basta farla girare a sinistra di 180°-(alpha/2).
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Samsung punta sull'autonomia: batteria p...
Hollywood in rivolta dopo la presentazio...
I qubit a gatto di Alice & Bob resis...
YouTube Premium Lite debutta in Italia: ...
L'Italia compra un pezzo di storia del w...
Intel non molla le GPU, ecco come ha mig...
Amazon non ce la fa ad aspettare: tanti ...
Tutti pazzi per Sora 2, e c'è chi...
ChatGPT sempre più usato sul lavo...
Xbox Game Pass aumenta di prezzo? Ecco c...
107€ sono pochissimi: imperdibile l'SSD ...
'PlayStation è un'azienda terribi...
Galaxy S25 Ultra batte iPhone 17 Pro Max...
'BioWare potrebbe essere venduta': lo sc...
Musk lascia Netflix tra polemiche e canc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:26.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v