Différences entre les versions de « Utilisateur:Baptiste Guyon »

De {}
Aller à la navigation Aller à la recherche
 
(12 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
<syntaxhighlight lang="python">
 +
 +
#https://flightaware.com/live/flight/MAY3324
 +
 +
 +
#la librairie qui permet de se connecter au site
 +
import mechanize
 +
#la librairie qui permet d'analyser la structure html
 +
import lxml.html
 +
#la librairie qui permet de sélectionner une info dans la structure html
 +
import cssselect
 +
import random
 +
 +
import ssl
 +
import re
 +
import json
 +
 +
import tweepy
 +
 +
#remplacer par api key et api secret key
 +
auth = tweepy.OAuthHandler('KvtnPrkqJnFrrelDojBU9C9T3', 'KaWZDqbcyFh1tXDZru8YasM9JOPgb1kA89dpsS9nd7l8IQfsx1')
 +
 +
auth.set_access_token('1493142396699398145-iptq1wc98NSlxJ79oshZDISivqDvSS', 'uLTL0T0GPKXLUraXRu3fWySjZnja6oBWMmTvAPsnWxCVn')
 +
api = tweepy.API(auth)
 +
 +
 +
 +
 +
def getFlightInfo(url):
 +
    #1. télécharger la source html de la page url
 +
    browser = mechanize.Browser()
 +
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
 +
    browser.set_handle_robots(False)
 +
 +
    #problème https
 +
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 +
 +
    data = browser.open(url, timeout=10)
 +
 +
    '''with open("output.txt", 'w') as f:
 +
        f.write(str(data.read()))'''
 +
 +
 +
    source = data.read()
 +
    #print(source)
 +
 +
    #var trackpollGlobals = {"TOKEN":"dd1320656957446ea9d77d153f63d7889ef5acae193ea54b--88705893eaf718583cac519a84f07a8af9b45856","INTERVAL":30,"SINGLE_FLIGHT":true,"USERTOKEN":"393850601"};
 +
    result = re.findall('trackpollGlobals = \{.*\}', source.decode('utf-8'))
 +
    infos = json.loads(result[0].replace('trackpollGlobals = ', ''))
 +
    #print(infos['TOKEN'])
 +
 +
    #https://flightaware.com/ajax/trackpoll.rvt?token=dd1320656957446e0089b244b5ed625df1a0606139b66cd6--a5ca479889e79f6bb930f2a801ce30fbe27584bb&locale=en_US&summary=1
 +
    #pour lire le json cmd maj P prettyjson format
 +
    urlTrackPoll = 'https://flightaware.com/ajax/trackpoll.rvt?token='+infos['TOKEN']+'&locale=en_US&summary=1'
 +
    #print(urlTrackPoll)
 +
    data = browser.open(urlTrackPoll, timeout=10)
 +
    source = json.loads(data.read().decode('utf-8'))
 +
    #récupérer le nom de la première case = la clé de la première case
 +
    keys = list(source['flights'].keys())
 +
    firstKey = keys[0]
 +
 +
    #print(firstKey)
 +
   
 +
    flights = source['flights'][firstKey]['activityLog']['flights']
 +
   
 +
 +
    origincoord = flights[0]['origin']['coord']
 +
    originname = flights[0]['origin']['friendlyLocation']
 +
    destinationcoord = flights[0]['destination']['coord']
 +
    destinationname = flights[0]['destination']['friendlyLocation']
 +
 +
    tweet = f'Random flight: From {originname} in {origincoord} to {destinationname} in {destinationcoord}'
 +
    api.update_status(status=tweet)
 +
    print(tweet)
 +
 +
   
 +
 +
 +
def getHtmlElements(url, selecteurCss):
 +
    #1. télécharger la source html de la page url
 +
    browser = mechanize.Browser()
 +
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
 +
    browser.set_handle_robots(False)
 +
 +
    #problème https
 +
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 +
 +
    data = browser.open(url, timeout=10)
 +
 +
    '''with open("output.txt", 'w') as f:
 +
        f.write(str(data.read()))'''
 +
 +
 +
    #2. analyser la source et la transformer en structure html navigable
 +
    source = data.read()
 +
 +
    html = lxml.html.fromstring(source.decode('utf-8'))
 +
 +
 +
    #3. viser l'information qui nous intéresse
 +
 +
    #convertir mon sélecteur css en objet cssselect
 +
    selecteurs = cssselect.parse(selecteurCss)
 +
        #0
 +
    #[objet cssselect]
 +
 +
    selecteur = selecteurs[0]
 +
 +
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 +
 +
    resultats = html.xpath(chemin_xpath)
 +
 +
    return resultats
 +
    #print(resultats)
 +
 +
getFlightInfo('https://flightaware.com/live/flight/random')
 +
 +
</syntaxhighlight>
 +
 +
 +
#définir départ aéroport Bruxelles
 +
'https://fr.flightaware.com/live/airport/EBBR'
 +
 +
#trouver la longitude des aéroports (départ/arrivée)
 +
'https://fr.flightaware.com/live/airport/EBBR'
 +
'https://fr.flightaware.com/resources/airport/EBBR/map'
 +
 +
 +
#trouver un vol ou longitude départ < longitude arrivé
 +
'https://fr.flightaware.com/live/airport/EBBR (suivi de vols -> départ prévu)'
 +
'https://fr.flightaware.com/live/airport/LPPR -> https://fr.flightaware.com/resources/airport/LPPR/map (aéroport de destination-> longitude)'
 +
 +
#quand longitude départ < ou égale à -130 trouver un vol ou longitude arrivée entre 180 et 130
 +
 +
#twitter avant le départ les infos du vols et twitter à l'arrivée d'autre infos
 +
'https://fr.flightaware.com/live/flight/BEL3811/history/20220314/0935Z/EBBR/LPPR (feuille de route du vols par num de vols - heure darrivée/ départs/ potentielle retard...)'
 +
'https://fr.flightaware.com/live/flight/BEL3811/history/20220314/0935Z/EBBR/LPPR ->  (feuille de route du vols pour infos arrivée)'
 +
 +
#Quand longitude de départ est positive et longitude d'arrivé négative ajouter 1 au compteur de tour du monde dans la bio ou début de tweet
 +
 +
<syntaxhighlight lang="css">
 +
@font-face{
 +
font-family: monospace;
 +
}
 +
 +
html, body{
 +
font-family: monospace;
 +
font-size: 10pt;
 +
margin:0;
 +
padding:0;
 +
}
 +
 +
*{
 +
box-sizing: border-box;
 +
 +
 +
}
 +
 +
body{
 +
background: grey;
 +
display: flex;
 +
    flex-wrap: wrap;
 +
}
 +
 +
h1{
 +
text-align: center;
 +
margin-top: 60%;
 +
font-size: 250%;
 +
border: solid red;
 +
}
 +
 +
section.page{
 +
width: 148mm;
 +
height: 210mm;
 +
margin: 10px;
 +
background: white;
 +
border: solid black;
 +
padding: 5mm;
 +
}
 +
 +
h2{
 +
margin-left: 5%;
 +
}
 +
 +
div.poeme{
 +
 +
width: 100%;
 +
height:100%;
 +
border: solid red;
 +
position:relative;
 +
 +
}
 +
 +
div.poeme.python{
 +
 +
width: 100%;
 +
height:100%;
 +
border: solid black;
 +
position:relative;
 +
color: red;
 +
}
 +
 +
p{
 +
margin: 0px;
 +
line-height: 1rem;
 +
font-size: 0.75rem;
 +
margin:4px 0px 1px 0px;
 +
}
 +
 +
 +
div.text{
 +
 +
position:absolute;
 +
top:50%;
 +
transform:translateY(-50%);
 +
margin-left: 5%;
 +
}
 +
 +
div.text.bi{
 +
margin-left: 2%;
 +
}
 +
 +
 +
div.text.fr{
 +
margin-left: 25%;
 +
 +
}
 +
 +
 +
 +
div.text.fr.resultat.surplus{
 +
margin-left: 15%;
 +
}
 +
 +
div.dcouv{
 +
position: relative;
 +
bottom: -95%;
 +
 +
}
 +
 +
 +
@media print{
 +
@page{
 +
size:148mm 210mm;
 +
}
 +
body{
 +
display: block;
 +
background: none;
 +
}
 +
 +
section.page{
 +
margin: 0px;
 +
border: 0px;
 +
}
 +
}
 +
</syntaxhighlight>
 +
 +
 +
 +
<syntaxhighlight lang="html5">
 +
<!DOCTYPE html>
 +
 +
<html>
 +
<head>
 +
<title>édition poème</title>
 +
<link rel="stylesheet" type="text/css" href="styles.css">
 +
<meta charset="utf-8">
 +
</head>
 +
<body>
 +
 +
<section class="page">
 +
<div>
 +
<h1><pre>cooking
 +
utf-8</pre></h1>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div></div>
 +
</section>
 +
 +
<section class="page">
 +
<div></div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme python">
 +
 +
<h2>Binaire</h2>
 +
 +
<div class="text bi">
 +
<p>
 +
1101100 1100001 0100000 1110100 1100101 1110010 1110010 1100101 0100000 1100101 1110011 1110100 0100000 1100010 1101100 1100101 1110101 1100101 0100000 1100011 1101111 1101101 1101101 1100101 0100000 1110101 1101110 1100101 0100000 0110111 1110010 1100001 1101110 1100111 1100101
 +
</p>
 +
<p>
 +
1110101 1101110 1100101 0100000 1110000 1101001 1100101 0100000 1100010 1101100 1100001 1101110 1100011 1101000 1100101 0100000 1100100 1100001 1101110 1110011 0100000 1101100 1100101 0100000 1100011 1101001 1100101 1101100
 +
</p>
 +
<p>
 +
1001010 0100111 1100001 1101001 0100000 1100100 1100101 1110011 0100000 1100011 1101000 1100101 1110110 1100101 1110101 1111000 0100000 1100101 1101110 1110100 1110010 1100101 0100000 1101100 1100101 1110011 0100000 1100100 1100101 1101110 1110010 1110011
 +
</p>
 +
<p>
 +
1000001 0100111 1011010 0010111 0000010 0110111 1010111 1011011 1111011 0111011 0000010 0111011 1010011 0101111 0000010 0010111 1111011 1010111 0010111 0000010 1010011 0111011 0011011 1010111 1011011 1001011 0111011 1010011 1111110
 +
</p>
 +
<p>
 +
1010111 1100101 1110011 1101000 0100000 1101100 1100001 0100000 1111010 1101111 1101110 1100101 0100000 1110100 1110010 1100001 1101110 1110001 1110101 1101010 1101100 0100000 1100101 1101111 0100000 1110001 1110101 1101111 1101001 0111010
 +
0101001
 +
</p>
 +
<p>
 +
1001111 1110101 0100000 1100101 1110011 1110100 0100000 1101100 1100001 0100000 1101101 1100101 1110010 0101100 0100000 1110110 1101001 1110110 1100101 0100000 1101100 1100101 0100000 1110110 1100101 1101110 1110100
 +
</p>
 +
<p>
 +
1100001 0111011 1110010 1010011 0010111 1000011 1001011 0010111 0100111 1001011 1010011 0111011 1011011 1000011 1001011 1100111 0011011 1010011 1011011 1000011 0010111 1001011 0111011
 +
</p>
 +
<p>
 +
1001010 1100101 0100000 1110011 1110101 1101001 1110011 0100000 1110100 1100101 1101100 1101100 1100101 0100000 1110101 1101110 1100101 0100000 1110010 1101111 1110011 1100101 0101110 0101110 0101110 0100000 1000100 1100101 1101100 1101001 1100011 1100001 1110100 1100101 0100000 1100101 1110100 0100000 1110001 1110101 1101001 0100000 1100101 1101101 1100010 1100001 1110101 1101101 1100101 0101110 0101110 0101110
 +
</p>
 +
<p>
 +
1000001 1110011 0100111 1110100 1110101 0100000 1110110 1110101 0100000 1101101 1101111 1101110 0100000 1101110 1100101 1111010 0100000 1010100 1101111 1110101 1110100 0100000 1100101 1101100 1110101 1101101 1101001 1101110 1100101
 +
</p>
 +
<p>
 +
1000011 1101000 1100101 1101101 1101001 1101110 0100000 1110000 1110010 1100101 1110110 1110101 0100000 1010011 1101001 1101100 1101100 1101111 1101110 0100000 1110100 1110010 1100001 1100011 1100101
 +
</p>
 +
<p>
 +
1001010 0100111 1100101 1110011 1110000 1100101 1110010 1100101 0100000 1100011 1100101 0100000 1110001 1110101 1101001 0100000 1101101 0100111 1100101 1110011 1110100 0100000 1101001 1101110 1110100 1100101 1110010 1100100 1101001 1110100
 +
</p>
 +
<p>
 +
1001111 0100000 0010101 1100001 1100111 1100101 1001111 0100000 1000100 1100101 1110011 1100101 1110011 1110000 1101111 1101001 1110010 1001111 0100000 1010110 1101001 1100101 1101001 1101100 1101100 1100101 1110011 1110011 11001010 1000001 1001011 1011101 1011101 1001011 1011011 1010011 100101
 +
</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme.txt</h2>
 +
<div class="text fr resultat">
 +
<p>une pie blanche dans le ciel</p>
 +
<p>J'ai des cheveux </p>
 +
<p>A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~</p>
 +
<p>Wesh la zone</p>
 +
<p>Ou est la mer, vive le vent</p>
 +
<p>a;rS\x17CK\x17'KS;</p>
 +
<p>[CKg\x1bS[C\x17K;</p>
 +
<p>Je suis telle une rose... Delicate et qui embaume...</p>
 +
<p>As'tu vu mon nez Tout elumine</p>
 +
<p>Chemin prevu Sillon trace</p>
 +
<p>J'espere ce qui m'est interdit</p>
 +
<p>O \x15age</p>
 +
<p>O Desespoir</p>
 +
<p>O Vieillesse ennemie</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>Maj.py</h2>
 +
<div class="text">
 +
<pre>with open('poeme.txt','r') as f_open:
 +
    data = f_open.read()
 +
    uppercase_data=data.upper()
 +
    print(uppercase_data)
 +
</pre>
 +
</div>
 +
</div>
 +
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme01.txt</h2>
 +
<div class="text fr resultat">
 +
<p>UNE PIE BLANCHE DANS LE CIEL</p>
 +
<p>J'AI DES CHEVEUX </p>
 +
<p>A'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
 +
<p>WESH LA ZONE</p>
 +
<p>OU EST LA MER, VIVE LE VENT</p>
 +
<p>A;RS\X17CK\X17'KS;</p>
 +
<p>[CKG\X1BS[C\X17K;</p>
 +
<p>JE SUIS TELLE UNE ROSE... DELICATE ET QUI EMBAUME...</p>
 +
<p>AS'TU VU MON NEZ TOUT ELUMINE</p>
 +
<p>CHEMIN PREVU SILLON TRACE</p>
 +
<p>J'ESPERE CE QUI M'EST INTERDIT</p>
 +
<p>O \X15AGE</p>
 +
<p>O DESESPOIR</p>
 +
<p>O VIEILLESSE ENNEMIE</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>Narcisse.py</h2>
 +
<div class="text">
 +
<pre>with open('poeme.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
lines = data.splitlines()
 +
 +
for indice in range (0, len(lines)):
 +
vers = lines[indice]
 +
'''print (vers[0:2])'''
 +
if vers[0:2] == "Je" or vers[0:2]== "J'":
 +
print (vers + 'NARCISSE')
 +
else:
 +
print(vers)
 +
</pre>
 +
</div>
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme02.txt</h2>
 +
<div class="text fr resultat">
 +
<p>UNE PIE BLANCHE DANS LE CIEL</p>
 +
<p>J'AI DES CHEVEUX NARCISSE</p>
 +
<p>A'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
 +
<p>WESH LA ZONE</p>
 +
<p>OU EST LA MER, VIVE LE VENT</p>
 +
<p>A;RS\X17CK\X17'KS;</p>
 +
<p>[CKG\X1BS[C\X17K;</p>
 +
<p>JE SUIS TELLE UNE ROSE... DELICATE ET QUI EMBAUME...NARCISSE</p>
 +
<p>AS'TU VU MON NEZ TOUT ELUMINE</p>
 +
<p>CHEMIN PREVU SILLON TRACE</p>
 +
<p>J'ESPERE CE QUI M'EST INTERDITNARCISSE</p>
 +
<p>O \X15AGE</p>
 +
<p>O DESESPOIR</p>
 +
<p>O VIEILLESSE ENNEMIE</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>A-0.py</h2>
 +
<div class="text">
 +
<pre>with open('poeme02.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
print(data.replace("A","O"))
 +
 +
</pre>
 +
</div>
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme03.txt</h2>
 +
<div class="text fr resultat">
 +
<p>UNE PIE BLONCHE DONS LE CIEL</p>
 +
<p>J'OI DES CHEVEUX NORCISSE</p>
 +
<p>O'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
 +
<p>WESH LO ZONE</p>
 +
<p>OU EST LO MER, VIVE LE VENT</p>
 +
<p>O;RS\X17CK\X17'KS;</p>
 +
<p>[CKG\X1BS[C\X17K;</p>
 +
<p>JE SUIS TELLE UNE ROSE... DELICOTE ET QUI EMBOUME...NORCISSE</p>
 +
<p>OS'TU VU MON NEZ TOUT ELUMINE</p>
 +
<p>CHEMIN PREVU SILLON TROCE</p>
 +
<p>J'ESPERE CE QUI M'EST INTERDITNORCISSE</p>
 +
<p>O \X15OGE</p>
 +
<p>O DESESPOIR</p>
 +
<p>O VIEILLESSE ENNEMIE</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>' '-HHH.py</h2>
 +
<div class="text">
 +
<pre>with open('poeme03.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
print(data.replace(" ","HHH"))
 +
 +
</pre>
 +
</div>
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme04.txt</h2>
 +
<div class="text fr resultat">
 +
<p>UNEHHHPIEHHHBLONCHEHHHDONSHHHLEHHHCIEL</p>
 +
<p>J'OIHHHDESHHHCHEVEUXHHHNORCISSE</p>
 +
<p>O'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
 +
<p>WESHHHHLOHHHZONE</p>
 +
<p>OUHHHESTHHHLOHHHMER,HHHVIVEHHHLEHHHVENT</p>
 +
<p>O;RS\X17CK\X17'KS;</p>
 +
<p>[CKG\X1BS[C\X17K;</p>
 +
<p>JEHHHSUISHHHTELLEHHHUNEHHHROSE...</p>
 +
<p>HHHDELICOTEHHHETHHHQUIHHHEMBOUME...NORCISSE</p>
 +
<p>OS'TUHHHVUHHHMONHHHNEZHHHTOUTHHHELUMINE</p>
 +
<p>CHEMINHHHPREVUHHHSILLONHHHTROCE</p>
 +
<p>J'ESPEREHHHCEHHHQUIHHHM'ESTHHHINTERDITNORCISSE</p>
 +
<p>OHHH\X15OGE</p>
 +
<p>OHHHDESESPOIR</p>
 +
<p>OHHHVIEILLESSEHHHENNEMIE</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>X-XXX.py</h2>
 +
<div class="text">
 +
<pre>with open('poeme04.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
print(data.replace("X","XXX"))
 +
 +
</pre>
 +
</div>
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme05.txt</h2>
 +
<div class="text fr resultat">
 +
<p>UNEHHHPIEHHHBLONCHEHHHDONSHHHLEHHHCIEL</p>
 +
<p>J'OIHHHDESHHHCHEVEUXHHHNORCISSE</p>
 +
<p>O'Z\XXX177W[{;;S/\XXX17{W\XXX17S;\XXX1BW[K;S~</p>
 +
<p>WESHHHHLOHHHZONE</p>
 +
<p>OUHHHESTHHHLOHHHMER,HHHVIVEHHHLEHHHVENT</p>
 +
<p>O;RS\XXX17CK\XXX17'KS;</p>
 +
<p>[CKG\XXX1BS[C\XXX17K;</p>
 +
<p>JEHHHSUISHHHTELLEHHHUNEHHHROSE...</p>
 +
<p>HHHDELICOTEHHHETHHHQUIHHHEMBOUME...NORCISSE</p>
 +
<p>OS'TUHHHVUHHHMONHHHNEZHHHTOUTHHHELUMINE</p>
 +
<p>CHEMINHHHPREVUHHHSILLONHHHTROCE</p>
 +
<p>J'ESPEREHHHCEHHHQUIHHHM'ESTHHHINTERDITNORCISSE</p>
 +
<p>OHHH\XXX15OGE</p>
 +
<p>OHHHDESESPOIR</p>
 +
<p>OHHHVIEILLESSEHHHENNEMIE</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="poeme python">
 +
<h2>lettre-chiffre.py</h2>
 +
<div class="text">
 +
<pre>
 +
with open('poeme05.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
lines = data.splitlines()
 +
 +
output = ''
 +
 +
lettres = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
 +
  'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
 +
  'U', 'V', 'W', 'X', 'Y', 'Z']
 +
 +
for indice in range (0, len(lines)):
 +
vers = lines[indice]
 +
 +
for lettre in vers:
 +
if lettre in lettres:
 +
indice = lettres.index(lettre)
 +
output = output + str(indice + 1)
 +
 +
else:
 +
output = output + lettre
 +
output = output + "\n"
 +
 +
 +
print(output)
 +
 +
 +
 +
 +
</pre>
 +
</div>
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
 +
<div class="poeme">
 +
 +
<h2>Poeme06.txt</h2>
 +
<div class="text fr resultat surplus">
 +
<p>2114588816958882121514385888415141988812588839512</p>
 +
<p>10'1598884519888385225212424248881415183919195</p>
 +
<p>15'26\24242417723[{;;19/\24242417{23\2424241719;\2424241223[11;19~</p>
 +
<p>23519888812158882615145</p>
 +
<p>152188851920888121588813518,8882292258881258882251420</p>
 +
<p>15;1819\24242417311\24242417'1119;</p>
 +
<p>[3117\2424241219[3\2424241711;</p>
 +
<p>105888192191988820512125888211458881815195...</p>
 +
<p>888451293152058885208881721988851321521135...1415183919195</p>
 +
<p>1519'20218882221888131514888145268882015212088851221139145</p>
 +
<p>385139148881618522218881991212151488820181535</p>
 +
<p>10'519165185888358881721988813'519208889142051849201415183919195</p>
 +
<p>15888\242424151575</p>
 +
<p>1588845195191615918</p>
 +
<p>158882295912125191958885141451395</p>
 +
</div>
 +
 +
</div>
 +
</section>
 +
 +
<section class="page">
 +
<div></div>
 +
</section>
 +
 +
 +
<section class="page">
 +
<div></div>
 +
</section>
 +
 +
<section class="page">
 +
<div class="dcouv">
 +
<p>Baptiste Guyon - B2 - Programmation - 2021</p>
 +
</div>
 +
</section>
 +
 +
 +
 +
 +
 +
 +
 +
 +
</body>
 +
</html>
 +
</syntaxhighlight>
 +
 +
 +
 +
 +
 +
 +
-Livre de Recette:
 +
-Confrontation code -> résultat modification par rapport aux énoncé proposé en cours
 +
-La version modifié ->  la remodifier
 +
-Des modification de plus en plus destructrice
 +
-but de deviner à quoi correspond le python de gauche et sa fonction
 +
-Recherche d’une « destruction du poème »
 +
 +
 +
-Imager le poème vers par vers de façon aléatoire
 +
Générateur d’image (intégration de l’url)
 +
 +
 +
<syntaxhighlight lang="python">
 +
#réécrit les mots à l'envers lettre par lettre
 +
 +
 +
with open('poeme.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
poeme = ''
 +
 +
lines = data.splitlines() #pour lister/tableaux les vers
 +
 +
for indice in range (0, len(lines)):
 +
vers = lines[indice]
 +
mots = vers.split(' ') #pour lister/tableaux les mots au sein des lignes
 +
    #pour chaque mot de la liste de mots, inverser les caractères
 +
for indiceMot in range (0, len(mots)):
 +
mot = mots[indiceMot]
 +
 +
poeme = poeme + mot[::-1] + ' ' #pour ajouter les mots au poème
 +
 +
poeme = poeme + '\n'
 +
 +
print(poeme)
 +
#print(mot[len(mot):: -1]) #pour raccourcir on peut print(mot[::-1]) il comprendra
 +
#afficher les deux premières lettres du mots print(mot[0:2])
 +
#afficher les 4 premières lettres dans le sens inverse print(mot[3:0:-1]) le -1 c'est pour dire tu vas de une lettre à une lettre dans le mauvais sens
 +
#afficher une lettre sur deux des 4 premières lettres dans le sens inverse print(mot[3:0:-2])
 +
</syntaxhighlight>
 +
 +
 +
 +
<syntaxhighlight lang="python">
 +
#remplacer les mots de trois lettre en ???
 +
import re
 +
 +
with open('poeme.txt','r') as f_open:
 +
    data = f_open.read()
 +
 +
data=re.sub(r' (^|[A-z]) [^ ]{3} |( \n.;,?!)', r'\1???\2', data) 
 +
#l'outil r considère qu'après c'est du brut en loccurence du texte brut/[]:classe de caractère/ {}:quantifieur /[^ ]: tout sauf (ce qui suit)
 +
</syntaxhighlight>
 +
 +
print(data)
 +
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
with open('poeme.txt','r') as f_open:
 
with open('poeme.txt','r') as f_open:
Ligne 107 : Ligne 823 :
  
  
 
+
<syntaxhighlight lang="python">
 
import random
 
import random
 
import time
 
import time

Version actuelle datée du 3 mai 2022 à 18:53

#https://flightaware.com/live/flight/MAY3324
 
 
#la librairie qui permet de se connecter au site
import mechanize
#la librairie qui permet d'analyser la structure html
import lxml.html
#la librairie qui permet de sélectionner une info dans la structure html
import cssselect
import random
 
import ssl
import re
import json
 
import tweepy
 
#remplacer par api key et api secret key
auth = tweepy.OAuthHandler('KvtnPrkqJnFrrelDojBU9C9T3', 'KaWZDqbcyFh1tXDZru8YasM9JOPgb1kA89dpsS9nd7l8IQfsx1')
 
auth.set_access_token('1493142396699398145-iptq1wc98NSlxJ79oshZDISivqDvSS', 'uLTL0T0GPKXLUraXRu3fWySjZnja6oBWMmTvAPsnWxCVn')
api = tweepy.API(auth)
 
 

 
def getFlightInfo(url):
    #1. télécharger la source html de la page url
    browser = mechanize.Browser()
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    browser.set_handle_robots(False)
 
    #problème https
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 
    data = browser.open(url, timeout=10)
 
    '''with open("output.txt", 'w') as f:
        f.write(str(data.read()))'''
 
 
    source = data.read()
    #print(source)
 
    #var trackpollGlobals = {"TOKEN":"dd1320656957446ea9d77d153f63d7889ef5acae193ea54b--88705893eaf718583cac519a84f07a8af9b45856","INTERVAL":30,"SINGLE_FLIGHT":true,"USERTOKEN":"393850601"};
    result = re.findall('trackpollGlobals = \{.*\}', source.decode('utf-8'))
    infos = json.loads(result[0].replace('trackpollGlobals = ', ''))
    #print(infos['TOKEN'])
 
    #https://flightaware.com/ajax/trackpoll.rvt?token=dd1320656957446e0089b244b5ed625df1a0606139b66cd6--a5ca479889e79f6bb930f2a801ce30fbe27584bb&locale=en_US&summary=1
    #pour lire le json cmd maj P prettyjson format
    urlTrackPoll = 'https://flightaware.com/ajax/trackpoll.rvt?token='+infos['TOKEN']+'&locale=en_US&summary=1'
    #print(urlTrackPoll)
    data = browser.open(urlTrackPoll, timeout=10)
    source = json.loads(data.read().decode('utf-8'))
    #récupérer le nom de la première case = la clé de la première case
    keys = list(source['flights'].keys())
    firstKey = keys[0]

    #print(firstKey)
    
    flights = source['flights'][firstKey]['activityLog']['flights']
    

    origincoord = flights[0]['origin']['coord']
    originname = flights[0]['origin']['friendlyLocation']
    destinationcoord = flights[0]['destination']['coord']
    destinationname = flights[0]['destination']['friendlyLocation']
 
    tweet = f'Random flight: From {originname} in {origincoord} to {destinationname} in {destinationcoord}'
    api.update_status(status=tweet)
    print(tweet)

    
 
 
def getHtmlElements(url, selecteurCss):
    #1. télécharger la source html de la page url
    browser = mechanize.Browser()
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    browser.set_handle_robots(False)
 
    #problème https
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 
    data = browser.open(url, timeout=10)
 
    '''with open("output.txt", 'w') as f:
        f.write(str(data.read()))'''
 
 
    #2. analyser la source et la transformer en structure html navigable
    source = data.read()
 
    html = lxml.html.fromstring(source.decode('utf-8'))
 
 
    #3. viser l'information qui nous intéresse
 
    #convertir mon sélecteur css en objet cssselect
    selecteurs = cssselect.parse(selecteurCss)
        #0
    #[objet cssselect]
 
    selecteur = selecteurs[0]
 
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 
    resultats = html.xpath(chemin_xpath)
 
    return resultats
    #print(resultats)
 
getFlightInfo('https://flightaware.com/live/flight/random')


  1. définir départ aéroport Bruxelles

'https://fr.flightaware.com/live/airport/EBBR'

  1. trouver la longitude des aéroports (départ/arrivée)

'https://fr.flightaware.com/live/airport/EBBR' 'https://fr.flightaware.com/resources/airport/EBBR/map'


  1. trouver un vol ou longitude départ < longitude arrivé

'https://fr.flightaware.com/live/airport/EBBR (suivi de vols -> départ prévu)' 'https://fr.flightaware.com/live/airport/LPPR -> https://fr.flightaware.com/resources/airport/LPPR/map (aéroport de destination-> longitude)'

  1. quand longitude départ < ou égale à -130 trouver un vol ou longitude arrivée entre 180 et 130
  1. twitter avant le départ les infos du vols et twitter à l'arrivée d'autre infos

'https://fr.flightaware.com/live/flight/BEL3811/history/20220314/0935Z/EBBR/LPPR (feuille de route du vols par num de vols - heure darrivée/ départs/ potentielle retard...)' 'https://fr.flightaware.com/live/flight/BEL3811/history/20220314/0935Z/EBBR/LPPR -> (feuille de route du vols pour infos arrivée)'

  1. Quand longitude de départ est positive et longitude d'arrivé négative ajouter 1 au compteur de tour du monde dans la bio ou début de tweet
@font-face{
	font-family: monospace;
}

html, body{
	font-family: monospace;
	font-size: 10pt;
	margin:0;
	padding:0;
}

*{
	box-sizing: border-box;
	

}

body{
	background: grey;
	display: flex;
    flex-wrap: wrap;
}

h1{
	text-align: center;
	margin-top: 60%;
	font-size: 250%;
	border: solid red;
}

section.page{
	width: 148mm;
	height: 210mm;
	margin: 10px;
	background: white;
	border: solid black; 
	padding: 5mm;
}

h2{
	margin-left: 5%;
}

div.poeme{
	
	width: 100%;
	height:100%;
	border: solid red;
	position:relative;

}

div.poeme.python{
	
	width: 100%;
	height:100%;
	border: solid black;
	position:relative;
	color: red;
}

p{
	margin: 0px;
	line-height: 1rem;
	font-size: 0.75rem;
	margin:4px 0px 1px 0px;
}


div.text{

	position:absolute;
	top:50%;
	transform:translateY(-50%);
	margin-left: 5%;
}

div.text.bi{
	margin-left: 2%;
}


div.text.fr{
	margin-left: 25%;
	
}



div.text.fr.resultat.surplus{
	margin-left: 15%;
}

div.dcouv{
	position: relative;
	bottom: -95%;

}


@media print{
	@page{
		size:148mm 210mm;
	}
	body{
		display: block;
		background: none;
	}

	section.page{
		margin: 0px;
		border: 0px;
	}
}


<!DOCTYPE html>

<html>
<head>
	<title>édition poème</title>
	<link rel="stylesheet" type="text/css" href="styles.css">
	<meta charset="utf-8">
</head>
<body>

<section class="page">
		<div>
			<h1><pre>cooking
utf-8</pre></h1> 
			
		</div>	
</section>
	
<section class="page">
		<div></div>	
</section>

<section class="page">
		<div></div>	
</section>
	
<section class="page">

	<div class="poeme python"> 

				<h2>Binaire</h2>

				<div class="text bi">
			<p> 
			1101100 1100001 0100000 1110100 1100101 1110010 1110010 1100101 0100000 1100101 1110011 1110100 0100000 1100010 1101100 1100101 1110101 1100101 0100000 1100011 1101111 1101101 1101101 1100101 0100000 1110101 1101110 1100101 0100000 0110111 1110010 1100001 1101110 1100111 1100101 
			</p>
			<p> 
			1110101 1101110 1100101 0100000 1110000 1101001 1100101 0100000 1100010 1101100 1100001 1101110 1100011 1101000 1100101 0100000 1100100 1100001 1101110 1110011 0100000 1101100 1100101 0100000 1100011 1101001 1100101 1101100
			</p>
			<p> 
			1001010 0100111 1100001 1101001 0100000 1100100 1100101 1110011 0100000 1100011 1101000 1100101 1110110 1100101 1110101 1111000 0100000 1100101 1101110 1110100 1110010 1100101 0100000 1101100 1100101 1110011 0100000 1100100 1100101 1101110 1110010 1110011
			</p>
			<p> 
			1000001 0100111 1011010 0010111 0000010 0110111 1010111 1011011 1111011 0111011 0000010 0111011 1010011 0101111 0000010 0010111 1111011 1010111 0010111 0000010 1010011 0111011 0011011 1010111 1011011 1001011 0111011 1010011 1111110
			</p>
			<p>
			1010111 1100101 1110011 1101000 0100000 1101100 1100001 0100000 1111010 1101111 1101110 1100101 0100000 1110100 1110010 1100001 1101110 1110001 1110101 1101010 1101100 0100000 1100101 1101111 0100000 1110001 1110101 1101111 1101001 0111010 
			0101001
			</p>
			<p> 
			1001111 1110101 0100000 1100101 1110011 1110100 0100000 1101100 1100001 0100000 1101101 1100101 1110010 0101100 0100000 1110110 1101001 1110110 1100101 0100000 1101100 1100101 0100000 1110110 1100101 1101110 1110100
			</p>
			<p> 
			1100001 0111011 1110010 1010011 0010111 1000011 1001011 0010111 0100111 1001011 1010011 0111011 1011011 1000011 1001011 1100111 0011011 1010011 1011011 1000011 0010111 1001011 0111011
			</p>
			<p> 
			1001010 1100101 0100000 1110011 1110101 1101001 1110011 0100000 1110100 1100101 1101100 1101100 1100101 0100000 1110101 1101110 1100101 0100000 1110010 1101111 1110011 1100101 0101110 0101110 0101110 0100000 1000100 1100101 1101100 1101001 1100011 1100001 1110100 1100101 0100000 1100101 1110100 0100000 1110001 1110101 1101001 0100000 1100101 1101101 1100010 1100001 1110101 1101101 1100101 0101110 0101110 0101110
			</p>
			<p> 
			1000001 1110011 0100111 1110100 1110101 0100000 1110110 1110101 0100000 1101101 1101111 1101110 0100000 1101110 1100101 1111010 0100000 1010100 1101111 1110101 1110100 0100000 1100101 1101100 1110101 1101101 1101001 1101110 1100101
			</p>
			<p> 
			1000011 1101000 1100101 1101101 1101001 1101110 0100000 1110000 1110010 1100101 1110110 1110101 0100000 1010011 1101001 1101100 1101100 1101111 1101110 0100000 1110100 1110010 1100001 1100011 1100101
			</p>
			<p>
			1001010 0100111 1100101 1110011 1110000 1100101 1110010 1100101 0100000 1100011 1100101 0100000 1110001 1110101 1101001 0100000 1101101 0100111 1100101 1110011 1110100 0100000 1101001 1101110 1110100 1100101 1110010 1100100 1101001 1110100
			</p>
			<p>
			1001111 0100000 0010101 1100001 1100111 1100101 1001111 0100000 1000100 1100101 1110011 1100101 1110011 1110000 1101111 1101001 1110010 1001111 0100000 1010110 1101001 1100101 1101001 1101100 1101100 1100101 1110011 1110011 11001010 1000001 1001011 1011101 1011101 1001011 1011011 1010011 100101
			</p>
			</div>
				
		</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme.txt</h2>
		<div class="text fr resultat">
			<p>une pie blanche dans le ciel</p>
			<p>J'ai des cheveux </p>
			<p>A'Z\x177W[{;;S/\x17{W\x17S;\x1bW[K;S~</p>
			<p>Wesh la zone</p>
			<p>Ou est la mer, vive le vent</p>
			<p>a;rS\x17CK\x17'KS;</p>
			<p>[CKg\x1bS[C\x17K;</p>
			<p>Je suis telle une rose... Delicate et qui embaume...</p>
			<p>As'tu vu mon nez Tout elumine</p>
			<p>Chemin prevu Sillon trace</p>
			<p>J'espere ce qui m'est interdit</p>
			<p>O \x15age</p>
			<p>O Desespoir</p>
			<p>O Vieillesse ennemie</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>Maj.py</h2>
		<div class="text">
<pre>with open('poeme.txt','r') as f_open:
    data = f_open.read()
    uppercase_data=data.upper()
    print(uppercase_data)
</pre>
		</div>
	</div>
		
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme01.txt</h2>
		<div class="text fr resultat">
			<p>UNE PIE BLANCHE DANS LE CIEL</p>
			<p>J'AI DES CHEVEUX </p>
			<p>A'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
			<p>WESH LA ZONE</p>
			<p>OU EST LA MER, VIVE LE VENT</p>
			<p>A;RS\X17CK\X17'KS;</p>
			<p>[CKG\X1BS[C\X17K;</p>
			<p>JE SUIS TELLE UNE ROSE... DELICATE ET QUI EMBAUME...</p>
			<p>AS'TU VU MON NEZ TOUT ELUMINE</p>
			<p>CHEMIN PREVU SILLON TRACE</p>
			<p>J'ESPERE CE QUI M'EST INTERDIT</p>
			<p>O \X15AGE</p>
			<p>O DESESPOIR</p>
			<p>O VIEILLESSE ENNEMIE</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>Narcisse.py</h2>
		<div class="text">
<pre>with open('poeme.txt','r') as f_open:
    data = f_open.read()

lines = data.splitlines()

for indice in range (0, len(lines)):
	vers = lines[indice]
	'''print (vers[0:2])'''
	if vers[0:2] == "Je" or vers[0:2]== "J'":
		print (vers + 'NARCISSE')
	else:
		print(vers)
</pre>
		</div>
	</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme02.txt</h2>
		<div class="text fr resultat">
			<p>UNE PIE BLANCHE DANS LE CIEL</p>
			<p>J'AI DES CHEVEUX NARCISSE</p>
			<p>A'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
			<p>WESH LA ZONE</p>
			<p>OU EST LA MER, VIVE LE VENT</p>
			<p>A;RS\X17CK\X17'KS;</p>
			<p>[CKG\X1BS[C\X17K;</p>
			<p>JE SUIS TELLE UNE ROSE... DELICATE ET QUI EMBAUME...NARCISSE</p>
			<p>AS'TU VU MON NEZ TOUT ELUMINE</p>
			<p>CHEMIN PREVU SILLON TRACE</p>
			<p>J'ESPERE CE QUI M'EST INTERDITNARCISSE</p>
			<p>O \X15AGE</p>
			<p>O DESESPOIR</p>
			<p>O VIEILLESSE ENNEMIE</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>A-0.py</h2>
		<div class="text">
<pre>with open('poeme02.txt','r') as f_open:
    data = f_open.read()

print(data.replace("A","O"))

</pre>
		</div>
	</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme03.txt</h2>
		<div class="text fr resultat">
			<p>UNE PIE BLONCHE DONS LE CIEL</p>
			<p>J'OI DES CHEVEUX NORCISSE</p>
			<p>O'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
			<p>WESH LO ZONE</p>
			<p>OU EST LO MER, VIVE LE VENT</p>
			<p>O;RS\X17CK\X17'KS;</p>
			<p>[CKG\X1BS[C\X17K;</p>
			<p>JE SUIS TELLE UNE ROSE... DELICOTE ET QUI EMBOUME...NORCISSE</p>
			<p>OS'TU VU MON NEZ TOUT ELUMINE</p>
			<p>CHEMIN PREVU SILLON TROCE</p>
			<p>J'ESPERE CE QUI M'EST INTERDITNORCISSE</p>
			<p>O \X15OGE</p>
			<p>O DESESPOIR</p>
			<p>O VIEILLESSE ENNEMIE</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>' '-HHH.py</h2>
		<div class="text">
<pre>with open('poeme03.txt','r') as f_open:
    data = f_open.read()

print(data.replace(" ","HHH"))

</pre>
		</div>
	</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme04.txt</h2>
		<div class="text fr resultat">
			<p>UNEHHHPIEHHHBLONCHEHHHDONSHHHLEHHHCIEL</p>
			<p>J'OIHHHDESHHHCHEVEUXHHHNORCISSE</p>
			<p>O'Z\X177W[{;;S/\X17{W\X17S;\X1BW[K;S~</p>
			<p>WESHHHHLOHHHZONE</p>
			<p>OUHHHESTHHHLOHHHMER,HHHVIVEHHHLEHHHVENT</p>
			<p>O;RS\X17CK\X17'KS;</p>
			<p>[CKG\X1BS[C\X17K;</p>
			<p>JEHHHSUISHHHTELLEHHHUNEHHHROSE...</p>
			<p>HHHDELICOTEHHHETHHHQUIHHHEMBOUME...NORCISSE</p>
			<p>OS'TUHHHVUHHHMONHHHNEZHHHTOUTHHHELUMINE</p>
			<p>CHEMINHHHPREVUHHHSILLONHHHTROCE</p>
			<p>J'ESPEREHHHCEHHHQUIHHHM'ESTHHHINTERDITNORCISSE</p>
			<p>OHHH\X15OGE</p>
			<p>OHHHDESESPOIR</p>
			<p>OHHHVIEILLESSEHHHENNEMIE</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>X-XXX.py</h2>
		<div class="text">
<pre>with open('poeme04.txt','r') as f_open:
    data = f_open.read()

print(data.replace("X","XXX"))

</pre>
		</div>
	</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme05.txt</h2>
		<div class="text fr resultat">
			<p>UNEHHHPIEHHHBLONCHEHHHDONSHHHLEHHHCIEL</p>
			<p>J'OIHHHDESHHHCHEVEUXHHHNORCISSE</p>
			<p>O'Z\XXX177W[{;;S/\XXX17{W\XXX17S;\XXX1BW[K;S~</p>
			<p>WESHHHHLOHHHZONE</p>
			<p>OUHHHESTHHHLOHHHMER,HHHVIVEHHHLEHHHVENT</p>
			<p>O;RS\XXX17CK\XXX17'KS;</p>
			<p>[CKG\XXX1BS[C\XXX17K;</p>
			<p>JEHHHSUISHHHTELLEHHHUNEHHHROSE...</p>
			<p>HHHDELICOTEHHHETHHHQUIHHHEMBOUME...NORCISSE</p>
			<p>OS'TUHHHVUHHHMONHHHNEZHHHTOUTHHHELUMINE</p>
			<p>CHEMINHHHPREVUHHHSILLONHHHTROCE</p>
			<p>J'ESPEREHHHCEHHHQUIHHHM'ESTHHHINTERDITNORCISSE</p>
			<p>OHHH\XXX15OGE</p>
			<p>OHHHDESESPOIR</p>
			<p>OHHHVIEILLESSEHHHENNEMIE</p>
		</div>

	</div>
</section>

<section class="page">
	<div class="poeme python">
		<h2>lettre-chiffre.py</h2>
		<div class="text">
<pre>
with open('poeme05.txt','r') as f_open:
    data = f_open.read()

lines = data.splitlines() 

output = ''

lettres = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
 	   'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
 	   'U', 'V', 'W', 'X', 'Y', 'Z']

for indice in range (0, len(lines)):
	vers = lines[indice]
	 
	for lettre in vers:
		if lettre in lettres:
			indice = lettres.index(lettre) 	
			output = output + str(indice + 1)
			
		else:
			output = output + lettre
	output = output + "\n"


print(output)
	



</pre>
		</div>
	</div>
</section>

<section class="page">

	<div class="poeme">
		
		<h2>Poeme06.txt</h2>
		<div class="text fr resultat surplus">
			<p>2114588816958882121514385888415141988812588839512</p>
			<p>10'1598884519888385225212424248881415183919195</p>
			<p>15'26\24242417723[{;;19/\24242417{23\2424241719;\2424241223[11;19~</p>
			<p>23519888812158882615145</p>
			<p>152188851920888121588813518,8882292258881258882251420</p>
			<p>15;1819\24242417311\24242417'1119;</p>
			<p>[3117\2424241219[3\2424241711;</p>
			<p>105888192191988820512125888211458881815195...</p>
			<p>888451293152058885208881721988851321521135...1415183919195</p>
			<p>1519'20218882221888131514888145268882015212088851221139145</p>
			<p>385139148881618522218881991212151488820181535</p>
			<p>10'519165185888358881721988813'519208889142051849201415183919195</p>
			<p>15888\242424151575</p>
			<p>1588845195191615918</p>
			<p>158882295912125191958885141451395</p>
		</div>

	</div>
</section>

<section class="page">
		<div></div>	
</section>


<section class="page">
		<div></div>	
</section>

<section class="page">
		<div class="dcouv">
			<p>Baptiste Guyon - B2 - Programmation - 2021</p>
		</div>	
</section>








</body>
</html>




-Livre de Recette: -Confrontation code -> résultat modification par rapport aux énoncé proposé en cours -La version modifié -> la remodifier -Des modification de plus en plus destructrice -but de deviner à quoi correspond le python de gauche et sa fonction -Recherche d’une « destruction du poème »


-Imager le poème vers par vers de façon aléatoire Générateur d’image (intégration de l’url)


#réécrit les mots à l'envers lettre par lettre


with open('poeme.txt','r') as f_open:
    data = f_open.read()

poeme = ''

lines = data.splitlines() #pour lister/tableaux les vers

for indice in range (0, len(lines)):
	vers = lines[indice]
	mots = vers.split(' ') #pour lister/tableaux les mots au sein des lignes
    #pour chaque mot de la liste de mots, inverser les caractères
	for indiceMot in range (0, len(mots)):
			mot = mots[indiceMot]
			
			poeme = poeme + mot[::-1] + ' ' #pour ajouter les mots au poème
	
	poeme = poeme + '\n'
			
print(poeme)
#print(mot[len(mot):: -1]) #pour raccourcir on peut print(mot[::-1]) il comprendra
#afficher les deux premières lettres du mots print(mot[0:2])
#afficher les 4 premières lettres dans le sens inverse print(mot[3:0:-1]) le -1 c'est pour dire tu vas de une lettre à une lettre dans le mauvais sens
#afficher une lettre sur deux des 4 premières lettres dans le sens inverse print(mot[3:0:-2])


#remplacer les mots de trois lettre en ???
import re

with open('poeme.txt','r') as f_open:
    data = f_open.read()

data=re.sub(r' (^|[A-z]) [^ ]{3} |( \n.;,?!)', r'\1???\2', data)  
#l'outil r considère qu'après c'est du brut en loccurence du texte brut/[]:classe de caractère/ {}:quantifieur /[^ ]: tout sauf (ce qui suit)

print(data)

with open('poeme.txt','r') as f_open:
    data = f_open.read()
 
#print(data)

lines = data.splitlines()
#chaque vers une donnée du tableaux

#print(lines)
#[1erphrase , 2èmephrase, ...]

for indice in range (0, len(lines)):
	vers = lines[indice]
	'''print (vers[0:2])'''
	if vers[0:2] == "Je" or vers[0:2]== "J'":
		print (vers + 'NARCISSE')
	else:
		print(vers)

'''	print (lines [indice])'''
# le [] pour afficher les lignes séparemment pour pouvoir les modifier chacunes




#trier les vers pour qu'ils riment
#introduire des "NARCISSE" après chaque vers qui commencent par des "Je" ou des "J'" 
#remplacer toutes les voyelles par une autre aléatoire
#inverser l'ordre de toutes les lettres
#traduire le poème en une autre langue



with open('poeme.txt','r') as f_open:
    data = f_open.read()

print(data.replace("a","o"))
#un script qui remplace les mots qui suivent les 'le' par 'raton-laveur' et ceux qui suivent les 'la' par 'mare aux canards

with open('poeme.txt','r') as f_open:
    data = f_open.read()

lines = data.splitlines() #pour lister/tableaux les vers

for indice in range (0, len(lines)):
	vers = lines[indice]
	mots = vers.split(' ') #pour lister/tableaux les mots au sein des lignes
	#print(mots)
	for indiceMot in range(0, len(mots)):
		#print (mots[indiceMot])
		if mots [indiceMot] == "le":
			mots[indiceMot + 1] = "raton-laveur"

		elif mots [indiceMot] == "la":
			mots[indiceMot + 1] = "mare aux canards"

	
	lines[indice] = ' '.join(mots)
	
	'''
	print(lines[indice])
	'''

	'''vers= ' '.join(mots)
	print(vers)
	'''

data = '\n'.join(lines) #pour la mise en page pour l'affichage
print(data)
#un script qui remplace les mots qui suivent les 'le' par 'raton-laveur' et ceux qui suivent les 'la' par 'mare aux canards
# r = expression regulière en informatique peut servir ds le traitement d'un truc en particulier (patern) dans une récupération
#re.sub = expression régulière
import re

with open('poeme.txt','r') as f_open:
    data = f_open.read()

data = re.sub(r'le [^ \n]', 'le raton-laveur', data) #[a-z]+ toute les lettres/ le plus = une ou plusieurs fois /.* n'importe quelle caractère/ [^ \n] n'inmporte quelle caractère a part espace et saut de ligne


print(data)
with open('poeme.txt','r') as f_open:
    data = f_open.read()

uppercase_data=data.upper()
print(uppercase_data)



import random
import time


print("Bonjour les enfants voulez vous faire un travail de groupe?")

Reponse = input()

if Reponse == "oui":
	print("Super nous allons tirer au sort!")
if Reponse == "non":
	print("Ah de toute façon vous n'avez pas le choix, nous allons tirer au sort!")

print("C'est parti!")

time.sleep(3)

eleves = ["Martin" , "Patricia" , "Nathan" , "Claire" , "Laurent"]

memoire = []


i = 0
while i < 2:
	indice1 = random.randint(0, 4)
	indice2 = random.randint(0, 4)
	
	if indice1 != indice2:

		if indice1 not in memoire and indice2 not in memoire:

			memoire.append(indice1)	
			memoire.append(indice2)		
			print(f"{eleves [indice1]} est avec {eleves [indice2]}")
			i = i + 1

time.sleep(3)
print("Ah mince il y a un vilain petit canard")



import time

print("Tu finis à quelle heure?")

heure = input("Je finis à ") 

print(f"tu finis à {heure} !!!")

heure = int(heure)

if heure < 12:
	print("t'es un sacré veinard!!")
elif heure < 15:
	print("t'es bien")
elif heure < 18:
	print("passe une bonne journée")
elif heure < 24:
	print("t'es dans la merde, bon courage!")

print ("Je te laisse une chance de partir plus tôt. Choisis un nombre entre 1 et 10")

nombre = input()
print("ton résultat dans 3 secondes")
for indice in range(0, 3): 
	print (f"dans {3-indice}")
	time.sleep(1)


if nombre == 7:
	print("Bravo tu peux sortir de suite!")
else: 
	print("tu as loupé ta chance")



# _*_ coding:utf8 _*_

print("Tu finis à quelle heure?")

heure = input("Je finis à ") 

print(f"tu finis à {heure} !!!")

heure = int(heure)

if heure < 12:
	print("t'es un sacré veinard!!")
elif heure < 15:
	print("t'es bien")
elif heure < 18:
	print("passe une bonne journée")
elif heure < 24:
	print("t'es dans la merde, bon courage!")