/“Pig Latin translator” in Python

“Pig Latin translator” in Python

“بيج لاتين – Pig Latin ”   دي لعبه أجنبيه عرفتها من موقع “Codecademy” حد يكتبلك كلمه و أنت تحولها كلها لحروف “Small” بعدين نشوف أول حرف في الكلمه ، هل هو حرف متحرك من الحروف الخمسه و لا حرف ساكن؟ ، لو حرف متحرك نضيف للكلمه حرفين “a ,y” في الآخر بس ، أما لو الحرف ساكن نشيل الحرف الساكن من أول الكلمه و بعدين نضيفه لآخر الكلمه و نزود عليه “a , y ” بردو . بس كده

يمكن تشوفها هايفه و ملهاش لازمه ، ده حقيقي على فكره ، بس أنا مؤمن بإن أحسن طريقه لتعلم البرمجه هي الممارسه فده مثال بسيط جدا هنطبق فيه كذا مفهوم في لغه البايثون علشان نكون عرفنا مبادئ اللغه الأساسيه و إن شاء الله لو عجبكم نكمل بالطريقه دي في شرح اللغه كمان كذا مقال ، يللا نبدأ

أولا لازم هنطلب من المستخدم يكتب الكلمه اللي البرنامج هيحولها من إنجلش لبيج لاتين و نحفظها في مخزن في الذاكره

original = raw_input('Enter a word:')  #user input

دلوقتي بعد ما اليوزر هيدخل الكلمه لازم نتأكد هل فعلا دخل كلمه صحيحه و لا مدخلش حاجه و لا دخل أرقام ؟
ده بيتم ازاي ؟ أولا علشان أشوفه دخل كلمه و لا لأ ببساطه نقدر نشوف عدد حروف الكلمه اللي اتحفظت في المخزن أكبر من الصفر و لا لأ ؟

طيب ما يمكن يدخل أرقام مش حروف ! علشان نتأكد هنستخدم داله في البايثون اسمها “isalpha() ”  لو الشرطيبن دول اتحققوا هندخل ع الخطوه التانيه لو متحققوش مع بعض هنطلب من اليوزر يدخل كلمه تانيه

يللا نبدأ في كتابه الكود ده :

if len(original) > 0  and original.isalpha() :

#Second Step

else :

     print 'Enter a valid word !'

نشوف بقى إيه الخطوه التانيه ، أولا كده عاوزين نحول الكلمه اللي اليوزر دخلها كلها لحروف صغيره و ده بيتم بإستخدام داله “lower()” يبقى هنحفظ الكلمه بعد ما حوّلنا كل حروفها لحروف صغيره في مخزن جديد

يبقى هنعرف متغير جديد اسمه وليكن “word” و نخلي قيمته بالكلمه بالحروف الصغيره وده بإننا نستدعي المخزن المحفوظ فيه الكلمه “orginal” و نطبق عليه الداله “lower()”

word = original.lower()

دلوقتي عاوزين نشوف هل الحرف الأول في الكلمه دي ساكن و لا متغير ؟ ، يبقى لازم ناخد أول حرف من الكلمه بعد ما خليناها حروف صغيره و نحفظه في متغير تاني لوحده ، وهنعرف متغير جديد اسمه وليكن “first” و هنساوي قيمته بأول حرف من الكلمه و علشان نجيب حرف في الكلمه بنكتب المتغير اللي الكلمه متخزنه فيه “word” و جنبه قوسين فيهم ترتيب الحرف اللي عاوزينه (لاحظ علوم الكمبيوتر كلها بتبدأ العد من 0 مش من 1)

first = word[0]

عندي إحتمالين لأول حرف إما حرف من الحروف الخمسه المتحركه أو من باقي الحروف الساكنة ، يبقى لازم هنعمل جمله “if” و نشوف المخزن اللي حفظنا فيه أول حرف “first” هل قيمته بتساوي أحد الحروف المتحركه و لا لأ ؟

دلوقتي بعد ما نحدد الحرف ساكن و لا متحرك نشوف الخطوه اللي بعدها ،  لو متحرك هنضيف للكلمه بس حروف “a ,y”

أما لو حرف ساكن هنحذف الحرف الأول و نحط باقي الكلمه بعدين نحط الحرف الأول اللي حذفناه في آخر الكلمه بعدين هنضيف الحرفين “a, y”.

If first == 'a' or first == 'e' or first == 'I' or first == 'o' or first == 'u' :

      new_word = word+'ay'

      print new_word

   else :

new_word = word[1:len(word)] + word[0] + 'ay'

       print new_word

بس كده خلصنا يبقى الكود النهائي للبرنامج هيكون بالشكل ده

original = raw_input('Enter a word:')         #user input

if len(original) > 0 and original.isalpha():

   #make sure it's a valid word

   word = original.lower()

   #change the word to owercase

   first = word[0]

   #slice the first letter

 if first == 'a' or first == 'e' or first == 'I' or first == 'o' or first == 'u' :

#vowel case

      new_word=word+pyg

      print new_word

   else :     #constant case

       new_word = word[1:len(word)] + word[0] + 'ay'

       print new_word

else:

   print 'empty'

الكود مرفوع هنا لو حد حابب يشوفه : )

http://goo.gl/L6Dmm

Student at Faculty of Engineering , Computer & Systems Department. Interested in Web Development and Mobile Applications.