• 0

كيف أطبع سلسلة نصية كبايتات hex في بايثون؟

لدي سلاسل نصية التالية Hello world !! وأريد أن يطبعها لي بايثون كالتالي 48:65:6c:6c:6f:20:77:6f:72:6c:64:20:21:21 فهل هنالك دالة معينة أو أي طريقة لفعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

هنالك طرق عديدة في بايثون لتحويل سلسلة نصية إلى بايتات hex، ومن أبسط هذه الطرق هي إرسال سلسلتك النصية إلى منشئ الأعداد الصحيحة ثم تطبق تنسيق hex على جميع عناصرها وفي نهاية تفصل hex كل عنصر بنقطتين عن طريق الدالة المدمجة join كما في المثال التالي:

>>> s = "Hello world !!"
>>> ":".join("{:02x}".format(ord(c)) for c in s)
'48:65:6c:6c:6f:20:77:6f:72:6c:64:20:21:21

أو في حالة استخدامك للإصدار الثاني من بايثون يمكنك استخدام هذا السطر:

':'.join(x.encode('hex') for x in 'Hello World!')

في الإصدار الثالث لن يعمل لك المثال السابق لذا اكتب ما يلي:

':'.join(hex(ord(x))[2:] for x in 'Hello World!')

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن