Python
Mediu de programare online pentru copii
Se primesc date de pe server.

COMANDĂ EXEMPLU DE UTILIZARE
pendown() , pd() pd()()
Nava spațială are creionul activ (jos) şi trasează o linie în urma sa.
penup() , pu() pu()()
Nava spațială nu are creionul activ (sus) şi nu mai trasează o linie în urma sa.
pensize(valoare), width(valoare) pensize(25)
Stabileşte dimensiunea vârfului creionului la valoare pixeli.
pencolor(culoare) pensize("#ff00ff")
Stabileşte culoarea de trasare. Parametrul culoare poate fi impus folosind nume standard ori valori HEX (format folosit pe internet). Exemple:
pencolor('red')
pencolor("#ff0000")
Culori standard: "black" (
), "blue" (
), "lime" (
), "cyan" (
), "red" (
), "magenta" (
),
"yellow" (
), "white" (
), "brown" (
), "tan" (
), "green" (
), "aquamarine" (
), "salmon" (
),
"purple" (
), "orange" (
), "gray" (
).
fillcolor(culoare) fillcolor("yellow")
Stabileşte culoarea de umplere (implicit, negru). Parametrul culoare poate fi un nume standard ori un cod HEX (format folosit pe internet).
Exemple:
fillcolor("red")
fillcolor("#ff0000")
color(c_trasare[,c_umplere]) color("red","green")
Putem modifica culorile de trasare și umplere simultan. Dacă parametrul c_umplere lipsește, culoarea descrisă de c_trasare este folosită pentru ambele atribute.
COMANDĂ EXEMPLU DE UTILIZARE
stamp() stamp()
Se desenează o copie a formei grafice a navei spațiale pe pânză în poziția curentă, precum o ștampilă.
begin_fill() begin_fill()
Se porneşte o nouă cale ce descrie o formă geometrică (un poligon).
end_fill() end_fill()
Se închide calea curentă și se umple forma geometrică folosind culoarea de umplere (vezi fillcolor()).

Exemplu. Programul de mai jos trasează un pătrat verde. Se alege culoarea de umplere, apoi se pornește calea prin begin_fill():
from turtle import *
fillcolor('green')
begin_fill()
for i in range(4):
    forward(150)
    right(90)
end_fill()

Se trasează forma geometrică dorită, iar comanda end_fill() închide calea şi o umple cu verde.
fill() print(fill()) ; if (fill()) ...
Funcția returnează o valoare booleană în funcție de starea modului de umplere: adevărat (True) sau fals (False), fiind utilă în anumite programe puțin mai complexe.
dot() dot()
Se desenează un punct în poziția curentă. Funcția este foarte utilă dacă dorim să o utilizăm și în combinație cu penup(), trasând doar anumite puncte importante pe parcursul deplasării navei spațiale.

Exemplu. Mai jos desenăm doar colțurile unui pătrat:
from turtle import *
pensize(10)
pu()
for i in range(4):
    dot()
    fd(100)
    left(90)
pu()
back(50)
circle(rază, unghi, pas) circle(50,360,100)
Un cerc este caracterizat de rază, adică distanța de la centru la orice punct al său. Apoi, trebuie să înțelegi că un cerc este format din pas puncte. Poți trasa un cerc complet folosind ca unghi valoarea de 360 grade sau doar o parte din el, mai exact un arc de cerc impunând un unghi mai mic corespunzător. Cu cât pas este mai mare, cu atât finețea trasării formei geometrice este mai mare.
Magia geometriei. Atunci când pas = 4 , se va trasa un pătrat (ca un romb), iar pentru pas = 5 , un pentagon. Alegem pas = 6 , obținem un hexagon, ș.a.m.d. Cu cât creștem valoarea parametrului pas, cu atât poligonul regulat se apropie de forma cercului care îl înscrie!

Exemple. Testează codul de mai jos pentru a înțelege mai bine:
from turtle import *
#triunghi, pătrat, ...
for i in range(6):
    circle(100,360,i+3)
pencolor("yellow")
#cercul la final
circle(100,360,100)

write(mesaj,deplasare,aliniere,stil) write("Salut")
Se scrie grafic textul din mesaj pornind de la poziția curentă. Parametrul deplasare este de tip boolean (True / False) și permite ca nava se se deplaseze sau nu în timp ce mesajul este desenat grafic. Parametrul de aliniere poate lua valorile "left" , "center" sau "right". Stilul textului se introduce sub forma unui tuplu de date: (font, dimensiune, stil_font).

Exemplu. Mai jos este scris un text fără a se mișca nava spațială (False), aliniat la stânga și cu un stil anume setat:
from turtle import *
fillcolor("yellow")
write("Hai pe Marte!", False, "left", ("Verdana","32px","bold"))

Observații
• Parametrul stil_font poate fi "normal" , "italic" sau "bold" .
• Pentru a deplasa nava fără a fi trasată linia, putem utiliza bineînțeles penup() înaintea comenzii write(), apoi să revenim prin pendown() :

from turtle import *
fillcolor("yellow")
penup()
write("Hai pe Marte!", True, "left", ("Verdana","32px","bold"))
pendown()


• Doar textul ca mesaj este obligatoriu ca parametru, restul fiind opționale. Jucați-vă cu diverse valori pentru stilul textului! Spre exemplu, numele unor fonturi standard uzuale sunt: "Tahoma", "Verdana", "Arial", "Calibri", etc.
COMANDĂ EXEMPLU DE UTILIZARE
nume_variabila = clone() clona1 = clone()
O nouă variabilă, adresabilă prin nume_variabila , va reține un nou obiect grafic (o navă spațială identică) ce poate fi comandată cu ajutorul limbajului de programare Python. Poziția pe ecran și restul parametrilor vor fi de asemenea identici cu toate atributele navei "mamă". Poți crea o clonă, două ... sau câte vrei!
Atenție! Nava "mamă" poate fi comandată în continuare prin comenzi directe precum fd(80), însă clona1 din exemplu va primi instrucțiuni precum clona1.fd(50) deoarece sunt obiecte diferite pe ecran, iar adresarea trebuie efectuată corespunzător!
Observație importantă! Python este un interpretor și efectuează instrucțiunile secvențial, adică una după cealaltă. Astfel, obiectele grafice de pe ecran vor realiza alternativ animațiile în funcție de programul creat de tine!
Exemplu. Testează codul de mai jos:

from turtle import *
pencolor("#671915")
fd(100)
clona1 = clone()
clona1.bk(200);
clona1.circle(40,360,4)
clona2 = clone()
clona2.fillcolor("white")
clona2.setpos(-200,200)
clona2.write("Super tare pe Marte!",False,"left",("Verdana","24px","bold"))
clona2.pu(); clona2.bk(50)
fd(90); circle(70) #revenim la nava "mamă"
nume_variabila = Turtle() nava2 = Turtle()
O nouă variabilă, adresabilă prin nume_variabila , va reține un nou obiect grafic (o navă spațială nouă). Spre deosebire de clone(), această funcție creează un obiect nou cu parametri impliciți care pornește de la coordonatele (0,0).
Exemplu. Testează codul de mai jos:

from turtle import *
#nava mamă
color("yellow")
right(45)
back(100)
circle(20)
#o nouă navă creată
nava2 = Turtle()
nava2.fd(100)
nava2.left(45)
nava2.fd(100)
nava2.circle(20)


Un mic truc. Pentru a simula mișcarea simultană a două nave spațiale, le putem muta cu un pas mic (de exemplu 1 pixel) alternativ, ca în exemplul de mai jos:

from turtle import *
#nava principală
color("yellow"); speed(0)
#a doua navă
nava2 = Turtle()
nava2.color("green")
nava2.fd(30)
nava2.speed(0)
for i in range(120):
lt(3); fd(1)
nava2.rt(3); nava2.fd(1)

Viteza celor două nave în această situație scade totuși considerabil...
DESPRE LIMBAJUL PYTHON 3
Limbajul Python 3 este folosit la scară largă în prezent, fiind foarte popular, simplu de învățat și de utilizat. Spre deosebire de alte limbaje de programare, Python 3 se înțelege foarte repede, chiar de la început. Studiază primele lecții oferite gratuit pe www.pythonisti.ro pentru a afla mai multe despre Python!

Ai acces la acest curs de oriunde și de pe ce dispozitiv dorești, mediul de programare Python 3 fiind integrat și optimizat pentru mobile. Nu ai nevoie să instalezi niciun software suplimentar, ci doar să înveți.

Limbajul Python este gratuit, open-source și puternic orientat pe obiecte.
INFORMAȚII PENTRU PROFESORI
Cursul online interactiv respectă programa școlară aprobată de Ministerul Educației și poate fi folosit în cadrul oricărui ciclu de învățământ ca o introducere în limbajul de programare Python 3. Informațiile prezentate sunt optimizate ca dimensiune și se pune accentul pe interacțiunea frecventă cu utilizatorul. Evaluarea exercițiilor și problemelor propuse în acest curs este în timp real și fiecare conține feedback interactiv.

Platforma este modernă, online și copiii pot crea programe cool în Python 3 de pe orice dispozitiv, oriunde și oricând.

Interfața grafică este intuitivă, sunt prevenite imediat eventualele greșeli de scriere, iar elevii pot experimenta cu ușurință programarea!

Oricărui elev care știe să scrie și să citească! La orice vârstă elevii pot învăța concepte matematice și informatice în Python, alături de profesori ori părinți - le dezvoltă gândirea creativă, soluționarea optimă a problemelor, logica și colaborarea. Totuși, mediul Python este puternic! Poate rula și proceduri recursive, precum și multe alte programe complexe!
INFORMAȚII PENTRU PĂRINȚI
Începând de la ciclul gimnazial, elevii învață programare la școală. Spre deosebire de alte limbaje, Python 3 are sintaxa simplificată pentru a putea scrie cod mult mai ușor! Este perfect pentru începători, prietenos și de viitor. Elevii moderni studiază Python 3!

Studiază lecțiile și elementele de teorie, analizează problemele rezolvate și propuse, efectuează testele grilă (atenție la note) ... și obții Diploma pentru Programator Junior. 😀 Intră și tu în Comunitatea pythoniștilor acum!
DESPRE TURTLE GRAPHICS
Turtle Graphics este un limbaj de programare educațional creat în anul 1967 de către Daniel G. Bobrow, Wally Feurzeig, Seymour Papert și Cynthia Solomon. În prezent, este cunoscut ca fiind limbajul grafic al Țestoasei (în limba engleză, Turtle Graphics), deoarece prin utilizarea unor comenzi, aceasta sau un robot trasează pe ecran ori pe o suprafață elemente grafice:



Seymour Papert, profesor la Laboratorul de Inteligență Artificială din cadrul M.I.T. a inventat conceptul Turtle Graphics în anii ’70:
... țestoasa. Te poți gândi la ea ca la un instrument grafic. Imaginează-ți că te uiți la monitorul unui calculator. Acolo vezi o mică țestoasă, care se mișcă atunci când introduci comenzi cu ajutorul limbajului ei, lăsând în urma sa o linie în timp ce se mișcă. Comanda forward(50) va face ca țestoasa să se miște drept înainte o anumită distanță. forward(100) o va face să se miște în aceeași direcție de două ori mai departe. În curând vei prinde ideea că numerele reprezintă distanța la care se mișcă; acestea pot fi considerate ca pași. Acum dacă vrei să o faci să meargă în altă direcție, introduci o comandă ca right(90). Ea va rămâne în același loc, dar se rotește spre est, în cazul în care era inițial orientată spre nord. Cu aceste cunoștințe, vei putea fi capabil să trasezi ușor un cerc ori dreptunghi. Iar dacă acest lucru este ușor pentru tine, poți să te gândești cum să trasezi un cerc sau cum poți încerca să trasezi o spirală.
La un moment dat, îți vei găsi punctul în care vei fi în dificultate; iar când vei ajunge în acel punct, îți ofer un mic sfat: Pune-te în locul țestoasei. Imaginează-ți că te miști pe traseul acelui pătrat, cerc ori spirală ... sau orice poate fi
”.

Turtle Graphics în Python 3 poate fi considerat un mijloc atractiv de introducere a conceptelor de programare elevilor. Prin simpla scriere a unor mici instrucțiuni, elevii pot crea programe grafice interesante. Programele sunt rulate în mod animat, iar efectul este vizualizat imediat pe ecran. Cum ați văzut, se pot rula și subrutine recursive, precum și multe alte programe complexe!
MODULUL TURTLE ÎN PYTHON 3
Limbajul Python 3 are modulul turtle inclus în pachetul de bază, deci trebuie doar să îl includem în program apoi să rulăm un exemplu, ca mai sus în editor!

Considerați spațiul de lucru ca o pânză pe care puteți desena orice doriți. Imaginați-vă că Țestoasa are un creion atașat, iar în timp ce se mișcă lasă o linie dreaptă ori curbă în urma sa. Rolul vostru este doar să scrieți programul potrivit! La început, Țestoasa se află în centrul spațiului de lucru (în engleză, turtle space).

Aici pe Marte noi îi spunem "navă spațială" țestoasei grafice!

NOTĂ. Putem folosi în browser doar o parte dintre funcțiile și comenzile din limbajul Python 3, iar acestea sunt descrise în detaliu pe pagină. Mediul de programare online este o simulare creată într-un alt limbaj de programare pentru web numit JavaScript, iar viteza animațiilor este net superioară programelor native Python!
PROGRAME DEMO ÎN PYTHON
Vezi ce poți face grafic cu Python folosind câteva exemple cool!