هل بايثون حساسة لحالة الأحرف؟

عند تعلم لغة برمجة جديدة، فإن أحد الأشياء الأساسية التي تفكر فيها هو ما إذا كانت حساسة لحالة الأحرف أم لا. بايثون ليست استثناءً، فحساسية حالة الأحرف عامل مهم. ربما تتساءل عما إذا كانت لغة بايثون حساسة لحالة الأحرف إذا كنت جديدًا في اللغة. دعنا نكتشف ذلك!

نعم، بايثون هي لغة حساسة لحالة الأحرف

أولاً، دعونا نوضح ما هي حساسية الحالة. إنه التمييز بين الحروف الصغيرة والكبيرة. يمكن أن تكون ميزة ليس فقط في لغة البرمجة ولكن في أي برنامج كمبيوتر.

أقصر إجابة لسؤال حساسية حالة الأحرف في بايثون هي نعم. إنها لغة حساسة لحالة الأحرف، مثل العديد من لغات البرمجة الشائعة الأخرى مثل Java وC++ وJavaScript. تعمل حساسية حالة الأحرف في Python على زيادة عدد المعرفات أو الرموز التي يمكنك استخدامها.

نستكشف الجوانب المختلفة لبايثون كلغة حساسة لحالة الأحرف في هذه المقالة.

الأسماء الحساسة لحالة الأحرف في بايثون

المثال الأكثر شيوعًا لحساسية حالة الأحرف في بايثون هو أسماء المتغيرات. username وUserName وuserName هي ثلاثة متغيرات مختلفة، ويؤدي استخدام هذه الأسماء بالتبادل إلى حدوث خطأ. تنطبق نفس القاعدة على أسماء الدوال.

>>> user_name = 'User1'
>>> print(User_name)

الكود أعلاه يسبب خطأ بسبب عدم التناسق بين الأحرف الكبيرة والصغيرة في أسماء المتغيرات:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'User_name' is not defined

يمكنك رؤية الاستخدام الصحيح لأسماء المتغيرات الحساسة لحالة الأحرف في المثال أدناه:

>>> user_name = 'User2'
>>> print(user_name)
User2

لتجنب مشاكل الدوال الحساسة لحالة الأحرف وأسماء المتغيرات، استخدم أسماء صغيرة مع شرطات سفلية بين الكلمات لسهولة القراءة (على سبيل المثال، user_name) كما هو مذكور في وثائق بايثون الرسمية. يمكنك ممارسة ذلك في مسار PYTHON BASICS TRACK الخاص بنا.

تعد أسماء الثوابت في بايثون استثناءً من اصطلاحات التسمية هذه. غالبًا ما تكون بأحرف كبيرة بحيث يمكنك التمييز بين الثابت والمتغير بسهولة. أما الفئات فهي قصة أخرى – وعادةً ما تكون أسماؤها مكتوبة بأحرف باسكال، مما يعني أن كل كلمة تبدأ بحرف كبير. لا ينبغي استخدام الشرطة السفلية في أسماء الفئات: على سبيل المثال، AppFactory.

تم تصميم بايثون لتكون قابلة للقراءة بشكل كبير، ومن المهم الحفاظ عليها بهذه الطريقة. تجنب الارتباك في التعليمات البرمجية الخاصة بك عن طريق استخدام اصطلاحات تسمية متسقة وعن طريق تجنب الأسماء التي يصعب تمييزها عن بعضها البعض (مثل الحرف الكبير “I” والحرف الصغير “l“). استخدم أسماء وصفية ولكن اجعلها قصيرة قدر الإمكان.

الكلمات الرئيسية الحساسة لحالة الأحرف في لغة بايثون

تعد الكلمات الرئيسية جزءًا مهمًا آخر من بناء جملة بايثون وهي حساس لحالة الأحرف. مجرد تذكير سريع: الكلمات الرئيسية في بايثون هي كلمات خاصة لها معنى معين للمترجم. استخدامها مقيد. لا يمكنك استخدامها كأسماء متغيرات أو دوال.

for i in range(1, 10):
    if i == 5:
        continue
    print(i)

كما ترون في المثال البرمجي أعلاه (الكلمات الرئيسية لـبايثون مكتوبة بالخط العريض) غالبية الكلمات الرئيسية لـبايثون تكون بأحرف صغيرة. الكلمات الرئيسية الأخرى الشائعة هي def، وimport، وis، وnot، وreturn، وwith، ولكن هناك العديد من الكلمات الرئيسية الأخرى.

هناك بعض الاستثناءات – في الواقع ثلاثة فقط : True، False، None.

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

>>> For i in range(1, 10):
  File "<stdin>", line 1
    For i in range(1, 10):
        ^
SyntaxError: invalid syntax

يمكنك التدرب على جميع كلمات بايثون الأساسية الأكثر شيوعًا على LEARNPYTHON.COM، خاصة في مسارات PYTHON BASICS وLEARN PROGRAMMING With PYTHON.

هل يمكننا أن نجعل لغة بايثون غير حساسة لحالة الأحرف؟

هناك أوقات قد يكون من الأسهل فيها أن تكون بايثون غير حساسة لحالة الأحرف. تخيل موقفًا يبحث فيه العملاء عن منتج معين في متجر عبر الإنترنت. لنفترض أنهم مهتمون بالتصاميم الفنلندية ويبحثون عن مزهرية ألفار آلتو. ماذا يكتبون في مربع البحث؟ ربما: “Alvar Aalto vase”، ولكن على الأرجح “alvar aalto vase””. وفي كلتا الحالتين، يجب ان يحصلوا على نفس نتائج البحث.

نحن بحاجة إلى النظر في حساسية الحالة في بايثون عند مقارنة السلاسل. لكن لا تقلق! بايثون هي لغة برمجة متعددة الأغراض ولها أساليب مدمجة مفيدة لتسهيل حياة المبرمجين. وهذا صحيح أيضًا عندما يتعلق الأمر بالمقارنات غير الحساسة لحالة الأحرف.

النهج رقم 1: التابع lower()

هذا هو التابع الأكثر شيوعًا لمقارنات السلاسل غير الحساسة لحالة الأحرف في بايثون. يقوم التابع lower() بتحويل كافة الأحرف الموجودة في سلسلة إلى أحرف صغيرة، مما يسهل مقارنة سلسلتين. يوضح الكود في المثال التالي كيفية عمل التابع lower().

english_eels = 'My Hovercraft Is Full of Eels'
other_english_eels = 'My HoVeRcRaFt Is FuLl Of EeLs'
 
if english_eels.lower() == other_english_eels.lower():
    print('Identical strings:')
    print('1.', english_eels.lower())
    print('2.', other_english_eels.lower())
else:
    print('Strings not identical')

و سيكون الناتج

Identical strings:
1. my hovercraft is full of eels
2. my hovercraft is full of eels

النهج رقم 2: التابع upper().

هذا التابع شائع في المقارنات غير الحساسة لحالة الأحرف في بايثون. يقوم بتغيير جميع الأحرف في السلسلة إلى أحرف كبيرة. انظر إلى الكود في المثال التالي:

polish_eels = 'Mój poduszkowiec jest pełen węgorzy'
other_polish_eels = 'MóJ pOdUsZkOwIeC jEsT pEłEn WęGoRzY'
if polish_eels.upper() == other_polish_eels.upper():
    print('Identical strings:')
    print('1.', polish_eels.upper())
    print('2.', other_polish_eels.upper())
else:
    print('Strings not identical')

و سيكون الناتج:

Identical strings:
1. MÓJ PODUSZKOWIEC JEST PEŁEN WĘGORZY
2. MÓJ PODUSZKOWIEC JEST PEŁEN WĘGORZY

النهج رقم 3: التابع casefold()

يعد استخدام التابع casefold() هو الأسلوب الأقوى والأكثر عدوانية لمقارنة السلاسل في بايثون. هو يشبه الدالة lower()، ولكنه يزيل جميع الفروق بين الحالات في السلاسل النصية. هذه طريقة أكثر فعالية لإجراء مقارنات غير حساسة لحالة الأحرف في بايثون.

german_eels = 'Mein Luftkißenfahrzeug ist voller Aale'
other_german_eels = 'MeIn LuFtKißEnFaHrZeUg IsT vOlLeR AaLe'
if german_eels.casefold () == other_german_eels.casefold ():
    print('Identical strings:')
    print('1.', german_eels.casefold())
    print('2.', other_german_eels.casefold())
else:
    print('Strings not identical')

الناتج:

Identical strings:
1. mein luftkissenfahrzeug ist voller aale
2. mein luftkissenfahrzeug ist voller aale

كما ترون في الكود السابق، فإن التابع casefold() لم يغير جميع الأحرف إلى أحرف صغيرة فحسب، بل قام أيضًا بتغيير الحرف الصغير ‘ß‘ إلى ‘ss‘.

إذا كنت تريد معرفة المزيد عن السلاسل، فاطلع على هذه الدورة التدريبية المناسبة للمبتدئين حول العمل مع السلاسل في لغة بايثون.

التنقل في حساسية حالة Python بسهولة

آمل أن الجوانب الأكثر أهمية لحساسية حالة لغة بايثون لم تعد لغزًا بالنسبة لك. أنت الآن على دراية ببعض ممارسات التسمية الجيدة الحساسة لحالة الأحرف في بايثون. أنت تعرف الآن أيضًا كيفية تجاهل الحالة في Python لإجراء مقارنات سلسلة غير حساسة لحالة الأحرف.


اكتشاف المزيد من بايثون العربي

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Scroll to Top

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading