J'ai créé un module dans un fichier qui s'appelle secondaire que voici:
import os
def aire_rectangle(longueur,largeur):
print(longueur*largeur)
def surface_rectangle(longueur,largeur):
print(2*(longueur+largeur))
if __name__ == '__main__':
aire_rectangle(5,3)
surface_rectangle(6,3)
os.system ("pause")
Rien d'extraordinaire...je suis en phase d'ingurgitation du cours débutant pour Python
Le but est d'appeler ce module (intégralement) dans un second fichier qui s'appelle primaire
primaire et secondaire sont tous les deux dans le même dossier enregistré sur mon bureau
Version Python: 3.8.1
Quand j'utilise
import
j'ai ce message d'erreur:
>>> import secondaire
>>> aire_rectangle(1,3)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
aire_rectangle(1,3)
NameError: name 'aire_rectangle' is not defined
>>>
Le message d'erreur apparaît également avec la seconde fonction surface_rectangle :
>>> import secondaire
>>> surface_rectangle (1,3)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
surface_rectangle (1,3)
NameError: name 'surface_rectangle' is not defined
>>>
Pourtant si j'utilise
from secondaire import *
ou si j'appelle individuellement chacune des fonctions, cela fonctionne. A titre d'exemple:
>>> from secondaire import *
>>> surface_rectangle(1,5)
12
>>>
>>> from secondaire import aire_rectangle
>>> aire_rectangle(1,3)
3
>>>
Pourriez vous m'indiquer ,éventuellement, mon erreur ou pourquoi deux méthodes fonctionnent mais pas la troisième. A votre disposition pour tous renseignements complémentaires
J'ai le programme ci-dessous pour lequel j'ai une petite question:
def eleMax(lst, debut =0, fin =-1):
"renvoie le plus grand élément de la liste lst"
if fin == -1:
fin = len(lst)
max, i = 0, 0
while i < len(lst):
if i >= debut and i <= fin and lst[i] > max:
max = lst[i]
i = i + 1
return max
Ligne 7:
if i >= debut and i <= fin and lst[i] > max:
Puisque un signe <= est utilisé, ne faut il pas ligne 4, indiqué fin = len(lst) -1 pour indiquer que l'indice i peut prendre toutes les valeurs entre 0 et le dernier de la chaîne de caractère? Par ailleurs la boucle précise bien pour tout i strictement inférieur à len(lst), comment dans ce cas pourrions nous avons i = fin = len(lst)?
Ce bout de code est inutilement compliqué, mais oui, il me semble que tu as raison.
Si tu veux voir le déroulement du programme, tu peux ajouter des print dans le code pour afficher les valeurs qui t'intéressent, c'est une méthode de debug basique mais très utile.
Vu qu'il y a déjà la condition du while pour stopper la boucle arrivé en fin de liste, la condition du if peut être simplifiée à "if lst[i] > max".
Effectivement le code est "tordu", mais c'est un exercice pour débutant donc limite en termes de connaissances.
Pour ton information voilà l'énoncé de l'exercice:
"Définissez une fonction eleMax(liste,debut,fin) qui renvoie l’élément ayant la plus grande valeur dans la liste transmise. Les deux arguments debut et fin indiqueront les indices entre lesquels doit s’exercer la recherche, et chacun d’eux pourra être omis"
Import module ne fonctionne pas
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...