-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
24 changed files
with
369 additions
and
11 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# welcome to EPFL | ||
import turtle | ||
|
||
turtle.color('red', 'green') | ||
turtle.shape('turtle') | ||
turtle.speed(1) | ||
|
||
turtle.write('EPFL', font=(None, 36)) | ||
|
||
for i in range(6): | ||
turtle.forward(100) | ||
turtle.left(60) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,104 @@ | ||
Controler une tortue via des commandes | ||
====================================== | ||
Introduction à la programmation | ||
=============================== | ||
|
||
Dans ce tutoriel tu vas apprendre à programmer dans un langage qui s'appelle **Python**. | ||
Tu vas programmer les déplacements d'une tortue. Voici à quoi ça va ressembler. | ||
|
||
.. image:: epfl1.png | ||
|
||
:download:`epfl1.py <epfl1.py>` | ||
|
||
Cette tortue laisse une trace qui te permet de faire des dessins. | ||
Mais tout d'abord tu dois télécharger un outil de travail. | ||
|
||
Installer un éditeur | ||
-------------------- | ||
|
||
Vas sur le site https://thonny.org | ||
et télécharge l'application **Thonny**. | ||
|
||
C'est un éditeur de programme qui permet de | ||
|
||
- **écrire** un programme | ||
- **executer** ce programme | ||
- **afficher** le résultat | ||
|
||
.. image:: thonny.png | ||
|
||
Dans Thonny tu as trois régions | ||
|
||
- les **boutons** pour *Créer, Ouvrir, Sauvegarder, Executer* un programme | ||
- la partie **éditeur** pour écrire un programme entier (<untitled>) | ||
- la **console** pour executer des commandes courtes (Shell) | ||
|
||
Les premiers pas | ||
---------------- | ||
|
||
Dans la console (ou Shell) tu peux directement entrer des expression courtes que Python peut évaluer. | ||
Après les 3 chevrons (>>>) tu peux écrire cette addition:: | ||
|
||
>>> 1 + 2 | ||
3 | ||
|
||
Tu peux aussi essayer Cette muliplication:: | ||
|
||
>>> 12 + 13 | ||
156 | ||
|
||
Dans Python tu n'es pas limité dans le nombre de chiffre qu'un calcul peut produire. | ||
Voici cette puissance de deux nombres qui donne un résultat qui s'étale sur 5 lignes:: | ||
|
||
>>> 123 ** 123 | ||
11437436793461719009988029522806627674621807845185022977588797 | ||
50523695047856668964466065683652015421696499747277306288423453 | ||
43196581134895919942820874449837212099476648958359023796078549 | ||
04194900780722062535652692672966406484668575838280370710076674 | ||
0220839267 | ||
|
||
|
||
.. literalinclude:: intro2.py | ||
|
||
Controler une tortue | ||
-------------------- | ||
|
||
Par la suite nous allons utiliser le module ``turtle`` tortue. | ||
Pour pouvoir l'utiliser nous devons importer ce module au début du programme:: | ||
|
||
>>> import turtle | ||
|
||
Ensuite nous pouveons cette tortue à l'aide des commandes | ||
|
||
>>> turtle.forward(100) | ||
|
||
Cette commande fait avancer la tortue de 100 pixels. | ||
Une commande pour contrôler la tortue a la forme suivante: | ||
|
||
- un premier mot qui est ``turtle`` | ||
- un point ``.`` | ||
- une commande (forward, backward, left, right, etc.) | ||
- des parenthèses ``( )`` | ||
- un argumen numériques (distance, angle) | ||
|
||
Pour la faire reculer de 200 pixels:: | ||
|
||
>>> turtle.backward(200) | ||
|
||
Pour faire tourner la tortue 90 degrès à gauche:: | ||
|
||
>>> turtle.left(90) | ||
|
||
Pour faire tourner la tortue 45 degrès à droite:: | ||
|
||
>>> turtle.right(45) | ||
|
||
|
||
Ecrire un programme | ||
------------------- | ||
|
||
Tous ces commandes que tu peux écrire directement dans la console, | ||
tu peux aussi les mettre dans un programme (qu'on appelle script). | ||
Une fois le programme terminé, tu peux l'executer à l'aide du bouton vert **Executer**. | ||
|
||
.. image:: intro2.png | ||
|
||
.. literalinclude:: intro2.py | ||
:download:`intro2.py <intro2.py>` |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# welcome to EPFL | ||
import turtle | ||
|
||
turtle.color('red', 'green') | ||
turtle.shape('turtle') | ||
turtle.speed(1) | ||
|
||
faculties = ('SB', 'ENAC', 'STI', 'IC', 'SV') | ||
|
||
|
||
for i in range(5): | ||
turtle.write(faculties[i], font=(None, 36)) | ||
turtle.forward(80) | ||
turtle.left(72) | ||
|
||
turtle.done() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# welcome to EPFL | ||
import turtle | ||
|
||
turtle.color('red', 'green') | ||
turtle.shape('turtle') | ||
turtle.speed(1) | ||
|
||
turtle.write('EPFL', font=(None, 64)) | ||
turtle.goto(0, -50) | ||
|
||
def square(): | ||
turtle.begin_fill() | ||
for i in range(4): | ||
turtle.forward(30) | ||
turtle.left(90) | ||
turtle.end_fill() | ||
|
||
turtle.fillcolor('red') | ||
for i in range(5): | ||
square() | ||
turtle.forward(60) | ||
|
||
turtle.done() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# welcome to EPFL | ||
import turtle | ||
import random | ||
|
||
turtle.color('red', 'green') | ||
turtle.shape('turtle') | ||
turtle.speed(1) | ||
|
||
sections = ('mathématiques', 'chimie', 'physique', 'informatique', 'syscom', 'architecture', 'génie civil', | ||
'environnement', 'électricité', 'mécanique', 'materiaux', 'microtechnique', 'sciences de la vie') | ||
|
||
turtle.dot() | ||
turtle.write('sections', font=(None, 36)) | ||
|
||
for s in sections: | ||
x = random.randint(-300, 200) | ||
y = random.randint(-150, 150) | ||
turtle.goto(x, y) | ||
turtle.dot() | ||
turtle.write(s, font=(None, 12)) | ||
|
||
turtle.done() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,82 @@ | ||
Choisir de façon aléatoire | ||
========================== | ||
========================== | ||
|
||
Dans des jeux ou des animations, il est souvent nécessaire de pouvoir calculer des valeurs aléatores. | ||
Le module ``random`` permet de trouver des valeurs aléatoires. | ||
|
||
Partant du centre, la tortue visite les 13 sections de l'EPFL | ||
qui se trouvent tous à des positions aléatoires sur cette carte. | ||
|
||
.. image:: epfl4.png | ||
|
||
:download:`epfl4.py <epfl4.py>` | ||
|
||
Position aléatoire | ||
------------------ | ||
|
||
Pour pouvoir utiliser des fonctions aléatoirs nous devons d'abord importer le module ``random``:: | ||
|
||
import random | ||
|
||
La fonction ``random.randint(-100, 100)`` retourne une valeur aléatoire | ||
qui se situe entre les deux valeurs -100 et 100. | ||
|
||
.. image:: random1.png | ||
|
||
.. literalinclude:: random1.py | ||
|
||
:download:`random1.py <random1.py>` | ||
|
||
|
||
Angle aléatoire | ||
--------------- | ||
|
||
Pour simulier la marche aléatoire d'une fourmi, nous pouvons chosir l'angle à tourner | ||
à chaque itération comme:: | ||
|
||
angle = random.randint(-90, 90) | ||
|
||
.. image:: random2.png | ||
|
||
.. literalinclude:: random2.py | ||
|
||
:download:`random2.py <random2.py>` | ||
|
||
|
||
Taille aléatoire | ||
---------------- | ||
|
||
Ci-dessous la tortue va à une position (x, y) aléatoire et choisit une taille aléatoire | ||
pour le cercle à dessiner:: | ||
|
||
size = random.randint(10, 50) | ||
turtle.goto(x, y) | ||
turtle.dot(size) | ||
|
||
.. image:: random3.png | ||
|
||
.. literalinclude:: random3.py | ||
|
||
:download:`random3.py <random3.py>` | ||
|
||
|
||
Couleur aléatoire | ||
----------------- | ||
|
||
La fonction ``random.choice(list)`` permet de choisir un élément dans une liste. | ||
Il faut d'abord definir une liste:: | ||
|
||
colors = ('red', 'blue', 'green', 'violet', 'yellow', 'cyan', 'orange', 'magenta') | ||
|
||
Ensuite un élément aléatoire est choisi de cette liste et utilisé comme nouvelle | ||
couleur de la tortue:: | ||
|
||
color = random.choice(colors) | ||
turtle.pencolor(color) | ||
|
||
.. image:: random4.png | ||
|
||
.. literalinclude:: random4.py | ||
|
||
:download:`random4.py <random4.py>` | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# random position | ||
import turtle | ||
import random | ||
|
||
turtle.dot() | ||
for i in range(20): | ||
x = random.randint(-200, 200) | ||
y = random.randint(-100, 100) | ||
turtle.goto(x, y) | ||
turtle.dot() | ||
|
||
turtle.done() | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# random direction | ||
import turtle | ||
import random | ||
|
||
turtle.dot() | ||
for i in range(100): | ||
angle = random.randint(-90, 90) | ||
turtle.forward(20) | ||
turtle.left(angle) | ||
turtle.dot() | ||
|
||
turtle.done() |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# random dot size | ||
import turtle | ||
import random | ||
|
||
turtle.dot() | ||
for i in range(20): | ||
x = random.randint(-200, 200) | ||
y = random.randint(-100, 100) | ||
size = random.randint(10, 50) | ||
turtle.goto(x, y) | ||
turtle.dot(size) | ||
|
||
turtle.done() | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# random color | ||
import turtle | ||
import random | ||
|
||
colors = ('red', 'blue', 'green', 'violet', 'yellow', 'cyan', | ||
'orange', 'magenta') | ||
|
||
|
||
turtle.dot() | ||
for i in range(15): | ||
x = random.randint(-200, 200) | ||
y = random.randint(-100, 100) | ||
color = random.choice(colors) | ||
turtle.pencolor(color) | ||
turtle.goto(x, y) | ||
turtle.dot(40) | ||
|
||
turtle.done() | ||
|
Oops, something went wrong.