قراءة المدخلات باستخدام readline()
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 29 من 78.
حتى الآن، تعلمت كيفية عرض المخرجات. الآن حان الوقت لجعل برامجك تفاعلية من خلال قراءة المدخلات من المستخدم. تتيح لك الدالة readline() التقاط ما يكتبه المستخدم.
name <- readline()
cat("Hello,", name, "\n")عند تشغيل هذا الكود، ينتظر R من المستخدم كتابة شيء ما والضغط على Enter. يتم تخزين كل ما يكتبونه في المتغير name. إذا كتب المستخدم "Alice"، فسيكون الناتج: Hello, Alice
شيء مهم يجب معرفته: readline() تعيد دائماً سلسلة نصية، حتى لو قام المستخدم بكتابة رقم. إذا أدخل شخص ما "25"، فسيتم تخزينها كنص "25"، وليس الرقم 25. ستتعلم كيفية التحويل بين الأنواع في الدرس القادم.
يمكنك قراءة مدخلات متعددة باستخدام readline() عدة مرات:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")كل استدعاء لـ readline() ينتظر سطر إدخال منفصل من المستخدم.
عندما تحتاج إلى دمج السلاسل النصية معاً دون أي مسافات بينها، استخدم paste0(). على عكس cat()، التي تضيف مسافة بين كل عنصر، تقوم paste0() بدمج القيم مباشرة:
city <- readline()
cat(paste0("Welcome to ", city, "!"), "\n")هنا، تقوم paste0() ببناء السلسلة النصية Welcome to Paris! دون مسافات غير مرغوب فيها قبل !، ثم تقوم cat() بطباعتها.
التحدي
سهلاقرأ سطرين من المدخلات واعرض رسالة ترحيب مخصصة.
ستتلقى مدخلين:
- الاسم الأول
- اسم المدينة
اقرأ كلا المدخلين باستخدام readline() واعرض رسالة بالتنسيق التالي:
Welcome, [name] from [city]!استخدم cat() لإنتاج المخرجات. تأكد من تضمين علامة التعجب في النهاية وحرف سطر جديد \n.
على سبيل المثال، إذا كانت المدخلات هي Emma و Paris، يجب أن تكون المخرجات:
Welcome, Emma from Paris!ورقة مرجعية
لقراءة مدخلات المستخدم، استخدم الدالة readline():
name <- readline()
cat("Hello,", name, "\n")تنتظر الدالة readline() المستخدم لكتابة شيء ما والضغط على Enter. يتم تخزين المدخلات كسلسلة نصية.
لقراءة مدخلات متعددة، استخدم readline() عدة مرات:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")ملاحظة: تعيد readline() دائماً سلسلة نصية، حتى لو قام المستخدم بكتابة رقم.
استخدم cat() لطباعة القيم مفصولة بمسافات. استخدم paste0() لربط القيم معاً بدون مسافات بينها:
name <- readline()
cat(paste0("Hello, ", name, "!"))في هذا المثال، تقوم paste0() بدمج "Hello, "، والقيمة المخزنة في name، و "!" في سلسلة نصية واحدة بدون مسافات إضافية.
جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))
# TODO: اكتب كودك أدناه لعرض رسالة الترحيب
# استخدم cat() لإخراج: Welcome, [name] from [city]!
# لا تنسَ حرف السطر الجديد \n في النهايةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ