0
votes

Python 3x: Importation de la bibliothèque de mathématiques Python

J'ai le code suivant que je veux exécuter:

Traceback (most recent call last):
  File "main.py", line 34, in <module>
    a.numToLoc('9')
  File "main.py", line 30, in numToLoc
    num = int(math.log2(num))
AttributeError: 'module' object has no attribute 'log2'


6 commentaires

Quelle version de Python utilisez-vous?


math.log2 () a été ajouté à Python 3.3; Vous utilisez apparemment une version plus ancienne. Essayez math.log (num, 2) à la place.


@Medwin j'utilise 3x


quel 3x. ils ne sont pas tous pareils. theres 3.0 à 3.7


@Gammer Vous passez également une chaîne à Somenum () . Je pense que vous voulez passer un entier à la place: a.somenum (9)


Quelle version exacte de Python utilisez-vous? 3.3, 3.6 ...?


3 Réponses :


4
votes

math.log2 code> a été introduit dans Python 3.3 . Vous utilisez probablement une version antérieure.

Dans ces versions précédentes, vous pouvez utiliser P>

math.log(num, 2)


0 commentaires

-1
votes

Comme déjà suggéré soit utiliser Python3.3 ou plus ou alors Utilisez math.log (num, 2)

Une autre légère modification est requise.

Veuillez changer

A.Somenum ('9 ')

à xxx

elez cette erreur se produit. xxx


0 commentaires

0
votes

Vous avez un fichier appelé math.py dans le même répertoire que le code que vous essayez d'exécuter. Supprimez ou renommez-le.

Lorsque vous Importer Math , Python traverse les répertoires dans sys.path et importe le premier fichier appelé math.py (ou un répertoire appelé math avec un __ init __. py fichier intérieur) qu'il voit. La première entrée de sys.path est le répertoire actuel, de sorte qu'il voit votre math.py premier.

Voir la documentation de modules ou pour Le Importation Déclaration .


0 commentaires