التعامل مع الإدخال متعدد الأسطر في بايثون
بينما قدمت بايثون 3 وظيفة الإدخال كبديل لـ Raw_input، فإن الأول يفتقر إلى القدرة على قبول الأسطر المتعددة مدخل. يمكن التغلب على هذا القيد من خلال طرق مختلفة.
استخدام حلقة
أحد الحلول هو استخدام حلقة تستمر حتى حرف نهاية الملف (EOF) تمت مواجهته. تتيح هذه التقنية للبرنامج قراءة الإدخال سطرًا تلو الآخر وتخزينه في قائمة أو متغير.# Python 3 طباعة ("أدخل / الصق المحتوى الخاص بك. Ctrl-D أو Ctrl-Z (في Windows) لحفظه.") المحتويات = [] بينما صحيح: يحاول: السطر = الإدخال () باستثناء EOFEخطأ: استراحة محتويات.إلحاق (سطر) #بايثون 2 طباعة "أدخل/الصق المحتوى الخاص بك. Ctrl-D أو Ctrl-Z (في Windows) لحفظه." المحتويات = [] بينما صحيح: يحاول: السطر = Raw_input("") باستثناء EOFEخطأ: استراحة content.append(line)# Python 3 print("Enter/Paste your content. Ctrl-D or Ctrl-Z (Windows) to save it.") contents = [] while True: try: line = input() except EOFError: break contents.append(line) # Python 2 print "Enter/Paste your content. Ctrl-D or Ctrl-Z (Windows) to save it." contents = [] while True: try: line = raw_input("") except EOFError: break contents.append(line)
استخدام سلاسل حرفية متعددة الأسطر
هناك طريقة أخرى تتمثل في استخدام سلاسل حرفية متعددة الأسطر محاطة بعلامات اقتباس ثلاثية. يمكن تعيين هذه القيم الحرفية إلى متغير ومعاملتها كمدخلات متعددة الأسطر.multi_line_input = ''' السطر 1 السطر 2 السطر 3 '''# Python 3 print("Enter/Paste your content. Ctrl-D or Ctrl-Z (Windows) to save it.") contents = [] while True: try: line = input() except EOFError: break contents.append(line) # Python 2 print "Enter/Paste your content. Ctrl-D or Ctrl-Z (Windows) to save it." contents = [] while True: try: line = raw_input("") except EOFError: break contents.append(line)
وحدات الطرف الثالث
بدلاً من ذلك، يمكن استخدام وحدات الطرف الثالث مثل التفاف النص لتسهيل معالجة المدخلات متعددة الأسطر.استيراد التفاف النص multi_line_input = textwrap.dedent(''' السطر 1 السطر 2 السطر 3 ''')تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3