الجمعة، 13 ديسمبر 2019

السلاسل النصية بايثون بيثون Python Strings

السلاسل النصية بايثون بيثون

 Python  Strings

السلاسل النصية بايثون بيثون Python  Strings

الخيوط هي من بين الأنواع الأكثر شعبية في بيثون.  يمكننا أن ننشئها ببساطة عن طريق تضمين الأحرف في علامات اقتباس.  تعامل Python علامات الاقتباس المفردة مثل علامات الاقتباس المزدوجة.  إنشاء السلاسل بسيط مثل تعيين قيمة إلى متغير.  على سبيل المثال -
var1 = 'Hello World!'
var2 = "Python Programming"

الوصول للقيم النصوص Accessing Values in Strings

بيثون لا يدعم نوع الحرف ؛  هذه تعامل كسلسلة من طول واحد ، وبالتالي تعتبر أيضا سلسلة فرعية.

 للوصول إلى سلاسل فرعية ، استخدم الأقواس المربعة للتشريح جنبًا إلى جنب مع الفهرس أو الفهارس للحصول على السلسلة الفرعية.  على سبيل المثال -

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -

var1[0]:  H
var2[1:5]:  ytho

تحديث النصوص Updating Strings

يمكنك "تحديث" سلسلة موجودة عن طريق (إعادة) تعيين متغير لسلسلة أخرى.  يمكن أن تكون القيمة الجديدة مرتبطة بقيمتها السابقة أو بسلسلة مختلفة تمامًا.  على سبيل المثال -


#!/usr/bin/python

var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'
عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -

Updated String :-  Hello Python

حروف الهروب Escape Characters


الجدول التالي عبارة عن قائمة بأحرف الهروب أو غير القابلة للطباعة التي يمكن تمثيلها بترميز الخط المائل العكسي.

 يتم تفسير شخصية الهروب.  في واحد ونقلت وكذلك سلاسل مزدوجة ونقلت.
علامة المائلة الحرف بالرمز ١٦الوصف 
\a0x07الجرس أو التنبيه
\b0x08العلامة المائلة Backspace
\cx  كنترول وحرف اكس Control-x
\C-xكنترول وحرف اكس كبير Control-x
\e0x1b هروب Escape
\f0x0cشكل نصي Formfeed
\M-\C-x كنترول واكس وميتا Meta-Control-x
\n0x0aسطر جديد Newline
\nnnOctal notation, where n is in the ملاحظة من نوع ثماني range 0.7
\r0x0dرجوع Carriage return
\s0x20مسافة Space
\t0x09 الانتقال باستخدام Tab
\v0x0bالانتقال عموديا باستخدام تاب Vertical tab
\xحرف Character x
\xnnHexadecimal notation, where n is in  ترميز ب ١٦ عشري the range 0.9, a.f, or A.F

مشغلات خاصة نصية String Special Operators

افترض أن متغير السلسلة a يحمل "Hello" بينما يحمل متغير b "Python" ، ثم -
المشغلالوصف مثال 
+ربط مبين معا a + b will give HelloPython
*تكرار النص ,a*2 will give -HelloHello
[]رجوع بقيمة الحرف من خلال الفهري a[1] will give e
[ : ]رجوع بالحروف من كلمة او النص حسب الفهرس المعطى من فهرس رقم إلى فهرس رقم a[1:4] will give ell
inيبحث عن حرف معين هل يوجد داخل النص فيعود يصح اذا كان موجود او خطأ ان لم يكن H in a will give 1
not inعكس السابق M not in a will give 1
r/RRaw String - يقمع المعنى الفعلي لأحرف الهروب.  بناء جملة السلسلة الأولية هو نفسه تمامًا كما هو الحال بالنسبة للسلاسل العادية باستثناء مشغل السلسلة الأولية ، الحرف "r" ، الذي يسبق علامات الاقتباس.  يمكن أن تكون "r" صغيرة (r) أو كبيرة (R) ويجب وضعها مباشرةً قبل علامة اقتباس الأولىprint r'\n' prints \n and print R'\n'prints \n
%تنسيق - يؤدي تنسيق سلسلةSee at next section

مشغل تنسيق السلسلة String Formatting Operator

واحدة من أروع ميزات بيثون هي عامل تنسيق السلسلة٪.  هذا المشغل فريد من نوعه في السلاسل ويعوض عن حزمة وجود وظائف من عائلة C printf ().  فيما يلي مثال بسيط -

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21)
عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -

My name is Zara and weight is 21 kg!
فيما يلي قائمة بمجموعة كاملة من الرموز التي يمكن استخدامها مع٪ -

الرمز التحويل
%cحرفي
%sتحويل السلسلة عبر str () قبل التنسيق
%iعدد صحيح عشري
%dعدد صحيح عشري
%uعدد صحيح عشري غير موقعة
%oعدد صحيح ثماني
%xعدد صحيح سداسي عشري (أحرف صغيرة)
%Xعدد صحيح سداسي عشري (أحرف كبيرة)
%eتدوين الأسي (مع صغيرة 'e')
%Eتدوين أسي (مع UPPERcase 'E')
%fالنقطة العشرية الرقم الحقيقي
%gأقصر٪ f و٪ e
%Gأقصر٪ f و٪ E
يتم سرد الرموز والوظائف الأخرى المدعومة في الجدول التالي -

الرمز الوظيفة 
*تفاصيل الوسيط  العرض أو الدقة
-left justification تعديل لليسار 
+display the sign عرض علامة +
leave a blank space before a positive number ترك مسافة
#إضافة الصفر البادئة صفر ('0') أو ست عشرية بادئة '0x' أو '0X' ، اعتمادًا على ما إذا كان تم استخدام "x" أو "X".
0لوحة من اليسار مع الأصفار (بدلاً من المسافات)
%يتركك بحرف واحد '٪' ٪٪ '
'
(var)متغير التعيين (وسائط القاموس)
m.n.m هو الحد الأدنى للعرض الكلي و n هو عدد الأرقام المراد عرضها بعد العلامة العشرية (إن وجدت)

علاك التنصيص الثلاثية Triple Quotes

تأتي علامات الاقتباس الثلاثية لـ Python في حالة إنقاذ من خلال السماح للسلاسل بامتداد خطوط متعددة ، بما في ذلك NEWLINE حرفيًا و TABs وأي أحرف خاصة أخرى.

 يتكون بناء جملة علامات الاقتباس الثلاثية من ثلاثة علامات اقتباس مفردة أو مزدوجة متتالية.

#!/usr/bin/python

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str
عند تنفيذ الرمز أعلاه ، فإنه ينتج النتيجة التالية.  لاحظ كيف تم تحويل كل حرف خاص إلى شكله المطبوع ، وصولاً إلى آخر سطر جديد في نهاية السلسلة بين "أعلى".  وإغلاق يقتبس الثلاثي.  لاحظ أيضًا أن NEWLINE تحدث إما مع إرجاع حرف صريح في نهاية السطر أو رمز الهروب الخاص به (\ n) -

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.

السلاسل الأولية لا تتعامل مع الخط المائل العكسي كحرف خاص على الإطلاق.  كل حرف تضعه في سلسلة خام يبقى بالطريقة التي كتبت بها−
#!/usr/bin/python

print 'C:\\nowhere'

عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -
C:\nowhere

الآن دعونا نستخدم سلسلة الخام.  نضع التعبير في r'expression على النحو التالي -

#!/usr/bin/python

print r'C:\\nowhere'

عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -
C:\\nowhere

ايتم تخزين السلاسل العادية في Python داخليًا مثل ASCII ذي 8 بت ، بينما يتم تخزين سلاسل Unicode كـ Unicode 16 بت.  يسمح هذا لمجموعة أكثر تنوعًا من الأحرف ، بما في ذلك الأحرف الخاصة من معظم اللغات في العالم.  سأقصر علاجي لسلاسل Unicode على ما يلي -لنص من نوع الكود الموحد Unicode String



#!/usr/bin/python

print u'Hello, world!'

عند تنفيذ الكود أعلاه ، فإنه ينتج النتيجة التالية -
Hello, world!

كما ترون ، تستخدم سلاسل Unicode البادئة u ، تمامًا كما تستخدم السلاسل الأولية البادئة r.

 المدمج في أساليب سلسلة
 يتضمن Python الأساليب المضمنة التالية لمعالجة السلاسل -
الرقم .الدالة والشرح 
1capitalize()
يستفيد الحرف الأول من السلسلة
2center(width, fillchar)
إرجاع سلسلة مبطنة بمسافة مع توسيط السلسلة الأصلية إلى إجمالي أعمدة العرض.

3count(str, beg= 0,end=len(string))
يتم حساب عدد المرات التي تحدث فيها str في السلسلة أو في سلسلة فرعية من السلسلة إذا تم بدء بداية التسول وإنهاء نهاية الفهرس.

4decode(encoding='UTF-8',errors='strict')
يقوم بترميز السلسلة باستخدام برنامج الترميز المسجل للتشفير.  الترميز الافتراضي لترميز السلسلة الافتراضية.

5encode(encoding='UTF-8',errors='strict')
إرجاع إصدار السلسلة المشفرة من السلسلة ؛  عند الخطأ ، الافتراضي هو رفع قيمة ValueError ما لم يتم إعطاء أخطاء مع "تجاهل" أو "استبدال".
6endswith(suffix, beg=0, end=len(string))
يحدد ما إذا كانت السلسلة أو سلسلة فرعية من السلسلة (إذا تم إعطاء مؤشر بدء التسول ونهاية فهرس المؤشر) تنتهي لاحقة ؛  إرجاع صحيح إذا كان الأمر كذلك وخطأ خلاف ذلك.

7expandtabs(tabsize=8)
يوسع علامات التبويب في السلسلة إلى مسافات متعددة ؛  الإعدادات الافتراضية إلى 8 مسافات لكل علامة تبويب إذا لم يتم توفير tabsize.

8find(str, beg=0 end=len(string))
حدد ما إذا كانت str تحدث في السلسلة أو في سلسلة فرعية من السلسلة إذا كان بدء مؤشر التسول وإنهاء نهاية المؤشر يعطى مؤشر إرجاع إذا تم العثور عليه و -1 خلاف ذلك.

9index(str, beg=0, end=len(string))
مثل find () ، لكنه يثير استثناء إذا لم يتم العثور على str.

10isalnum()
إرجاع صحيح إذا كانت السلسلة تحتوي على حرف واحد على الأقل وكانت جميع الأحرف أبجدية ورقمية على خلاف ذلك.
11isalpha()
إرجاع صحيح إذا كانت السلسلة تحتوي على حرف واحد على الأقل وكانت جميع الأحرف أبجدية وخاطئة على خلاف ذلك.

12isdigit()
إرجاع صحيح إذا كانت السلسلة تحتوي على أرقام وخطأ فقط.

13islower()
إرجاع صحيح إذا كانت السلسلة تحتوي على حرف واحد على الأقل وكانت جميع الأحرف ذات الأحرف الصغيرة صغيرة وغير صحيحة.

14isnumeric()
إرجاع صحيح إذا كانت سلسلة أحرف Unicode تحتوي فقط على أحرف رقمية وخطأ خلاف ذلك.

15isspace()
يتم إرجاع true إذا كانت السلسلة تحتوي على أحرف مسافة بيضاء فقط وغير صحيحة.

16istitle()
إرجاع صحيح إذا كانت السلسلة "titlecased" صحيحة وكاذبة بطريقة أخرى

17isupper()
إرجاع صحيح إذا كانت السلسلة تحتوي على غلاف واحد على الأقل وكانت جميع الأحرف التي تم تهيئتها كبيرة الحجم وغير صحيحة.

18join(seq)
يدمج (يسلسل) تمثيلات سلسلة العناصر في تسلسل تسلسل في سلسلة ، مع سلسلة فاصل.

19len(string)
إرجاع طول السلسلة

20ljust(width[, fillchar])
إرجاع سلسلة مبطنة بمسافة مع السلسلة الأصلية ذات الضبط الأيسر إلى إجمالي أعمدة العرض.
21lower()
يحول كل الحروف الكبيرة في السلسلة إلى أحرف صغيرة.

22lstrip()
يزيل كل المسافات البادئة في السلسلة.

23maketrans()
إرجاع جدول ترجمة لاستخدامه في وظيفة الترجمة.

24max(str)
إرجاع الحد الأقصى للحروف الأبجدية من سلسلة str.

25min(str)
إرجاع الحرف الأبجدي min من str string.

26replace(old, new [, max])
يستبدل جميع تكرارات القديم في السلسلة بحدث جديد أو على الأكثر بحد أقصى إذا تم إعطاء الحد الأقصى.

27rfind(str, beg=0,end=len(string))
مثل find () ، لكن ابحث للخلف في السلسلة.

28rindex( str, beg=0, end=len(string))
مثل الفهرس () ، ولكن ابحث للخلف في السلسلة.
29rjust(width,[, fillchar])
إرجاع سلسلة مبطنة بمسافة مع السلسلة الأصلية محاذاة إلى اليمين إلى إجمالي أعمدة العرض
.
30rstrip()
يزيل كل مسافة بيضاء أو سلسلة زائدة.

31split(str="", num=string.count(str))
انقسام السلسلة وفقًا str str (مساحة إذا لم يتم توفيرها) وإرجاع قائمة substrings؛  تنقسم إلى معظم الأسطوانات الفرعية إذا أعطيت.

32splitlines( num=string.count('\n'))
تقسيم السلسلة على الإطلاق (أو num) NEWLINE وإرجاع قائمة بكل سطر مع إزالة NEWLINE.
33startswith(str, beg=0,end=len(string))
لتحديد ما إذا كانت السلسلة أو سلسلة فرعية من السلسلة (إذا تم إعطاء مؤشر بدء التسول ونهاية الفهرس) تبدأ بـ سلسلة فرعية ؛  إرجاع صحيح إذا كان الأمر كذلك وخطأ خلاف ذلك.

34strip([chars])
ينفذ كل من lstrip () و rstrip () على السلسلة.

35swapcase()
ينقلب حالة لجميع الحروف في السلسلة.

36title()
إرجاع إصدار "titlecased" من السلسلة ، أي أن جميع الكلمات تبدأ بحرف كبير والباقي صغيرة.

37translate(table, deletechars="")
يترجم السلسلة وفقًا لجدول الترجمة str (256 حرفًا) ، مع إزالة تلك الموجودة في سلسلة del.

38upper()
يحول الحروف الصغيرة في السلسلة إلى أحرف كبيرة.

39zfill (width)
إرجاع السلسلة الأصلية إلى اليسار مبطنة بأصفار إلى إجمالي أحرف العرض ؛  معد للأرقام ، يحتفظ zfill () بأي علامة معينة (أقل من صفر).

40isdecimal()
إرجاع صحيح إذا كانت سلسلة أحرف Unicode تحتوي فقط على أحرف عشرية وخطأ خلاف ذلك.







التسميات: