Pourquoi sont des nombres complexes en Python marqué avec un " j "au lieu de "je"?
Je sais que c'est un génie électrique de la convention, mais je me demande encore aujourd'hui pourquoi il a été choisi pour Python. Je ne connais pas d'autres langages de programmation complexes-nombre de littéraux, donc je n'ai pas de quoi comparer, mais personne ne sait tout, qui ne les utiliser je?
Vous devez vous connecter pour publier un commentaire.
Il semble être, comme vous l'avez deviné, parce que Python suit le génie électrique de la convention. Voici un échange de Python bug tracker Issue10562:
...
Beaucoup plus tard:
I
(pasi
) est utilisé pour le courant de l'ingénierie et de la physique, et Python est sensible à la casse. Aussi,I
n'est jamais utilisé comme suffixe à numéros -A
est utilisé à la place (ampères).I
est la variable, etA
est l'unité.i
n'est jamais utilisé pour les nombres imaginaires.j
comme un suffixe est en fait plus de la confusion, carJ
comme un suffixe est effectivement utilisé en physique et en génie (en Joules).i
est parfois utilisé pour représenter le courant alternatif afin de distinguer les valeurs de CC (par exemple). Non pas qu'il n'est pas encore étrange raisonnement, tout simplement pas nécessairement une fausse prémisse.j
) est utilisé pour quelque chose de physique, il n'y a aucune raison de faire le courant de l'exception. Encore pire... alors queI
au lieu dei
est utilisé pour le courant, laj
est utilisé pour la densité de courant (et des flux en général). Donc, quiconque fait de cet argument, en fait se tire une balle dans les deux genoux avec une seule flèche. Aussi, les minusculesi
a l'air soigné dans la composition (et ne ressemblent pas à des chiffres, parce que c'est la demi-largeur),j
bâtons en dessous de la ligne de base. Cela devient plus laid quand il est composé en l'exposant (pas un python problème, mais quand même...).i
ressemble1
est le seul "à peine" raison acceptable... Mais techniquement, c'est aussi faux si vous utilisez une police de caractères qui en font uni
et1
semblables, vous êtes déjà poser de problèmes... tout Le "génie électrique" pourrait expliquer l'origine, mais cela ne veut pas dire que cela a du sens. Parce quei
etI
n'ont pas une signification particulière en python. Pour tout ce que je sais, presque tous les types de symboles sont utilisés dans pratiquement n'importe quel domaine de la science et ils utilisent même plus que ce que nous pouvons taper avec un clavier de symboles... pensez à la VAE...Python a adopté la convention utilisée par des ingénieurs en électricité. Dans ce domaine,
i
est utilisé pour représenter et utiliserj
comme la racine carrée de -1.Il y avait un bug connecté pour changer en
i
en Python 3.3. Il a été résout comme un "WONTFIX" avec ce raisonnement par Guido van Rossum:j
est utilisé dans l'Ingénierie et l'on a adopté cette convention.i
n'est pas utilisé pour représenter le courant à travers.I
est. Mais pas comme un suffixe de nombre.A
est utilisé pour cela. Et comme pour Guido raisonnement, Python est sensible à la casse, alors pourquoi font valoir quei
ressemble trop à un1
?I
peut, maisi
ne l'est pas.1J
alias1j
, mais ils ne devraient pas.1J
ressemble1 Joule
à tout physicien ou ingénieur.De répondre "personne ne sait tout [d'autres langages de programmation complexes-nombre de littéraux] que dois-je?"
Oui, C++ depuis le C++14 standard. Vous devez utiliser le droit de l'espace de noms bien:
i
.i
pour les nombres imaginaires. Il supporte à la foisi
etj
. Et python ne pas utiliseri
comme suffixe pour n'importe quel but. Si la compatibilité des vieux codes est le problème, alors pourquoi ne pas soutenir à la fois comme MATLAB que de nouvelles versions de'? C++, Ruby, Allez, R, et Perl tous les utiliseri
.j (pas J) est utilisé en Génie Électrique comme mentionné avant.
je pour le courant: oui, j' (dc) et (ac) sont utilisés pour le courant.
j
est utilisé pour la densité de courant, et même pire, il se trouve juste à côté de l'imaginaire de l'unité dans le modèle de Drude. Comment voulez-vous réécrire (1+iwt)j=σE dans cette notation? Ce raisonnement est faux.j'en génie électrique est généralement utilisé pour i(t) ou courant instantané. I est à l'état d'équilibre DC (non complexes) ou rms valeurs de courant AC. En plus des coordonnées spatiales sont généralement exprimé en i,j,k, mais pour en deux dimensions des éléments i,j sont tous nécessaires et le "je" est abandonné à la perpendiculaire "j" est utilisé comme dans 4j3 vs 4+3i ou 4i3 -Voir que ce n'est pas 413 en un clin d'œil.
J reconnaît cette notation dans la manipulation des nombres complexes. En tant que retraité EE prof - je n'aime pas l'utilisation de "j" pour ce qui est de la densité de Courant "J" est utilisé.