Voir ma réponse pour plus de Python 3 idiome à l'aide de f-chaînes: print(f'0x{value:X}') Pour être clair, c'est une 3 .6 idiome Oui. Je dis % s'agit de l'ancien opérateur gueule de bois de 2.x qui, bien que non officiellement obsolète, n'est pas recommandée. Python 3.6+ permet enfin interpolation de variable comme nous avons voulu jamais depuis la version 3.0 et .format(). C'est pas vraiment un "Python 3 idiome" si elle échoue à 6/8 de toutes les versions de python 3 (bien que, certes, la plupart sont en fin de vie) " Comme d'aujourd'hui, "3.x" signifie "3.6+" ou "3.7"' - dans mon expérience, ce n'est pas vrai. Pour moi, 3.x signifie "la première version de python 3, que mon paquet de soutien", qui est généralement "tous les non-EOL python 3.x". ", où f-les cordes sont génial" - vous n'avez pas tort à ce sujet.
intNum =1234
hexNum = hex(intNum).upper()print('Upper hexadecimal number = ', hexNum)
De sortie:
Upper hexadecimal number =0X4D2
Mais je ne pense pas que "0X4D2" est la bonne notation. Il doit être "0x4D2" (en minuscule "x"). '%X' est le meilleur. @PeterMortensen est correct. De cette façon, vous auriez besoin de quelque chose de maladroit comme ''.join([ '0x', hex(value).upper()[2:] ])
Le plus Python 3 idiome à l'aide de f-chaînes serait:
value =1234print(f'0x{value:X}')'0x4D2'
Notes (et pourquoi ce n'est pas un doublon):
montre comment éviter la valorisation de l' " 0x " préfixe, ce qui était un problème dans d'autres réponses
montre comment obtenir de l'interpolation de variablef'{value}'; personne ne fait jamais met hex littéraux dans le code réel. Il ya beaucoup de pièges dans faire de l'interpolation: ce n'est pas f'{x:value}' ni f'{0x:value}' ni f'{value:0x}' ni même f'{value:%x}' comme je l'ai également essayé. De très nombreux moyens de voyage. Toujours il m'a fallu 15 minutes de l'essai-et-erreur après avoir relu quatre tutoriels et whatsnew docs pour obtenir la syntaxe. Cette réponse montre comment obtenir f-variable de chaîne d'interpolation de droit; d'autres ne le font pas.
Non, c'est pas un) jsbueno la réponse de montrer ni comment éviter la valorisation de l' " 0x " préfixe, ni b) comment obtenir une interpolation de variable f'{value}'; personne ne se met hex littéraux dans le code réel. Et il y a des écueils à faire de l'interpolation: ce n'est pas f'{x:value}' ni f'{0x:value}' ni f'{value:0x}'. De nombreux moyens de voyage. Je montre comment ne pas le faire.
Capital X (Python 2 et 3 à l'aide sprintf-mise en forme de style):
Ou en python 3+ (à l'aide de
.format
syntaxe de la chaîne de):Ou en python 3.6+ (à l'aide de formaté littéraux de chaîne):
print(f'0x{value:X}')
Pour être clair, c'est une 3 .6 idiome
Oui. Je dis
%
s'agit de l'ancien opérateur gueule de bois de 2.x qui, bien que non officiellement obsolète, n'est pas recommandée. Python 3.6+ permet enfin interpolation de variable comme nous avons voulu jamais depuis la version 3.0 et.format()
.C'est pas vraiment un "Python 3 idiome" si elle échoue à 6/8 de toutes les versions de python 3 (bien que, certes, la plupart sont en fin de vie)
" Comme d'aujourd'hui, "3.x" signifie "3.6+" ou "3.7"' - dans mon expérience, ce n'est pas vrai. Pour moi, 3.x signifie "la première version de python 3, que mon paquet de soutien", qui est généralement "tous les non-EOL python 3.x". ", où f-les cordes sont génial" - vous n'avez pas tort à ce sujet.
OriginalL'auteur Eric
Juste d'utiliser des majuscules().
De sortie:
'%X' est le meilleur. @PeterMortensen est correct. De cette façon, vous auriez besoin de quelque chose de maladroit comme
''.join([ '0x', hex(value).upper()[2:] ])
OriginalL'auteur nimesh
En utilisant des majuscules
%X
:La mise à jour de Python 3.6 ère: il suffit d'utiliser " X " dans le format de la partie, à l'intérieur de f-chaînes:
(f-chaînes accepter pour être valable, toute expression Python avant la
:
- comprenant des expressions numériques et les noms de variables).OriginalL'auteur jsbueno
Le plus Python 3 idiome à l'aide de f-chaînes serait:
Notes (et pourquoi ce n'est pas un doublon):
f'{value}'
; personne ne fait jamais met hex littéraux dans le code réel. Il ya beaucoup de pièges dans faire de l'interpolation: ce n'est pasf'{x:value}'
nif'{0x:value}'
nif'{value:0x}'
ni mêmef'{value:%x}'
comme je l'ai également essayé. De très nombreux moyens de voyage. Toujours il m'a fallu 15 minutes de l'essai-et-erreur après avoir relu quatre tutoriels et whatsnew docs pour obtenir la syntaxe. Cette réponse montre comment obtenir f-variable de chaîne d'interpolation de droit; d'autres ne le font pas.f'{value}'
; personne ne se met hex littéraux dans le code réel. Et il y a des écueils à faire de l'interpolation: ce n'est pasf'{x:value}'
nif'{0x:value}'
nif'{value:0x}'
. De nombreux moyens de voyage. Je montre comment ne pas le faire.OriginalL'auteur smci