Démonstrations de Python

#!/usr/bin/python3
# -*- coding: Utf-8 -*-      Autorise les accents
# https://www.python.org/dev/peps/pep-0263/
#
# Copyright (C) 2018-2018 cc-by-sa 4.0      ModLibre.info
# Version            2018-06-03 Jean.Thiery@ModLibre.info

# Titre: Impression d'un texte

print("Hello Bonaldi !")    # fr: print = imprimer
print("      Toute démonstration d’un produit quelconque               ")
print("      qui fonctionnait parfaitement aux répétitions             ")
print("      échouera lamentablement lors de la démonstration publique.")

# L'« effet Bonaldi »
#
# L'« effet Bonaldi », ou parfois « syndrome Bonaldi »,
# est une théorie populaire associée au nom de Jérôme Bonaldi.
# Elle fait référence aux déboires que connut cet animateur
# lorsqu'il présentait des objets et inventions insolites
# à la fin de l'émission Nulle part ailleurs.
# L'effet Bonaldi est un cas particulier de la loi de Murphy.
# Il énonce que :
#
# « Toute démonstration d’un produit quelconque
#   qui fonctionnait parfaitement aux répétitions
#   échouera lamentablement lors de la démonstration publique. »
#
# https://fr.wikipedia.org/wiki/J%C3%A9r%C3%B4me_Bonaldi
Hello Bonaldi !
    Toute démonstration d’un produit quelconque
    qui fonctionnait parfaitement aux répétitions
    échouera lamentablement lors de la démonstration publique
# coding: utf-8             Autorise les accents
# Copyright (C) 2015-2015   Creative Commons Attribution 2.5
# Version       2015-10-02  Jean.Thiery@ModLibre.info
# Titre: Contour et surface d'un disque

import math

texte   = input("Rayon du disque ? ")       # entre
rayon   = int(texte)
contour = 2 * math.pi * rayon
print("Contour = %s" % contour)             # imprime
surface = math.pi * rayon * rayon
print("Surface = %s" % surface)             # imprime
Rayon du disque ? 10
Contour = 62.8318530718
Surface = 314.159265359
# coding: utf-8             Autorise les accents
# Copyright (C) 2007-2015   Creative Commons Attribution 2.5
#                           http://wiki.laptop.org/go/Pippy
# Initial version           Rafael Ortiz </go/User:RafaelOrtiz>
# Version       2015-10-01  Jean.Thiery@ModLibre.info

# Title:  Fibonacci Series
# Author: Rafael Ortiz </go/User:RafaelOrtiz>
# About:  The Fibonacci Number Series
# en:     http://en.wikipedia.org/wiki/Fibonacci_number
# fr:     http://fr.wikipedia.org/wiki/Suite_de_Fibonacci
# Shows:  Using tuple assignments. While loop. 
# XO version

a, b = 1, 1
while b < 10000:                # tant que
     print(a)                   # imprime
     a, b = b, a+b

# Variations
# a, b = 1, -1
#    a, b = b, a-b              # suite de Fibonacci alternée
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
# coding: utf-8              Autorise les accents
# Copyright (C)  2007-2015   Creative Commons Attribution 2.5
#                            http://wiki.laptop.org/go/Pippy
# Initial version            Chris Ball
# Version        2015-10-01  Jean.Thiery@ModLibre.info
#
# Title:  Times2 -> Multiplie
# Author: Chris Ball
# About:  Print any times table
# Shows:  Loops, range, and input
# XOversion: Bundled in 656

texte  = input("Quelle table de multiplication ? ")     # entre
nombre = int(eval(texte))
for i in range(1,10):                       # dans l'intervalle [1,10[
    print(nombre, "x", i, "=", i*nombre)    # imprime
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x ......
# coding: utf-8             Autorise les accents
# Copyright (C) 2015-2015   GPL v3 [https://www.gnu.org/licenses/gpl.html]
# Version       2015-10-30  Jean.Thiery@ModLibre.info

# coeur.py :                Tracé d'un coeur     

from math import *; from turtle import *

texte = input("Longueur de la pointe [100] ? ")
if texte == "" : texte = "100"
taille = eval(texte)

texte = input("Angle de la pointe [15 (60) 90] ? ")
if texte == "" : texte = "60"
angle = eval(texte)
rayon = taille / sin(pi*angle/180)

clearscreen()                       # Efface l'écran
shape("circle")                     # Plume sous forme de cercle
shapesize(0.01, 0.1, 0)             # Plume très fine
penup()                             # Plume haute
setpos( 0, -taille)                 # Position initiale

pencolor(1, 0, 0)                   # Couleur de plume (rouge, vert, bleu) 
pendown()                           # Plume basse
fillcolor(1, 0, 0)                  # Couleur de remplissage (rouge, vert, bleu)
begin_fill()                        # Début de remplissage

setheading(90)                      # Direction vers le haut
circle(rayon,  angle)               # Coté gauche de la pointe
setheading(heading()+180)           # On continue tout droit
circle(rayon, -angle)               # Coté gauche du coeur

x, y = position()                   # Position de la plume      
circle(abs(x)/2, -180)              # Sommet gauche du coeur
setheading(-90)                     # Direction vers le bas
circle(abs(x)/2, -180)              # Sommet droit du coeur

circle(rayon, -angle)               # Coté droit du coeur
setheading(heading()+180)           # On continue tout droit
circle(rayon,  angle)               # Coté droit de la pointe

end_fill()                          # Fin de remplissage
penup()                             # Plume haute

exitonclick()                       # Sort du mode graphique

# VARIATIONS : Changer le signe de l'angle d'un cercle
#
# circle(abs(x)/2, -180) -> circle(abs(x)/2,180)  # Sommet droit du coeur
# ou
# circle(rayon, -angle)  -> circle(rayon, angle)  # Coté gauche du coeur
#
# VARIATIONS : Changer les couleurs
#
# fillcolor(0, 0, 0)    # black     = noir
# fillcolor(1, 0, 0)    # red       = rouge
# fillcolor(0, 1, 0)    # green     = vert
# fillcolor(0, 0, 1)    # blue      = bleu
# fillcolor(1, 1, 0)    # yellow    = jaune
# fillcolor(0, 1, 1)    # cyan      = cyan
# fillcolor(1, 0, 1)    # magenta   = magenta
# fillcolor(1, 1, 1)    # white     = blanc
#
# REFERENCES
#
# Module turtle
# https://docs.python.org/2/library/turtle.html
#
# Dessins de coeurs
# http://serge.mehl.free.fr/anx/coeur.html
# http://heraldie.blogspot.fr/2012/10/le-cur-heraldique-et-geometrie.html