بدأت في الاحتفاظ بقائمة بالوظائف الأكثر استخدامًا ، وحل مشكلات الخوارزميات على LeetCode و HackerRank.كونك مبرمجًا جيدًا لا يعني تذكر جميع الوظائف المضمنة للغة معينة. لكن هذا لا يعني أن حفظها لا فائدة منه. خاصة - عندما يتعلق الأمر بالتحضير للمقابلة.اليوم أريد مشاركتها مع كل من يريد ورقة الغش الخاصة بي للعمل مع الأوتار في Python. صممته على شكل قائمة بالأسئلة التي أستخدمها للاختبار الذاتي. على الرغم من أن هذه الأسئلة لا تنجذب إلى المهام الكاملة التي يتم تقديمها في المقابلات ، فإن تطويرها سيساعدك في حل مشاكل البرمجة الحقيقية.
1. كيفية التحقق من شيئين للهوية؟
is
يعود عامل التشغيل True
إذا تمت كتابة مرجع إلى نفس منطقة الذاكرة في متغيرين. هذا ما نتحدث عنه عندما نتحدث عن "هوية الأشياء".لا تخلط is
و ==
. ==
يتحقق عامل التشغيل فقط من المساواة بين الكائنات.animals = ['python','gopher']
more_animals = animals
print(animals == more_animals)
print(animals is more_animals)
even_more_animals = ['python','gopher']
print(animals == even_more_animals)
print(animals is even_more_animals)
انتبه إلى حقيقة animals
أنها even_more_animals
ليست متطابقة ، على الرغم من أنها متساوية مع بعضها البعض.بالإضافة إلى ذلك ، هناك وظيفة id()
تقوم بإرجاع معرف عنوان الذاكرة المرتبط باسم المتغير. عندما يتم استدعاء هذه الوظيفة ، سيتم إرجاع المعرف نفسه لكائنين متطابقين.name = 'object'
id(name)
2. كيف تتأكد من أن كل كلمة في السطر تبدأ بحرف كبير؟
هناك طريقة سلسلة istitle()
تتحقق مما إذا كانت كل كلمة في سلسلة تبدأ بحرف كبير.print( 'The Hilton'.istitle() )
print( 'The dog'.istitle() )
print( 'sticky rice'.istitle() )
3. كيف تتحقق من سلسلة من سلسلة أخرى فيه؟
هناك عبارة in
ستعود True
إذا كانت السلسلة تحتوي على سلسلة البحث.print( 'plane' in 'The worlds fastest plane' )
print( 'car' in 'The worlds fastest plane' )
4. كيف يمكن العثور على فهرس التواجد الأول لسلسلة فرعية في سلسلة؟
هناك طريقتان تقومان بإرجاع فهرس التواجد الأول لسلسلة فرعية في سلسلة. هذا find()
و index()
. لكل منهم ميزات معينة. ترجعالطريقة إذا لم يتم العثور على السلسلة الفرعية المطلوبة في السلسلة.find()
-1
'The worlds fastest plane'.find('plane')
'The worlds fastest plane'.find('car')
أسلوب index()
في مثل هذه الحالة يلقي خطأ ValueError
.'The worlds fastest plane'.index('plane')
'The worlds fastest plane'.index('car')
5. كيف نحسب عدد الحروف في السلسلة؟
len()
ترجع الدالة طول السلسلة.len('The first president of the organization..')
6. كيف نحسب عدد المرات التي يحدث فيها حرف معين في سلسلة؟
ستساعدنا الطريقة count()
التي تُرجع عدد مرات الحدوث في سلسلة الحرف المحدد في الإجابة عن هذا السؤال .'The first president of the organization..'.count('o')
7. كيف تجعل الحرف الأول من السلسلة حرفًا كبيرًا؟
للقيام بذلك ، يمكنك استخدام الطريقة capitalize()
.'florida dolphins'.capitalize()
8. ما هي الخطوط f وكيفية استخدامها؟
يقدم Python 3.6 ميزة جديدة ، تسمى "سلاسل f". يبسط استخدامها إلى حد كبير استيفاء السلسلة. استخدام الخطوط f يذكرنا بالطريقة format()
.عندما يتم الإعلان عن الخطوط f ، يتم كتابة خطاب قبل علامة اقتباس الافتتاح f
.name = 'Chris'
food = 'creme brulee'
f'Hello. My name is {name} and I like {food}.'
9. كيف تجد سلسلة فرعية في جزء معين من السلسلة؟
index()
يمكن استدعاء الطريقة بتمرير وسيطات اختيارية لها ، تمثل فهرس الجزء الأولي والأخير من السلسلة ، والذي تحتاج فيه للبحث عن سلسلة فرعية.'the happiest person in the whole wide world.'.index('the',10,44)
انتبه إلى حقيقة أن عمليات البناء المذكورة أعلاه تعود 23
، وليس 0
، كما كانت ، لن تحد من بحثنا.'the happiest person in the whole wide world.'.index('the')
10. كيف يتم إدراج محتويات متغير في سلسلة باستخدام طريقة format ()؟
format()
تسمح لك الطريقة بتحقيق نتائج مشابهة لتلك التي يمكن الحصول عليها باستخدام الخطوط f. صحيح ، أعتقد أنه format()
ليس مناسبًا للاستخدام ، حيث يجب تحديد جميع المتغيرات كوسيطات format()
.difficulty = 'easy'
thing = 'exam'
'That {} was {}!'.format(thing, difficulty)
11. كيف أعرف أن السلسلة تحتوي على أرقام فقط؟
هناك طريقة isnumeric()
ترجع True
إذا كانت جميع الأحرف في السلسلة أرقامًا.'80000'.isnumeric()
باستخدام هذه الطريقة ، ضع في اعتبارك أنه لا يحسب علامات الترقيم كأرقام.'1.0'.isnumeric()
12. كيف يتم تقسيم السلسلة بحرف معين؟
هنا سوف نساعدك بطريقة split()
تكسر سلسلة بحرف معين أو عدة أحرف.'This is great'.split(' ')
'not--so--great'.split('--')
13. كيف تتحقق من سلسلة تتكون من أحرف صغيرة فقط؟
islower()
ترجع الطريقة True
فقط إذا كانت السلسلة تتكون فقط من أحرف صغيرة.'all lower case'.islower()
'not aLL lowercase'.islower()
14. كيف يمكنك التحقق من أن السلسلة تبدأ بحرف صغير؟
يمكن القيام بذلك عن طريق استدعاء الأسلوب أعلاه islower()
للحرف الأول من السلسلة.'aPPLE'[0].islower()
15. هل من الممكن في Python إضافة عدد صحيح إلى سلسلة؟
هذا ممكن في بعض اللغات ، لكن Python سيلقي خطأ عند محاولة إجراء عملية مماثلة TypeError
.'Ten' + 10
16. كيفية "قلب" خط؟
من أجل "قلب" خط ، يمكن تقسيمه من خلال تقديمه كقائمة من الأحرف ، "قلب" القائمة ، ودمج عناصرها ، تشكيل خط جديد.''.join(reversed("hello world"))
17. كيف يمكن دمج قائمة الخطوط في سطر واحد ، يتم فصل عناصرها بواسطة الواصلات؟
join()
يمكن أن تجمع الطريقة عناصر القائمة في سلاسل ، مع فصل السلاسل الفردية باستخدام الحرف المحدد.'-'.join(['a','b','c'])
18. كيف أعرف أن جميع الأحرف الموجودة في السلسلة موجودة في ASCII؟
isascii()
ترجع الطريقة True
إذا كانت جميع الأحرف في السلسلة بتنسيق ASCII.print( 'Â'.isascii() )
print( 'A'.isascii() )
19. كيفية صب السلسلة بأكملها في حالة الأحرف الكبيرة أو الصغيرة؟
لحل هذه المشاكل، يمكنك استخدام الأساليب upper()
و lower()
، والتي، على التوالي، متفوقا على كل حرف من السلاسل إلى حالة العلوية والسفلية.sentence = 'The Cat in the Hat'
sentence.upper()
sentence.lower()
20. كيف يتم تحويل الحرف الأول والأخير من السلسلة إلى أحرف كبيرة؟
هنا ، كما في أحد الأمثلة السابقة ، سنشير إلى أحرف السلسلة حسب الفهرس. الخطوط في Python غير قابلة للتغيير ، لذلك سنقوم ببناء خطوط جديدة بناءً على الخطوط الموجودة.animal = 'fish'
animal[0].upper() + animal[1:-1] + animal[-1].upper()
21. كيف تتحقق من سلسلة تتكون من أحرف كبيرة فقط؟
هناك طريقة isupper()
مشابهة لتلك التي تم التفكير فيها بالفعل islower()
. ولكن يتم isupper()
إرجاعها True
فقط إذا كانت السلسلة بأكملها تتكون من أحرف كبيرة.'Toronto'.isupper()
'TORONTO'.isupper()
22. في أي حالة ستستخدم طريقة الانقسام ()؟
الأسلوب splitlines()
يفصل السلاسل بحرف فاصل الأسطر.sentence = "It was a stormy night\nThe house creeked\nThe wind blew."
sentence.splitlines()
23. كيفية الحصول على شريحة خط؟
للحصول على شريحة من سلسلة ، يتم استخدام بناء الجملة التالي:string[start_index:end_index:step]
إليك step
الخطوة التي سيتم من خلالها إرجاع أحرف السلسلة من النطاق start_index:end_index
. تشير step
القيمة 3 إلى أنه سيتم إرجاع كل حرف ثالث.string = 'I like to eat apples'
string[:6]
string[7:13]
string[0:-1:2]
24. كيفية تحويل عدد صحيح إلى سلسلة؟
يمكنك استخدام المُنشئ لتحويل رقم إلى سلسلة str()
.str(5)
25. كيف أعرف أن السلسلة تحتوي على أحرف أبجدية فقط؟
isalpha()
ترجع الطريقة True
إذا كانت جميع الأحرف في السلسلة أحرفًا.'One1'.isalpha()
'One'.isalpha()
26. كيف يمكن استبدال كل تكرارات سلسلة فرعية معينة في سطر معين؟
إذا فعلت ذلك بدون تصدير وحدة نمطية تسمح لك بالعمل مع التعبيرات العادية ، يمكنك استخدام الطريقة لحل هذه المشكلة replace()
.sentence = 'Sally sells sea shells by the sea shore'
sentence.replace('sea', 'mountain')
27. كيف يمكن إرجاع حرف سطر مع الحد الأدنى من رمز ASCII؟
إذا نظرت إلى رموز ASCII للعناصر ، فقد تبين ، على سبيل المثال ، أن الأحرف الكبيرة تحتوي على رموز أقل من الأحرف الصغيرة. تقوم الدالة min()
بإرجاع حرف السلسلة التي تحتوي على أصغر رمز.min('strings')
28. كيف تتحقق من سلسلة تحتوي على أحرف أبجدية رقمية فقط؟
تتضمن الأحرف الأبجدية الرقمية الأحرف والأرقام. للإجابة على هذا السؤال ، يمكنك استخدام الطريقة isalnum()
.'Ten10'.isalnum()
'Ten10.'.isalnum()
29. كيفية إزالة المسافات من بداية السطر (من جانبه الأيسر) ، أو من نهايته (من الجانب الأيمن) ، أو على جانبي الخط؟
هنا ، الأساليب lstrip()
، rstrip()
وعلى التوالي ، مفيدة لنا strip()
.string = ' string of whitespace '
string.lstrip()
string.rstrip()
string.strip()
30. كيف يمكن التحقق من أن السلسلة تبدأ بتسلسل معين من الأحرف ، أو تنتهي بتسلسل معين من الأحرف؟
للإجابة على هذا السؤال ، يمكنك اللجوء ، على التوالي ، إلى الأساليب startswith()
و endswith()
.city = 'New York'
city.startswith('New')
city.endswith('N')
31. كيفية ترميز سلسلة في ASCII؟
encode()
تتيح لك الطريقة ترميز السلاسل باستخدام الترميز المحدد. يتم استخدام الترميز الافتراضي utf-8
. إذا تعذر تمثيل حرف معين باستخدام الترميز المحدد ، فسيتم إنشاء خطأ UnicodeEncodeError
.'Fresh Tuna'.encode('ascii')
'Fresh Tuna Â'.encode('ascii')
32. كيف أعرف أن السلسلة تشمل مسافات فقط؟
هناك طريقة isspace()
ترجع True
فقط إذا كانت السلسلة تتكون من مسافات فقط.''.isspace()
' '.isspace()
' '.isspace()
' the '.isspace()
33. ماذا يحدث إذا قمت بضرب صف في 3؟
سيتم إنشاء خط جديد يمثل الخط الأصلي المكرر ثلاث مرات.'dog' * 3
34. كيف تجعل الحرف الأول من كل كلمة في سلسلة أحرف كبيرة؟
هناك طريقة title()
تحرف الحرف الأول من كل كلمة في السلسلة.'once upon a time'.title()
35. كيف تجمع بين سطرين؟
يمكنك استخدام عامل التشغيل لسَلسَلة السلاسل +
.'string one' + ' ' + 'string two'
36. كيف تستعمل طريقة القسم ()؟
الأسلوب partition()
يكسر السلسلة بواسطة السلسلة الفرعية المعطاة. بعد ذلك ، يتم إرجاع النتيجة كمجموعة. علاوة على ذلك ، يتم تضمين السلسلة الفرعية التي تم تنفيذ الانهيار على طولها أيضًا في المجموعة.sentence = "If you want to be a ninja"
print(sentence.partition(' want '))
37. الخطوط في Python غير قابلة للتغيير. ماذا تعني؟
تشير حقيقة أن السلاسل غير قابلة للتغيير إلى أنه بعد إنشاء كائن سلسلة ، لا يمكن تغييره. عند "تعديل" السلاسل ، لا تتغير السلاسل الأصلية. بدلاً من ذلك ، يتم إنشاء كائنات جديدة تمامًا في الذاكرة. يمكنك إثبات ذلك باستخدام الوظيفة id()
.proverb = 'Rise each day before the sun'
print( id(proverb) )
proverb_two = 'Rise each day before the sun' + ' if its a weekday'
print( id(proverb_two) )
عند التسلسل 'Rise each day before the sun'
وفي ' if its a weekday'
الذاكرة ، يتم إنشاء كائن جديد بمعرف جديد. إذا كان الكائن الأصلي سيتغير ، فسيكون للكائنات نفس المعرف.38. إذا قمت بتعريف نفس السطر مرتين (كتابته في متغيرين مختلفين) - كم عدد الكائنات التي سيتم إنشاؤها في الذاكرة؟ 1 او 2؟
مثال على هذا العمل مع السلاسل هو جزء التعليمات البرمجية التالي:animal = 'dog'
pet = 'dog'
باستخدام هذا النهج ، يتم إنشاء كائن واحد فقط في الذاكرة. عندما صادفت هذا للمرة الأولى ، لم يبد لي ذلك بديهيًا. لكن هذه الآلية تساعد Python في حفظ الذاكرة عند العمل مع سلاسل طويلة.يمكن إثبات ذلك باللجوء إلى وظيفة id()
.animal = 'dog'
print( id(animal) )
pet = 'dog'
print( id(pet) )
39. كيف تستخدم طرق maketrans () وترجمة ()؟
maketrans()
تتيح لك الطريقة وصف تعيين حرف لآخر ، وإرجاع جدول التحويل. تسمح لكالطريقة translate()
بتطبيق الجدول المحدد لتحويل السلسلة.
mapping = str.maketrans("abcs", "123S")
"abc are the first three letters".translate(mapping)
يرجى ملاحظة أن شريط مصنوع من استبدال حرف a
، b
، c
و s
، على التوالي، رموز 1
، 2
، 3
و S
.40. كيفية إزالة حروف العلة من سلسلة؟
أحد الإجابات على هذا السؤال هو أنه يتم فرز الأحرف في سلسلة باستخدام آلية استيعاب القائمة. يتم التحقق من الرموز من خلال المقارنة مع مجموعة أحرف تحتوي على حروف العلة. إذا لم يتم تضمين الحرف في المجموعة ، يتم إرفاقه بخط جديد.string = 'Hello 1 World 2'
vowels = ('a','e','i','o','u')
''.join([c for c in string if c not in vowels])
41. في أي الحالات تستخدم طريقة rfind ()؟
طريقة rfind()
مشابهة لطريقة find()
، ولكن، على عكس find()
، فإنه بفحص السلسلة وليس من اليسار إلى اليمين، ولكن من اليمين إلى اليسار، والعودة في مؤشر على وقوع وجدت الأول من سلسلة فرعية المرجوة.story = 'The price is right said Bob. The price is right.'
story.rfind('is')
ملخص
غالبًا ما أشرح لمدير منتج واحد ، وهو شخص كبير في السن ، أن المطورين ليسوا قواميس تخزن أوصافًا لطرق الكائن. ولكن كلما زاد عدد الطرق التي يتذكرها المطور ، كلما قلت الحاجة إلى google ، وكلما كان أسرع وأكثر متعة في العمل. آمل أن تتمكن الآن من الإجابة بسهولة على الأسئلة التي نوقشت هنا.القراء الأعزاء! ماذا عن التعامل مع الأوتار في Python ، هل تنصح أولئك الذين يستعدون لمقابلة؟