الفرق بين المراجعتين لصفحة: «Python/bytes»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:البايتات في بايثون}}</noinclude> البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيي...' |
لا ملخص تعديل |
||
سطر 2: | سطر 2: | ||
البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيير immutable، وهي مشابهة إلى حدّ كبير للسلاسل النصية. توفّر هذه الكائنات توابع تكون صالحة للاستخدام مع البيانات ذات الترميز ASCII نظرًا لأنّ الكثير من البروتوكولات الثنائية الرئيسية مستندة إلى هذا الترميز. | البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيير immutable، وهي مشابهة إلى حدّ كبير للسلاسل النصية. توفّر هذه الكائنات توابع تكون صالحة للاستخدام مع البيانات ذات الترميز ASCII نظرًا لأنّ الكثير من البروتوكولات الثنائية الرئيسية مستندة إلى هذا الترميز. | ||
صيغة تعريف البايتات مماثلة لصيغة تعريف السلاسل النصية، باستثناء إضافة السابقة b إلى عبارة التعريف وكما يلي: | صيغة تعريف البايتات مماثلة لصيغة تعريف السلاسل النصية، باستثناء إضافة السابقة <code>b</code> إلى عبارة التعريف وكما يلي:<syntaxhighlight lang="python3"> | ||
b'still allows embedded "double" quotes' # علامات اقتباس مفردة | b'still allows embedded "double" quotes' # علامات اقتباس مفردة | ||
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> | |||
يمكن استخدام الدالة bytes() كصيغة بديلة لتعريف البايتات: | يمكن استخدام الدالة bytes() كصيغة بديلة لتعريف البايتات:<syntaxhighlight lang="python3"> | ||
bytes(10) # كائن بايتات فارغ وله طول محدّد | bytes(10) # كائن بايتات فارغ وله طول محدّد | ||
bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة | bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة | ||
</syntaxhighlight> | |||
يسمح باستخدام حروف الترميز ASCII (بصرف النظر عن الترميز المستخدم في الشيفرة)، ويجب إدخال أي قيمة ثنائية تتجاوز 127 باستخدام تسلسل التهريب escape الملائم. | يسمح باستخدام حروف الترميز ASCII (بصرف النظر عن الترميز المستخدم في الشيفرة)، ويجب إدخال أي قيمة ثنائية تتجاوز 127 باستخدام تسلسل التهريب escape الملائم. | ||
كما هو الحال مع السلاسل | كما هو الحال مع [[Python/str|السلاسل النصية]]، فبالإمكان استخدام السابقة <code>r</code> لإيقاف عملية تهريب الحروف. | ||
صحيح أنّ تمثيل البايتات يستند إلى النصوص ذات الترميز ASCII؛ إلا أنّ كائنات البايتات تسلك في الواقع سلوك تسلسل من الأعداد الصحيحة غير قابل للتغيير، وتكون كل قيمة في هذا التسلسل مقيّدة بالشرط الرياضية | صحيح أنّ تمثيل البايتات يستند إلى النصوص ذات الترميز ASCII؛ إلا أنّ كائنات البايتات تسلك في الواقع سلوك تسلسل من الأعداد الصحيحة غير قابل للتغيير، وتكون كل قيمة في هذا التسلسل مقيّدة بالشرط الرياضية <code>0 <= x < 256</code>، ويؤدي تجاوز هذه القيود إلى إطلاق الخطأ <code>ValueError</code>. | ||
وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات. | وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات. | ||
== مصادر == | |||
* صفحة [https://docs.python.org/3/library/stdtypes.html#bytes-objects Built-in Types] في توثيق بايثون الرسمي. | |||
[[تصنيف:Python]] | |||
[[تصنيف:Python Types]] | |||
[[تصنيف:Bytes]] | |||
[[تصنيف:Binary sequence]] |
مراجعة 17:02، 8 مارس 2018
البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيير immutable، وهي مشابهة إلى حدّ كبير للسلاسل النصية. توفّر هذه الكائنات توابع تكون صالحة للاستخدام مع البيانات ذات الترميز ASCII نظرًا لأنّ الكثير من البروتوكولات الثنائية الرئيسية مستندة إلى هذا الترميز.
صيغة تعريف البايتات مماثلة لصيغة تعريف السلاسل النصية، باستثناء إضافة السابقة b
إلى عبارة التعريف وكما يلي:
b'still allows embedded "double" quotes' # علامات اقتباس مفردة
b"still allows embedded 'single' quotes". # علامات اقتباس مزدوجة
b'''3 single quotes''', b"""3 double quotes""" # علامات اقتباس ثلاثية
يمكن استخدام الدالة bytes() كصيغة بديلة لتعريف البايتات:
bytes(10) # كائن بايتات فارغ وله طول محدّد
bytes(range(20)) # باستخدام مدى من الأعداد الصحيحة
يسمح باستخدام حروف الترميز ASCII (بصرف النظر عن الترميز المستخدم في الشيفرة)، ويجب إدخال أي قيمة ثنائية تتجاوز 127 باستخدام تسلسل التهريب escape الملائم.
كما هو الحال مع السلاسل النصية، فبالإمكان استخدام السابقة r
لإيقاف عملية تهريب الحروف.
صحيح أنّ تمثيل البايتات يستند إلى النصوص ذات الترميز ASCII؛ إلا أنّ كائنات البايتات تسلك في الواقع سلوك تسلسل من الأعداد الصحيحة غير قابل للتغيير، وتكون كل قيمة في هذا التسلسل مقيّدة بالشرط الرياضية 0 <= x < 256
، ويؤدي تجاوز هذه القيود إلى إطلاق الخطأ ValueError
.
وضعت هذه القيود بصورة متعمّدة وذلك لتأكيد فكرة مفادها أنّه قد يكون بإمكان بعض خوارزميات معالجة النصوص أن تتعامل مع البيانات الثنائية إلّا أنّ الحال لا يكون كذلك دائمًا؛ فقد يؤدي معالجة البيانات الثنائية غير المرمّزة بالترميز ASCII بواسطة خوارزميات التعامل مع النصوص إلى تدمير البيانات.
مصادر
- صفحة Built-in Types في توثيق بايثون الرسمي.