Turtle je knjižnica Python, ki se uporablja za ustvarjanje grafike, slik in iger. Razvil ga je Wally Feurzeig, Seymour Parpet in Cynthina Slolomon leta 1967. Bil je del izvirnega programskega jezika Logo.
Programski jezik Logo je bil priljubljen med otroki, saj nam omogoča, da na enostaven način narišemo privlačne grafe na zaslon. Je kot majhen predmet na zaslonu, ki se lahko premika glede na želeni položaj. Podobno ima knjižnica želv interaktivno funkcijo, ki omogoča prilagodljivost pri delu s Pythonom.
V tej vadnici se bomo naučili osnovnih konceptov knjižnice želve, kako nastaviti želvo na računalnik, programiranja s knjižnico želve Python, nekaj pomembnih ukazov želve in razvili kratek, a privlačen dizajn z uporabo knjižnice želve Python.
Uvod
Turtle je vnaprej nameščena knjižnica v Pythonu, ki je podobna virtualnemu platnu, na katerega lahko narišemo slike in privlačne oblike. Ponuja zaslonsko pero, ki ga lahko uporabljamo za risanje.
The želva Knjižnica je namenjena predvsem uvajanju otrok v svet programiranja. S pomočjo Turtle's knjižnice lahko novi programerji dobijo idejo o tem, kako lahko programiramo z Python na zabaven in interaktiven način.
Koristen je za otroke in izkušenega programerja, saj omogoča oblikovanje edinstvenih oblik, privlačnih slik in različnih iger. Oblikujemo lahko tudi mini igre in animacije. V prihajajočem razdelku se bomo naučili različnih funkcij knjižnice želv.
Začetek z želvo
Preden delamo s knjižnico želv, moramo zagotoviti dve najpomembnejši stvari za programiranje.
runas v lupini powershell
Želva je vgrajena v knjižnico, tako da nam je ni treba nameščati posebej. Samo uvoziti moramo knjižnico v naše okolje Python.
Knjižnica želv Python je sestavljena iz vseh pomembnih metod in funkcij, ki jih bomo potrebovali za ustvarjanje naših modelov in slik. Uvozite knjižnico želv z naslednjim ukazom.
import turtle
Zdaj lahko dostopamo do vseh metod in funkcij. Najprej moramo ustvariti namensko okno, kjer izvajamo vsak ukaz za risanje. To lahko storimo tako, da inicializiramo spremenljivko zanj.
s = turtle.getscreen()
Videti bo kot zgornja slika, mali trikotnik na sredini zaslona pa je želva. Če se zaslon ne prikaže v vašem računalniškem sistemu, uporabite spodnjo kodo.
Primer -
import turtle # Creating turtle screen s = turtle.getscreen() # To stop the screen to display turtle.mainloop()
Izhod:
Zaslon enako kot platno in želva deluje kot pero. Želvo lahko premikate, da oblikujete želeno obliko. Želva ima nekatere spremenljive lastnosti, kot so barva, hitrost in velikost. Lahko se premakne v določeno smer in se premakne v to smer, razen če mu rečemo drugače.
V naslednjem razdelku se bomo naučili programirati s knjižnico želv Python.
Programiranje z želvo
Najprej se moramo naučiti premikati želvo v vse smeri, kot želimo. Pisalo lahko prilagodimo kot želva in njeno okolje. Naučimo se nekaj ukazov za izvajanje določenih nalog.
Želva se lahko premika v štiri smeri.
- Naprej
- Nazaj
- levo
- Prav
Gibanje želve
Želva se lahko premika naprej in nazaj v smeri, v katero je obrnjena. Oglejmo si naslednje funkcije.
Primer - 3:
import turtle # Creating turtle screen t = turtle.Turtle() # To stop the screen to display t.forward(100) turtle.mainloop()
Izhod:
Primer - 2:
import turtle # Creating turtle screen t = turtle.Turtle() # Move turtle in opposite direction t.backward(100) # To stop the screen to display turtle.mainloop()
Izhod:
Primer - 3:
import turtle # Creating turtle screen t = turtle.Turtle() t.heading() # Move turtle in opposite direction t.right(25) t.heading() # To stop the screen to display turtle.mainloop()
Izhod:
Primer -
import turtle # Creating turtle screen t = turtle.Turtle() t.heading() # Move turtle in left t.left(100) t.heading() # To stop the screen to display turtle.mainloop()
Izhod:
Zaslon je na začetku razdeljen na štiri kvadrante. Želva je postavljena na začetku programa in je (0,0) znana kot domov.
Primer -
import turtle # Creating turtle screen t = turtle.Turtle() # Move turtle with coordinates t.goto(100, 80) # To stop the screen to display turtle.mainloop()
Izhod:
Risanje oblike
Razpravljali smo o gibanju želve. Zdaj se naučimo preiti na izdelavo dejanske oblike. Najprej narišemo mnogokotnik saj so vse sestavljene iz ravnih črt, povezanih pod določenimi koti. Razumejmo naslednji primer.
Primer -
t.fd(100) t.rt(90) t.fd(100) t.rt(90) t.fd(100) t.rt(90) t.fd(100)
Videti bo kot naslednja slika.
Izhod:
Z želvo lahko narišemo katero koli obliko, na primer pravokotnik, trikotnik, kvadrat in še veliko več. Toda pri risanju pravokotnika moramo paziti na koordinato, saj vse štiri stranice niso enake. Ko narišemo pravokotnik, lahko celo poskusimo ustvariti druge poligone s povečanjem števila stranic.
Risanje prednastavljenih figur
Recimo, da želite narisati a krog . Če bi ga poskušali narisati na enak način, kot ste narisali kvadrat, bi bilo zelo dolgočasno in bi morali porabiti veliko časa samo za to eno obliko. Na srečo knjižnica želv Python ponuja rešitev za to. Za risanje kroga lahko uporabite en sam ukaz.
Krog je narisan z danim polmerom. Obseg določa, kateri del kroga je narisan, in če obseg ni naveden ali ga ni, narišite celoten krog. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle screen t = turtle.Turtle() t.circle(50) turtle.mainloop()
Izhod:
Narišemo lahko tudi piko, ki ji pravimo tudi zapolnjen krog. Sledite podani metodi, da narišete zapolnjen krog.
Primer -
import turtle # Creating turtle screen t = turtle.Turtle() t.dot(50) turtle.mainloop()
Izhod:
Številka, ki smo jo posredovali v pika () funkcija je premer pike. Velikost pike lahko povečamo in zmanjšamo s spreminjanjem njenega premera.
Do sedaj smo se naučili premikanja želve in oblikovanja različnih oblik. V naslednjih nekaj razdelkih se bomo naučili prilagajanja želve in njenega okolja.
Spreminjanje barve zaslona
Privzeto se zaslon želve odpre z belim ozadjem. Lahko pa spremenimo barvo ozadja zaslona z naslednjo funkcijo.
Primer -
import turtle # Creating turtle screen t = turtle.Turtle() turtle.bgcolor('red') turtle.mainloop()
Izhod:
Prešli smo rdečo barvo. Lahko ga tudi zamenjamo s katero koli barvo ali pa uporabimo šestnajstiško kodo, da uporabimo različne kode za naš zaslon.
Dodajanje slike v ozadje
Enako kot barvo ozadja zaslona lahko dodamo sliko ozadja z naslednjo funkcijo.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() turtle.bgpic() turtle.bgpic(r'C:UsersDEVANSH SHARMADownloadsperson.webp') turtle.bgpic() turtle.mainloop()
Spreminjanje velikosti slike
Velikost slike lahko spremenimo z velikost zaslona() funkcijo. Sintaksa je podana spodaj.
Sintaksa -
turtle.screensize(canvwidth = None, canvheight = None, bg = None)
Parameter - Zahteva tri parametre.
Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() turtle.screensize() turtle.screensize(1500,1000) turtle.screensize() turtle.mainloop()
Izhod:
Spreminjanje naslova zaslona
Včasih želimo spremeniti naslov zaslona. Privzeto prikazuje Grafika vadnice Python . Lahko ga naredimo osebnega, kot npr 'Moj prvi program Turtle' oz 'Risanje oblike s Pythonom' . Naslov zaslona lahko spremenimo z naslednjo funkcijo.
turtle.Title('Your Title')
Poglejmo primer.
Primer -
import turtle # Creating turtle t = turtle.Turtle() turtle.title('My Turtle Program') turtle.mainloop()
Izhod:
Naslov zaslona lahko spremenite glede na želje.
Spreminjanje velikosti peresa
Velikost želve lahko povečamo ali zmanjšamo glede na zahteve. Včasih potrebujemo debelino v peresniku. To lahko naredimo z naslednjim primerom.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() t.pensize(4) t.forward(200) turtle.mainloop()
Izhod:
Kot lahko vidimo na zgornji sliki, je pero štirikrat večje od prvotne velikosti. Z njim lahko rišemo črte različnih velikosti.
Nadzor barv peresa
Privzeto, ko odpremo nov zaslon, želva prikaže črno barvo in riše s črnim črnilom. Lahko ga spremenimo glede na obe stvari.
- Spremenimo lahko barvo želve, ki je barva polnila.
- Spremenimo lahko barvo peresa, kar je v bistvu sprememba obrisa ali barve črnila.
Če želimo, lahko spremenimo tudi barvo pisala in barvo želve. Predlagamo, da povečate velikost želve, da bodo spremembe v barvi jasno vidne. Razumejmo naslednjo kodo.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() # Increase the turtle size t.shapesize(3,3,3) # fill the color t.fillcolor('blue') # Change the pen color t.pencolor('yellow') turtle.mainloop()
Izhod:
Vnesite naslednjo funkcijo, da spremenite barvo obeh.
Primer - 2:
import turtle # Creating turtle turtle t = turtle.Turtle() t.shapesize(3,3,3) # Chnage the color of both t.color('green', 'red') t.forward(100) turtle.mainloop()
Izhod:
Pojasnilo:
V zgornji kodi je prva barva barva peresa, druga pa barva polnila.
Želva izpolni sliko
Barve naredijo sliko ali oblike zelo privlačne. Oblike lahko polnimo z različnimi barvami. Razumejmo naslednji primer, da risbam dodamo barvo. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() t.shapesize(3,3,3) t.begin_fill() t.fd(100) t.lt(120) t.fd(100) t.lt(120) t.fd(100) t.end_fill() turtle.mainloop()
Izhod:
Pojasnilo:
Ko se program izvaja, najprej nariše trikotnik in ga nato zapolni s črno barvo kot zgornji rezultat. Uporabili smo začetek_polnjenja() metoda, ki nakazuje, da bomo narisali zaprto obliko, ki jo bomo zapolnili. Nato uporabimo .end_fill(), kar pomeni, da smo končali z ustvarjanjem oblike. Zdaj se lahko napolni z barvo.
Spreminjanje oblike želve
Privzeto je oblika želve trikotna. Lahko pa spremenimo obliko želve in ta modul nudi številne oblike za želvo. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle turtle t = turtle.Turtle() t.shape('turtle') # Change to arrow t.shape('arrow') # Chnage to circle t.shape('circle') turtle.mainloop()
Izhod:
Obliko želve lahko spremenimo glede na zahteve. Te oblike so lahko kvadrat, trikotnik, klasika, želva, puščica in krog. The klasična je izvirna oblika želve.
Spreminjanje hitrosti peresa
Hitrost želve je mogoče spremeniti. Na splošno se po zaslonu premika z zmerno hitrostjo, vendar lahko hitrost povečamo ali zmanjšamo. Spodaj je metoda za spreminjanje hitrosti želve.
Primer -
import turtle # Creating turtle t = turtle.Turtle() t.speed(3) t.forward(100) t.speed(7) t.forward(100) turtle.mainloop()
Izhod:
Hitrost želve lahko spreminja celoštevilske vrednosti v območju 0…10. Noben argument ni posredovan v hitrost() vrne trenutno hitrost. Nizi hitrosti so preslikani v vrednosti hitrosti, kot sledi.
0 | Najhitrejši |
10 | hitro |
6 | normalno |
3 | počasi |
1 | Najpočasnejši |
Opomba – Če je hitrost dodeljena nič, to pomeni, da se animacija ne bo izvajala.
turtle.speed() turtle.speed('normal') turtle.speed() turtle.speed(9) turtle.speed()
Prilagajanje v eni vrstici
Recimo, da želimo več sprememb znotraj želve; to lahko storimo z uporabo samo ene vrstice. Spodaj je nekaj značilnosti želve.
- Barva peresa naj bo rdeča.
- Barva polnila mora biti oranžna.
- Velikost pisala naj bo 10.
- Hitrost peresa naj bo 7
- Barva ozadja mora biti modra.
Poglejmo naslednji primer.
Primer -
import turtle # Creating turtle t = turtle.Turtle() t.pencolor('red') t.fillcolor('orange') t.pensize(10) t.speed(7) t.begin_fill() t.circle(75) turtle.bgcolor('blue') t.end_fill() turtle.mainloop()
Izhod:
Uporabili smo samo eno vrstico in spremenili značilnosti želve. Če želite izvedeti več o tem ukazu, se lahko naučite iz uradna dokumentacija knjižnice .
Spremenite smer peresa
Želva privzeto kaže na desno stran zaslona. Včasih zahtevamo, da želvo premaknemo na drugo stran samega zaslona. Da bi to dosegli, lahko uporabimo penup() metoda. The pendown() funkcija uporablja za ponovni začetek risanja. Razmislite o naslednjem primeru.
Primer -
chmod 755
import turtle # Creating turtle t = turtle.Turtle() t.fd(100) t.rt(90) t.penup() t.fd(100) t.rt(90) t.pendown() t.fd(100) t.rt(90) t.penup() t.fd(100) t.pendown() turtle.mainloop()
Izhod:
Kot lahko vidimo v zgornjem rezultatu, smo namesto kvadrata dobili dve vzporedni črti.
Čiščenje zaslona
Zajeli smo večino konceptov oblikovanja želve. Včasih potrebujemo jasen zaslon, da narišemo več dizajnov. To lahko storimo z naslednjo funkcijo.
t.clear()
Zgornja metoda bo počistila zaslon, da bomo lahko narisali več dizajnov. Ta funkcija samo odstrani obstoječe modele ali oblike in ne spreminja spremenljivke. Želva bo ostala v istem položaju.
Ponastavitev okolja
Prav tako lahko ponastavimo trenutno delovanje s funkcijo ponastavitve. Obnavlja kupola nastavitev in počisti zaslon. Uporabiti moramo le naslednjo funkcijo.
t.reset
Vse naloge bodo odstranjene in želva se bo vrnila v svoj začetni položaj. Obnovljene bodo privzete nastavitve želve, kot so barva, velikost in oblika ter druge funkcije.
Naučili smo se osnovnih osnov programiranja želve. Zdaj bomo razpravljali o nekaj bistvenih in naprednih konceptih knjižnice želv.
Pustiti žig
Na zaslonu lahko pustimo žig želve. Žig ni nič drugega kot odtis želve. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle t = turtle.Turtle() t.stamp() t.fd(200) t.stamp() t.fd(100) turtle.mainloop()
Izhod:
Če natisnemo žig() bo prikazal številko, ki ni nič drugega kot lokacija želve ali ID žiga. Določen žig lahko odstranimo tudi z naslednjim ukazom.
t.clearstamp(8) # 8 is a stamp location.
Kloniranje želve
Včasih iščemo več želv, da oblikujemo edinstveno obliko. Zagotavlja možnost kloniranja trenutno delujoče želve v okolje in obe želvi lahko premaknemo na zaslonu. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle t = turtle.Turtle() c = t.clone() t.color('blue') c.color('red') t.circle(20) c.circle(30) for i in range(40, 100, 10): c.circle(i) turtle.mainloop()
Izhod:
Pojasnilo:
V zgornji kodi smo želvo klonirali v spremenljivko c in poklicali funkcijo kroga. Najprej nariše modri krog in nato nariše zunanje kroge glede na pogoje zanke for.
V naslednjem razdelku bomo razpravljali o tem, kako lahko uporabimo pogojne stavke Python in stavke zanke za ustvarjanje dizajna z uporabo želve.
Programiranje Turtle z uporabo zank in pogojnih stavkov
Do sedaj smo se naučili osnovnih in naprednih konceptov knjižnice želv. Naslednji korak je raziskovanje teh konceptov s Pythonovimi zankami in pogojnimi stavki. To nam bo dalo praktičen pristop, ko gre za razumevanje teh konceptov. Preden nadaljujemo, si moramo zapomniti naslednje pojme.
Razumejmo naslednje primere.
za zanke
V prejšnjem primeru smo v našo kodo zapisali več ponovljenih vrstic. Tukaj bomo implementirali ustvarjanje kvadratnega programa z uporabo zanke for. Na primer -
primer:
t.fd(100) t.rt(90) t.fd(100) t.rt(90) t.fd(100) t.rt(90) t.fd(100) t.rt(90)
Lahko ga skrajšamo z uporabo zanke for. Zaženite spodnjo kodo.
Primer
import turtle # Creating turtle t = turtle.Turtle() for i in range(4): t.fd(100) t.rt(90) turtle.mainloop()
Izhod:
Razlaga
V zgornji kodi je zanka for ponavljala kodo, dokler ni dosegla števca 4. I je kot števec, ki se začne od nič in se povečuje za ena. Razumejmo zgornjo izvedbo zanke korak za korakom.
- V prvi ponovitvi, i = 0, se želva premakne naprej za 100 enot in se nato obrne za 90 stopinj v desno.
- V drugi ponovitvi, i = 1, se želva premakne naprej za 100 enot in se nato obrne za 90 stopinj v desno.
- V tretji ponovitvi, i = 2, se želva premakne naprej za 100 enot in se nato obrne za 90 stopinj v desno.
- V tretji ponovitvi, i = 3, se želva premakne naprej za 100 enot in se nato obrne za 90 stopinj v desno.
Po končani ponovitvi bo želva skočila iz zanke.
medtem ko zanke
Uporablja se za izvajanje bloka kode, dokler ni izpolnjen pogoj. Koda bo prekinjena, ko najde napačen pogoj. Razumejmo naslednji primer.
Primer -
import turtle # Creating turtle t = turtle.Turtle() n=10 while n <= 60: t.circle(n) n="n+10" turtle.mainloop() < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-turtle-programming/99/python-turtle-programming-24.webp" alt="Python Turtle Programming"> <p>As we can see in the output, we draw multiple circles using the while loop. Every time the loop executes the new circle will be larger than the previous one. The n is used as a counter where we specified the value of n increase in the each iteration. Let's understand the iteration of the loop.</p> <ul> <li>In the first iteration, the initial value of n is 10; it means the turtle draw the circle with the radius of 10 units.</li> <li>In the second iteration, the value of n is increased by 10 + 10 = 20; the turtle draws the circle with the radius of 20 units.</li> <li>In the second iteration, the value of n is increased by 20 + 10 = 30; the turtle draws the circle with the radius of 30 units.</li> <li>In the second iteration, the value of n is increased by 30 + 10 = 40; the turtle draws the circle with the radius of 30 units.</li> </ul> <h2>Conditional Statement</h2> <p>The conditional statement is used to check whether a given condition is true. If it is true, execute the corresponding lines of code. Let's understand the following example.</p> <p> <strong>Example</strong> </p> <pre> import turtle # Creating turtle t = turtle.Turtle() n = 40 if n<=50: t.circle(n) else: t.forward(n) t.backward(n-10) turtle.mainloop() < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-turtle-programming/99/python-turtle-programming-25.webp" alt="Python Turtle Programming"> <p> <strong>Explanation</strong> </p> <p>In the above program, we define the two outcomes based on user input. If the entered number is less of equal than the 50 means draw the circle otherwise else part. We gave the 40 as input so that if block got executed and drew the circle.</p> <p>Now let's move to see a few cool designs using the turtle library.</p> <h3>Attractive Designs using Python Turtle Library</h3> <p>We have learned basic and advance concepts of Python turtle library. We explain every possible feature of this library. By using its function, we can design games, unique shapes and many more things. Here, we mention a few designs using the turtle library.</p> <h3>Design -1 Circle Spiro graph</h3> <p> <strong>Code</strong> </p> <pre> import turtle # Creating turtle t = turtle.Turtle() turtle.bgcolor('black') turtle.pensize(2) turtle.speed(0) while (True): for i in range(6): for colors in ['red', 'blue', 'magenta', 'green', 'yellow', 'white']: turtle.color(colors) turtle.circle(100) turtle.left(10) turtle.hideturtle() turtle.mainloop() </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-turtle-programming/99/python-turtle-programming-26.webp" alt="Python Turtle Programming"> <p>The turtle will move for the infinite time because we have used the infinite while loop. Copy the above code and see the magic.</p> <h3>Design - 2: Python Vibrate Circle</h3> <p> <strong>Code</strong> </p> <pre> import turtle # Creating turtle t = turtle.Turtle() s = turtle.Screen() s.bgcolor('black') t.pencolor('red') a = 0 b = 0 t.speed(0) t.penup() t.goto(0,200) t.pendown() while(True): t.forward(a) t.right(b) a+=3 b+=1 if b == 210: break t.hideturtle() turtle.done() </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-turtle-programming/99/python-turtle-programming-27.webp" alt="Python Turtle Programming"> <p> <strong>Code</strong> </p> <pre> import turtle # Creating turtle t = turtle.Turtle() s = turtle.Screen() s.bgcolor('black') turtle.pensize(2) # To design curve def curve(): for i in range(200): t.right(1) t.forward(1) t. speed(3) t.color('red', 'pink') t.begin_fill() t.left(140) t.forward(111.65) curve() t.left(120) curve() t.forward(111.65) t.end_fill() t.hideturtle() turtle.mainloop() </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/python-turtle-programming/99/python-turtle-programming-28.webp" alt="Python Turtle Programming"> <p>In the above code, we define the curve function to create curve to screen. When it takes the complete heart shape, the color will fill automatically. Copy the above code and run, you can also modify it by adding more designs.</p> <hr></=50:></pre></=>
Izhod:
Želva se bo premikala neskončno dolgo, ker smo uporabili neskončno zanko while. Kopirajte zgornjo kodo in si oglejte čarovnijo.
Dizajn - 2: Python Vibrate Circle
Koda
import turtle # Creating turtle t = turtle.Turtle() s = turtle.Screen() s.bgcolor('black') t.pencolor('red') a = 0 b = 0 t.speed(0) t.penup() t.goto(0,200) t.pendown() while(True): t.forward(a) t.right(b) a+=3 b+=1 if b == 210: break t.hideturtle() turtle.done()
Izhod:
Koda
import turtle # Creating turtle t = turtle.Turtle() s = turtle.Screen() s.bgcolor('black') turtle.pensize(2) # To design curve def curve(): for i in range(200): t.right(1) t.forward(1) t. speed(3) t.color('red', 'pink') t.begin_fill() t.left(140) t.forward(111.65) curve() t.left(120) curve() t.forward(111.65) t.end_fill() t.hideturtle() turtle.mainloop()
Izhod:
V zgornji kodi definiramo funkcijo krivulje za ustvarjanje krivulje na zaslonu. Ko prevzame celotno obliko srca, se barva samodejno zapolni. Kopirajte zgornjo kodo in zaženite, lahko jo tudi spremenite z dodajanjem več dizajnov.
=50:>=>