Deutsch   English   Français   Italiano  
<slrnsqaqvf.ncj.lulu042@valentino.Rock-n-Roll.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!cleanfeed3-b.proxad.net!nnrp1-1.free.fr!not-for-mail
Newsgroups: fr.comp.lang.python
From: Lulu <lulu042@fry.fr.invalid>
Subject: Re: windows : installation module
References: <slrnsqaocj.2pn.lulu042@valentino.Rock-n-Roll.org>
Organization: koitess?
User-Agent: slrn/1.0.3 (Linux)
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-ID: <slrnsqaqvf.ncj.lulu042@valentino.Rock-n-Roll.org>
Date: Tue, 30 Nov 2021 01:10:23 +0100
Lines: 140
NNTP-Posting-Date: 30 Nov 2021 01:10:37 CET
NNTP-Posting-Host: 37.173.226.43
X-Trace: 1638231037 news-1.free.fr 4986 37.173.226.43:37627
X-Complaints-To: abuse@proxad.net
Bytes: 5828

Le 29-11-2021, Lulu <lulu042@fry.fr.invalid> a écrit :
>  Bonjour,
> 
>  Je suis linuxien, donc autant dire que je n'ai aucun problème pour
>  installer des modules python sur ma linuxette.
> 
>  Mais mes élèves sont sous Windows 10 (dotation de la région pour tous
>  les élèves de seconde) et je suis censé leur donner la marche à suivre
>  pour installer un module comme numpy par exemple.
> 
>  Sous windows 10, je peux installer numpy dans une 'invite de commande'
>  lancée en tant qu'administrateur avec 'python -m pip install numpy'.
> 
>  Cependant, je mange une erreur à l'exécution de mon script : 
>  %Run syracuse2_nocolor.py
>  Traceback (most recent call last):
>    File "C:\Users\hugo\Documents\taf\2nd_SNT\01_algo_python\2020-01-07_syracuse2\syracuse2_nocolor.py", line 24, in <module>
>      import numpy as np
>  ModuleNotFoundError: No module named 'numpy'
> 
>  Il semble donc que l'installation des modules ne soit pas "vue" par mon
>  script. Donc, j'ai besoin d'aide...
> 
>  Comment installer un module pour python sous Windows 10 ?
> 
>  Merci de votre aide.

J'ai pensé que vous auriez apprécié le code de la conjucture de
syracure :


#!/usr/bin/python3
# -*- coding: utf-8 -*-

# Auteur : <h.fertin@ac-rouen.fr>, Lycée Jules Siegfried, Le Havre
# Creative Commons : https://creativecommons.org/licenses/by-nc-sa/2.0/fr/
# Attribution :: Pas d'utilisation commerciale :: Partage dans les mêmes conditions

# Formulée en 1937 par Lothar Collatz (mathématicien allemand), elle
# reste à ce jour irrésolue : personne n'a encore pu prouver que cette
# conjecture se termine toujours par 1.

# Propriétés remarquables de la conjecture :
# - un nombre n'apparait jamais 2 fois dans la suite ;
# - toute suite se termine par une série de puissances de 2 ;
# - un nombre impair est toujours suivi d'un nombre pair ;
# - les nombres 5 et 32 donnent la même suite.
# Certains nombres ont des trajectoires surprenantes :27, 255, 447, 639 ou 703.

# Ce script utilise le test 'if' et le test 'while' puis trace un graphe.


import numpy as np
import matplotlib.pyplot as plt

# mar. 27 avril 2021 18:15:16 CEST
# je veux avoir une espace en séparateur de milliers
import locale
# https://stackoverflow.com/questions/955986/what-is-the-correct-way-to-set-pythons-locale-on-windows
# You should not pass an explicit locale to setlocale, it is wrong.
# Let it find out from the environment.
# You have to pass it an empty string
# locale.setlocale(locale.LC_NUMERIC, 'fr_FR.UTF-8')
locale.setlocale(locale.LC_ALL, '') 
# je n'aurais plus qu'à faire 'print("ma variable vaut {:n} bla bla".format(ma_variable))'
# pour que ma_variable affiche les séparateurs de milliers

# Cette fonction devient inutile
# def Formate_Entier(s, sep=' '):
#    if len(s) <= 3:
#        return s
#    else:
#        return Formate_Entier(s[:-3], sep) + sep + s[-3:]


print('\n    **************************')
print('    * Conjecture de Syracuse *')
print('    **************************\n')

# test pour vérifier que l'utilisateur saisi bien un nombre entier
while True:
    x = input('Donner un nombre entier : ')
    try:
        le_nombre_saisi = int(x)
        break
    except ValueError:
        print('    Saisir un nombre ENTIER !!!')
        pass

le_nombre = le_nombre_saisi
print("{:>20n}".format(le_nombre), end='')

# initialisation de la liste des nombres constituants la suite de Syracuse
suite_Syracuse = []
altitude_max = 1

while le_nombre != 1 :
    suite_Syracuse.append(le_nombre)
    if le_nombre > altitude_max :
        altitude_max = le_nombre
    if le_nombre % 2 == 0:
        print('    pair ---> x = x / 2')
        le_nombre = le_nombre // 2
    else:
        print('    impair ---> x = 3 * x + 1')
        le_nombre = 3 * le_nombre + 1

    print("{:>20n}".format(le_nombre), end='')

suite_Syracuse.append(1)

print('\n\n-=-=-=-=')
print(suite_Syracuse)
print('-=-=-=-=')

print('Nombre saisi :', "{:n}".format(le_nombre_saisi))
print('Temps de vol :', "{:n}".format(len(suite_Syracuse)), 'itérations.')
print('Altitude maximale atteinte :', "{:n}".format(altitude_max))

abscisse_liste = []
for i in range(len(suite_Syracuse)):
    abscisse_liste.append(i)

x = np.array(abscisse_liste)
y = np.array(suite_Syracuse)

fig = plt.figure(figsize=(10, 6))
# plt.yscale('log')
# plt.grid()
plt.bar(x, y, color = 'green')
plt.suptitle('Conjecture de Syracuse', fontsize = 20, x = 0.5, y = 0.995, color = 'red')
la_string = "(graphe pour {:n})".format(le_nombre_saisi)
plt.title(la_string, color='orange')

Comm_altitude_max = "altitude max : {:n}".format(altitude_max)
plt.text(0, altitude_max, Comm_altitude_max)

Comm_temps_de_vol = "temps de vol : {:n} itérations".format(len(suite_Syracuse))
plt.text(0, 0.95 * altitude_max, Comm_temps_de_vol)
plt.show()