البرمجة

تحويل الجمل إلى أرقام: برمجة فعّالة لتعيين مواقع الكلمات

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

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

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

python
UserSentence = input('Enter your chosen sentence: ') # this is where the user inputs their sentence UserWords = UserSentence.split() # .split() takes the inputted string and breaks it down into individual words... # ... and turns it into a list word_positions = {} # يتم استخدام هذا الديكشناري لتخزين مواقع الكلمات result_numbers = [] # يتم استخدام هذه القائمة لتخزين الأرقام التي ستظهر في النهاية for word in UserWords: if word not in word_positions: word_positions[word] = len(word_positions) + 1 result_numbers.append(str(word_positions[word])) result_sentence = ', '.join(result_numbers) # إعادة بناء الجملة بفصل الأرقام بفاصلة print(result_sentence) # يمكنك هنا استخدام word_positions لتخزينها في ملف إن أردت

هذا البرنامج يقوم بتحقيق المطلوب بشكل أفضل، حيث يحسب الموقع الفعلي لكل كلمة ويقوم بإعادة بناء الجملة باستخدام الأرقام المحسوبة.

المزيد من المعلومات

تمامًا، دعنا نقوم بتوسيع فهمنا لهذا البرنامج ونقدم بعض المعلومات الإضافية.

أولًا وقبل كل شيء، يتم استخدام word_positions، وهو ديكشناري، لتخزين مواقع الكلمات في القائمة. عندما نقوم بفحص كل كلمة في UserWords، نتحقق مما إذا كانت هذه الكلمة قد تمت معالجتها من قبل. إذا لم تكن، يتم إضافتها إلى word_positions مع تحديد موقعها كقيمة، والتي تكون في هذه الحالة هي طول word_positions + 1.

ثم يتم تكوين result_numbers كقائمة تحتوي على الأرقام المقابلة لكل كلمة في UserWords باستخدام word_positions. يتم تحويل الأرقام إلى سلاسل نصية باستخدام str() لتسهيل إعادة بناء الجملة لاحقًا.

أخيرًا، يتم إعادة بناء الجملة باستخدام ', '.join(result_numbers)، حيث يتم فصل الأرقام بواسطة فاصلة ومسافة.

بهذا الشكل، يمكنك فهم البرنامج بشكل أعمق وكيف يتم حساب مواقع الكلمات وإعادة بناء الجملة باستخدام الأرقام المحسوبة. تذكير: يمكنك استخدام word_positions لتخزينها في ملف إذا كنت ترغب في الاحتفاظ بالمعلومات للاستفادة منها لاحقًا.

زر الذهاب إلى الأعلى