Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3013
| Subject | Re: conflit entre modules ? surcharge de sqrt |
|---|---|
| From | Pierre Maurette <maurette.pierre@free.fr> |
| References | <5a5b2e78$0$4843$426a74cc@news.free.fr> |
| Newsgroups | fr.comp.lang.python |
| Message-ID | <mn.72c97e214ab0a89f.79899@free.fr> (permalink) |
| Date | 2018-01-14 11:53 +0100 |
| Organization | Guest of ProXad - France |
Fabrice :
> Bonjour,
>
> je suis débutant en Python mais pas en programmation (j'ai fait du C++)
> J'aimerai calculer la racine carré d'un réel dans un programme utilisant
> aussi des complexes.
>
> je fais :
>
> from math import *
> from cmath import *
> if sqrt(2)<3:
> print('oui')
>
> et j'ai une erreur :
> TypeError: unorderable types: complex() < int()
>
> pourtant sqrt(2) n'est pas un complexe ! Pourquoi Python me renvoie un
> complexe dans ce cas ?
> Lors de la surcharge de la fonction, Python n'est pas capable de choisir la
> bonne version ?
Le problème est dans vos import *
sqrt est dans math et dans cmath. (Je suppose que) les import de cmath,
ultérieurs, masquent ceux de math. sqrt(2) devient cmath.sqrt(2) qui
est valide et renvoie un complexe.
L'import * est généralement déconseillé. Je réserve cette notation à
des bibliothèques personnelles pour lesquelles je veille à ce que les
noms importés soient qualifiés (improbables). Ce qui vous arrive est en
quelque sorte une chance. Si vous souhaitez alléger votre code, vous
pourriez :
from math import *
import cmath as c
Mais il me semble que même seul la première ligne peut poser
problèmes. Donc:
import math as M
import cmath as C
Mais je préfère me contenter de
import math
import cmath
et de qualifier les appels. Avec la complétion c'est même plus souple.
--
Pierre Maurette
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 11:18 +0100
Re: conflit entre modules ? surcharge de sqrt Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2018-01-14 11:46 +0100
Re: conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 12:06 +0100
Re: conflit entre modules ? surcharge de sqrt Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2018-01-14 12:18 +0100
Re: conflit entre modules ? surcharge de sqrt Pierre Maurette <maurette.pierre@free.fr> - 2018-01-14 11:53 +0100
Re: conflit entre modules ? surcharge de sqrt Fabrice <professeur.leclercq@gmail.com> - 2018-01-14 12:07 +0100
csiph-web