برمجة Python لفحص صحة أرقام ثنائية: التحقق من الصحة وعد الأصفار والواحدات
في هذا السياق، يسعى البرنامج الذي تقوم بكتابته إلى تحقيق مهمتين رئيسيتين: قراءة سلسلة نصية تمثل رقمًا ثنائيًا وفحصها للتأكد من أنها تتبع القواعد المحددة، ثم حساب عدد الأصفار والواحدات في الرقم الثنائي وفقًا للمتطلبات المحددة. سنقوم بتوجيهك خطوة بخطوة عبر كتابة برنامج Python يؤدي هذه المهمتين.
أولاً وقبل كل شيء، يجب عليك استخدام دالة للإدخال من المستخدم للحصول على السلسلة النصية التي تمثل الرقم الثنائي. فيما يلي كود يمكنك استخدامه لتحقيق ذلك:
pythonbinary_input = input("Enter a binary number: ")
ثم، يجب عليك التحقق من أن السلسلة النصية تحتوي على أحرف صالحة للرقم الثنائي وأنها لا تحتوي على أحرف أخرى. يمكنك استخدام هذا الكود لتحقيق ذلك:
pythonif not all(bit in '01' for bit in binary_input):
print("Error: Invalid binary number. Please enter a valid binary string.")
# يمكنك إضافة أي إجراء إضافي هنا في حالة الخطأ
exit()
بعد التحقق من صحة الإدخال، يمكنك حساب عدد الأصفار والواحدات في الرقم الثنائي باستخدام الكود التالي:
pythoncount_ones = binary_input.count('1')
count_zeros = binary_input.count('0')
ثم يمكنك استخدام القيم المحسوبة لتنفيذ الشروط المطلوبة وطباعة النتيجة المناسبة:
pythonif count_ones == 2:
print("Accepted")
else:
print("Rejected")
هذا البرنامج يقوم بقراءة الرقم الثنائي ويتحقق من صحته، ثم يحسب عدد الواحدات فيه ويقارنه بالشرط المطلوب للإجابة النهائية. يمكنك تخصيص البرنامج حسب احتياجاتك وإضافة مزيد من التفاصيل إذا لزم الأمر.
المزيد من المعلومات
بالطبع، سنواصل توسيع المعلومات في البرنامج لتحقيق فحص أكثر دقة وتوفير تفاصيل إضافية. يمكننا إضافة المزيد من التحققات لضمان تطابق السلسلة النصية المدخلة تمامًا مع صيغة الرقم الثنائي، وذلك باستخدام التعبيرات النمطية (Regex) في Python.
قم بإضافة الكود التالي لتحقق من أن السلسلة النصية تحتوي فقط على 0 و 1:
pythonimport re
binary_pattern = re.compile('[01]+')
if not binary_pattern.fullmatch(binary_input):
print("Error: Invalid binary number. Please enter a valid binary string.")
exit()
في هذا الكود، تم إنشاء نمط regex [01]+
الذي يتحقق من أن السلسلة النصية تحتوي على أحرف 0 و 1 فقط، وعليه يمكنك استخدام fullmatch
لضمان تطابق تام للسلسلة بالكامل.
بالإضافة إلى ذلك، يمكننا تحسين تنظيم الشيفرة بإنشاء دالة تقوم بتنفيذ جميع الخطوات المطلوبة، وهذا يجعل الشيفرة أكثر قابلية للصيانة وفهمًا. قد يبدو الكود كما يلي:
pythonimport re
def validate_binary_number(binary_input):
binary_pattern = re.compile('[01]+')
if not binary_pattern.fullmatch(binary_input):
print("Error: Invalid binary number. Please enter a valid binary string.")
exit()
def main():
binary_input = input("Enter a binary number: ")
validate_binary_number(binary_input)
count_ones = binary_input.count('1')
if count_ones == 2:
print("Accepted")
else:
print("Rejected")
if __name__ == "__main__":
main()
تمثل هذه الشيفرة تنظيمًا أفضل وتعزيزًا لقابلية القراءة والصيانة. كما يمكنك دائمًا توسيعها أو تعديلها وفقًا لاحتياجاتك الخاصة.