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()