كيف تقرأ من stdin في بايثون

How Read From Stdin Python



يعتبر أخذ المدخلات من المستخدم جزءًا مهمًا من أي لغة برمجة. يعتمد إخراج العديد من البرامج على الإدخال القياسي. تختلف طريقة أخذ المدخلات من المستخدم باختلاف لغات البرمجة. توجد طرق عديدة في بايثون للقراءة من الإدخال القياسي. ال وظيفة الإدخال () هي الطريقة الأكثر شيوعًا للقراءة من الإدخال القياسي ، وهي وظيفة مضمنة. ال sys.stdin هي طريقة أخرى للقراءة من الإدخال القياسي للمكالمات وظيفة الإدخال () داخليا. لغة Python لديها وحدة أخرى باسم fileinput لقراءة المدخلات القياسية. ال وظيفة الإدخال () من هذه الوحدة يمكن استخدامها لقراءة المدخلات القياسية أو قراءة المحتوى من ملف واحد أو أكثر. تم شرح طرق مختلفة للقراءة من المدخلات القياسية في بايثون في هذا البرنامج التعليمي.

Exampe-1: قراءة البيانات من stdin باستخدام وظيفة الإدخال ()

وظيفة الإدخال () هي الوظيفة الأكثر استخدامًا لأخذ المدخلات من المستخدم. قم بإنشاء ملف python بالبرنامج النصي التالي لأخذ مدخلات من المستخدم حتى يتم الضغط على المفتاح 'n'. هنا ، يتم إنشاء حلقة لا نهائية باستخدام حلقة while. يتم استخدام وظيفة الإدخال الأول () لأخذ البيانات من المستخدم ، ويتم استخدام وظيفة الطباعة () لطباعة قيمة الإدخال. بعد ذلك ، يتم استخدام وظيفة الإدخال () للبرنامج النصي لمطالبة المستخدم بمتابعة المهمة مرة أخرى أو الخروج من البرنامج النصي. إذا ضغط المستخدم على 'n' أو 'N' ، فسيتم إيقاف تكرار الحلقة بواسطة تعليمة break ؛ وإلا ، فإن الحلقة ستتكرر مرة أخرى وتأخذ مدخلات أخرى من المستخدم. تُستخدم الدالة upper () في البرنامج النصي لاستغلال القيمة التي قدمها المستخدم بأحرف كبيرة.







# تحديد حلقة لا نهائية

في حين حقيقي:

# خذ المدخلات من المستخدم

المدخلات= إدخال(اكتب أي نص:ن')

# طباعة قيمة الإدخال

مطبعة('قيمة الإدخال٪ s'٪(المدخلات))

# اسأل عن التكرار التالي

المدخلات التالية= إدخال('هل تريد الاستمرار؟ (نعم / لا) ')

# إنهاء من الحلقة إذا تم الضغط على 'n'

لوالمدخلات التالية.العلوي() == 'ن':

استراحة

# طباعة رسالة الإنهاء

مطبعة('تم إنهاء البرنامج.')

انتاج:

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





مثال 2: قراءة البيانات من stdin باستخدام sys.stdin

ال sys.stdin هو خيار آخر لبايثون لأخذ المدخلات القياسية من المستخدمين من المحطة. تستدعي دالة input () داخليًا وتضيف ' ن بعد أخذ المدخلات. قم بإنشاء ملف python بالبرنامج النصي التالي للتحقق من استخدام ملحق sys.stdin لأخذ المدخلات القياسية. هنا ، يتم استخدام حلقة 'for-in' لأخذ المدخلات من المستخدم مرات غير محدودة حتى يريد المستخدم إنهاء البرنامج النصي. بعد طباعة قيمة الإدخال ، ملف وظيفة الإدخال () يستخدم لمطالبة المستخدم بإيقاف البرنامج النصي أم لا. سيتم إنهاء النص إذا ضغط المستخدم على ' و ' أو ' و '. ال الدالة العليا () يُستخدم هنا أيضًا لرسملة قيمة الإدخال.





# استيراد وحدة النظام

يستورد sys


مطبعة('اكتب أي نص:')


# خذ المدخلات باستخدام stdin

لالمدخلاتفي sys.ستدين:

# طباعة قيمة الإدخال

مطبعة('قيمة الإدخال هي:٪ s'٪ inputVal)


# اسأل عن التكرار التالي

المدخلات التالية= إدخال('هل تريد إنهاء؟ (نعم / لا) ')

# الإنهاء من الحلقة إذا تم الضغط على 'y / Y'

لوالمدخلات التالية.قطاع().العلوي() == 'و':

استراحة

آخر:

مطبعة('اكتب أي نص:')

انتاج:

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



مثال 3: قراءة البيانات من stdin باستخدام fileinput

يعد fileinput وحدة نمطية أخرى في Python لأخذ الإدخال القياسي. يمكن أخذ أسطر النص من المحطة أو من ملف باستخدام fileinput.input () . إذا لم يتم توفير قيمة وسيطة في هذه الوظيفة ، فستأخذ مدخلات من المحطة الطرفية وإذا تم تقديم اسم ملف موجود كقيمة وسيطة ، فسيأخذ الإدخال من الملف. قم بإنشاء ملف بيثون باستخدام البرنامج النصي التالي لأخذ الإدخال القياسي من الجهاز. هنا ، يتم استخدام حلقة 'for-in' كمثال سابق لأخذ المدخلات لمرات غير محدودة حتى يريد المستخدم إنهاء البرنامج النصي. بعد ذلك ، يتم استخدام وظيفة الإدخال () لمطالبة المستخدم بإيقاف البرنامج النصي أم لا. سيتم إنهاء البرنامج النصي إذا كتب المستخدم 'إنهاء' أو 'إنهاء' أو 'إنهاء' . ال الدالة العليا () يُستخدم هنا أيضًا لرسملة قيمة الإدخال. ال وظيفة قطاع () تُستخدم لإزالة المسافات الزائدة من جانبي قيمة الإدخال.

# استيراد وحدة إدخال ملف

يستورد fileinput


مطبعة('أدخل النص:')

''

خذ الإدخال باستخدام دالة fileinput.input () و

اضغط على ctrl + D لإنهاء أخذ قيمة الإدخال

''


لالمدخلاتفي fileinput.إدخال():

# إنهاء من الحلقة إذا تمت كتابة 'إنهاء'

لوالمدخلاتقطاع().العلوي() == 'استقال':

استراحة


# طباعة قيمة الإدخال

مطبعة('قيمة الإدخال هي:'والمدخلات)

مطبعة('أدخل النص:')

انتاج:

سيظهر المخرج المماثل التالي بعد تنفيذ البرنامج النصي أعلاه. هنا ، أعطت 'Learn python from LinuxHint.com' قيمة الإدخال الأولى وتم إنهاؤها من البرنامج النصي لكتابة الكلمة ، 'quit'. عليك أن تتذكر شيئًا واحدًا أثناء أخذ المدخلات من الجهاز باستخدام fileinput وحدة. بمعنى ، يجب عليك الضغط على ctrl + d بعد أخذ الإدخال.

يجب عليك تقديم اسم الملف كقيمة وسيطة لملف fileinput.input () تعمل إذا كنت تريد أخذ البيانات من الملف بدلاً من الجهاز.

استنتاج:

تم عرض ثلاث طرق مختلفة لأخذ المدخلات من الجهاز في هذا البرنامج التعليمي باستخدام ثلاثة أمثلة بسيطة. لا توجد وحدة مطلوبة لاستخدام ملف وظيفة الإدخال () لأخذ المدخلات. مطلوب وحدة sys للاستيراد للاستخدام sys.stdin ، و ال وحدة fileinput مطلوب للاستيراد لاستخدام fileinput.input () في البرنامج النصي لأخذ المدخلات القياسية. آمل أن يأخذ مستخدمو Python الإدخال القياسي بناءً على متطلباتهم بعد قراءة هذا البرنامج التعليمي.