الفرق بين المراجعتين ل"Python/bytes"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
ط
(مراجعتان متوسطتان بواسطة نفس المستخدم غير معروضتين)
سطر 6: سطر 6:
 
b"still allows embedded 'single' quotes".      # علامات اقتباس مزدوجة
 
b"still allows embedded 'single' quotes".      # علامات اقتباس مزدوجة
 
b'''3 single quotes''', b"""3 double quotes"""  # علامات اقتباس ثلاثية
 
b'''3 single quotes''', b"""3 double quotes"""  # علامات اقتباس ثلاثية
</syntaxhighlight>
 
 
يمكن استخدام الدالة <code>bytes()‎</code> كصيغة بديلة لتعريف البايتات:<syntaxhighlight lang="python3">
 
bytes(10)        # كائن بايتات فارغ وله طول محدّد
 
bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
سطر 20: سطر 15:
  
 
وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات.
 
وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات.
 +
 +
البايتات هي المُقابل غير القابل للتّغيير (immutable) [[Python/bytearray|لمصفوفات البايتات]] القابلة للتّغيير، وللبايتات نفس التّوابع والعمليّات (التي لا يُمكن لها أن تُغيّر من الكائن) التي تملكها مصفوفات البايتات.
 +
 +
== الدالة <code>bytes()‎</code> ==
 +
يمكن استخدام الدالة <code>bytes()‎</code> كصيغة بديلة لتعريف البايتات:<syntaxhighlight lang="python3">
 +
bytes(10)        # كائن بايتات فارغ وله طول محدّد
 +
bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة
 +
</syntaxhighlight>
 +
 +
طريقة استعمال المُعاملات مع الدالة <code>bytes()‎</code> هي نفسها طريقة استعمال [[Python/bytearray#.D8.A7.D9.84.D9.85.D8.B9.D8.A7.D9.85.D9.84.D8.A7.D8.AA|مُعاملات]] الدّالة  <code>bytearray()‎</code> .
  
 
== مصادر ==
 
== مصادر ==
 
* صفحة [https://docs.python.org/3/library/stdtypes.html#bytes-objects Built-in Types] في توثيق بايثون الرسمي.
 
* صفحة [https://docs.python.org/3/library/stdtypes.html#bytes-objects Built-in Types] في توثيق بايثون الرسمي.
 +
* [https://docs.python.org/3/library/functions.html#func-bytes قسم الدالة bytes في صفحة Functions في توثيق Python الرسمي].
 +
 
[[تصنيف:Python]]
 
[[تصنيف:Python]]
 
[[تصنيف:Python Types]]
 
[[تصنيف:Python Types]]
 +
[[تصنيف:Python Function]]
 +
[[تصنيف:Python Built-in Functions]]

مراجعة 19:03، 19 أبريل 2018

البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيير (immutable)، وهي مشابهة إلى حدّ كبير للسلاسل النصية. توفّر هذه الكائنات توابع تكون صالحة للاستخدام مع البيانات ذات الترميز ASCII نظرًا لأنّ الكثير من البروتوكولات الثنائية الرئيسية مستندة إلى هذا الترميز.

صيغة تعريف البايتات مماثلة لصيغة تعريف السلاسل النصية، باستثناء إضافة السابقة b إلى عبارة التعريف وكما يلي:

b'still allows embedded "double" quotes'        # علامات اقتباس مفردة
b"still allows embedded 'single' quotes".       # علامات اقتباس مزدوجة
b'''3 single quotes''', b"""3 double quotes"""  # علامات اقتباس ثلاثية

يسمح باستخدام حروف الترميز ASCII (بصرف النظر عن الترميز المستخدم في الشيفرة)، ويجب إدخال أي قيمة ثنائية تتجاوز 127 باستخدام تسلسل التهريب (escape sequence) الملائم.

كما هو الحال مع السلاسل النصية، فبالإمكان استخدام السابقة r لإيقاف عملية تهريب الحروف.

صحيح أنّ تمثيل البايتات يستند إلى النصوص ذات الترميز ASCII؛ إلا أنّ كائنات البايتات تسلك في الواقع سلوك تسلسل من الأعداد الصحيحة غير قابل للتغيير، وتكون كل قيمة في هذا التسلسل مقيّدة بالشرط الرياضية ‎0 <= x < 256‎، ويؤدي تجاوز هذه القيود إلى إطلاق الخطأ ValueError.

وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات.

البايتات هي المُقابل غير القابل للتّغيير (immutable) لمصفوفات البايتات القابلة للتّغيير، وللبايتات نفس التّوابع والعمليّات (التي لا يُمكن لها أن تُغيّر من الكائن) التي تملكها مصفوفات البايتات.

الدالة bytes()‎

يمكن استخدام الدالة bytes()‎ كصيغة بديلة لتعريف البايتات:

bytes(10)        # كائن بايتات فارغ وله طول محدّد
bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة

طريقة استعمال المُعاملات مع الدالة bytes()‎ هي نفسها طريقة استعمال مُعاملات الدّالة bytearray()‎ .

مصادر