Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

بايثونإدخال بيانات من المستخدم

  • مفهوم مدخلات المستخدم
  • الدالة input()
  • طريقة جعل المستخدم يدخل نص
  • طريقة جعل المستخدم يدخل عدد
  • إدخال قيمة لكل عنصر في المصفوفة

مفهوم مدخلات المستخدم

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

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

مدخلات المستخدم، هي المعلومات التي يقوم البرنامج بانتظار المستخدم ليدخلها فيه أثناء عمله.

الدالة input()

لجعل المستخدم قادر على إدخال بيانات في البرنامج أثناء عمله نستخدم دالة جاهزة إسمها input().

في كل مرة تقوم فيها باستدعاء هذه الدالة يقوم مفسّر لغة بايثون بانتظارك لإدخال ما تريد من لوحة المفاتيح ( Keyboard ).
بعد الإنتهاء من الإدخال و النقر على الزر Enter سيتم إرجاع الشيء الذي قمت بإدخاله كنص في المكان الذي تم منه إستدعاء الدالة input().

الدالة input() تقرأ مدخلات المستخدم كنص و ترجع ما يدخله كنص أيضاً حتى لو قام بإدخال عدد، لذلك في حال كان المراد جعل المستخدم يدخل عدداً فإنه يجب تحويل ما ترجعه الدالة لعدد.

طريقة جعل المستخدم يدخل نص

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

مثال

Test.py
# name هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل إسمه. الإسم الذي سيدخله سيتم تخزينه في المتغير
name = input("What's your name? ")
# name هنا قمنا بعرض جملة ترحيب مبنية على إسم المستخدم الذي قمنا بتخزينه قبل قليل في المتغير
print("Nice to meet you", name)
# name هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل إسمه. الإسم الذي سيدخله سيتم تخزينه في المتغير name = input("What's your name? ") # name هنا قمنا بعرض جملة ترحيب مبنية على إسم المستخدم الذي قمنا بتخزينه قبل قليل في المتغير print("Nice to meet you", name)

نتيجة التشغيل مع الإشارة إلى أننا قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

What's your name? mhamad
Nice to meet you mhamad

طريقة جعل المستخدم يدخل عدد

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

لاحظ أننا وضعنا الدالة input() بداخل الدالة int() حتى يتم تحويل الرقم الذي سيدخله المستخدم إلى عدد صحيح قبل تخزينه في المتغير.
لو لم نفعل ذلك لتم إعتبار الأرقام التي أدخلها المستخدم عبارة عن نصوص و بالتالي كان ذلك سيسبب خطأ منطقي إظهار ناتج الجمع.

المثال الثاني

Test.py
# a بعدها سيتم تخزينه في المتغير .int إلى النوع str هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد. العدد الذي سيدخله سيتم تحويله من النوع
a = int(input("Enter a: "))
# b بعدها سيتم تخزينه في المتغير .int إلى النوع str هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد. العدد الذي سيدخله سيتم تحويله من النوع
b = int(input("Enter b: "))
# هنا قمنا بعرض ناتج جمع العددين اللذين تم إدخالهما
print('a + b =', a + b)
# a بعدها سيتم تخزينه في المتغير .int إلى النوع str هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد. العدد الذي سيدخله سيتم تحويله من النوع a = int(input("Enter a: ")) # b بعدها سيتم تخزينه في المتغير .int إلى النوع str هنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد. العدد الذي سيدخله سيتم تحويله من النوع b = int(input("Enter b: ")) # هنا قمنا بعرض ناتج جمع العددين اللذين تم إدخالهما print('a + b =', a + b)

نتيجة التشغيل مع الإشارة إلى أننا قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter a: 5
Enter b: 7
a + b = 12

إدخال قيمة لكل عنصر في المصفوفة

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

المثال الثالث

Test.py
# n بعدها سيتم تخزين العدد في المتغير .int إلى النوع str العدد الذي سيدخله سيتم تحويله من النوع .aهنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد عناصر الكائن
n = int(input("Enter the length of the: "))
# عدد عناصره يساوي العدد الذي أدخله المستخدم، و القيمة الأولية لكل عنصر فيه هي 0 aList إسمه list هنا قمنا بإنشاء
aList = [0] * n
# واحداً i و بالطبع في بداية كل دورة في هذه الحلقة ستزيد قيمة المتغير .aList تبدأ من 0 إلى آخر عنصر في الكائن for هنا قمنا بإنشاء حلقة
for i in range(len(aList)):
# بعدها سيتم وضعها في العنصر .int إلى النوع str في كل دورة سيطلب من المستخدم إدخال قيمة لعنصر جديد. بعدها سيتم تحويل نوع القيمة التي يدخلها من النوع
aList[i] = int(input('Enter aList[' + str(i) + ']: '))
print('acontain the following values:')
# val و تخزنه في الكائن aList هنا قمنا بإنشاء حلقة تجلب في كل دورة قيمة عنصر من عناصر الكائن
for val in aList:
# تضيف مسافة فارغة بعد عرض القيمة بدلاً من النزول على سطر جديد print() مع جعل الدالة val هنا قمنا بطباعة القيمة المخزنة في المتغير
print(val, end=' ')
# n بعدها سيتم تخزين العدد في المتغير .int إلى النوع str العدد الذي سيدخله سيتم تحويله من النوع .aهنا قمنا بإظهار جملة تطلب من المستخدم أن يدخل عدد عناصر الكائن n = int(input("Enter the length of the: ")) # عدد عناصره يساوي العدد الذي أدخله المستخدم، و القيمة الأولية لكل عنصر فيه هي 0 aList إسمه list هنا قمنا بإنشاء aList = [0] * n # واحداً i و بالطبع في بداية كل دورة في هذه الحلقة ستزيد قيمة المتغير .aList تبدأ من 0 إلى آخر عنصر في الكائن for هنا قمنا بإنشاء حلقة for i in range(len(aList)): # بعدها سيتم وضعها في العنصر .int إلى النوع str في كل دورة سيطلب من المستخدم إدخال قيمة لعنصر جديد. بعدها سيتم تحويل نوع القيمة التي يدخلها من النوع aList[i] = int(input('Enter aList[' + str(i) + ']: ')) print('acontain the following values:') # val و تخزنه في الكائن aList هنا قمنا بإنشاء حلقة تجلب في كل دورة قيمة عنصر من عناصر الكائن for val in aList: # تضيف مسافة فارغة بعد عرض القيمة بدلاً من النزول على سطر جديد print() مع جعل الدالة val هنا قمنا بطباعة القيمة المخزنة في المتغير print(val, end=' ')

نتيجة التشغيل مع الإشارة إلى أننا قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter the length of the: 5
Enter aList[0]: 10
Enter aList[1]: 20
Enter aList[2]: 30
Enter aList[3]: 40
Enter aList[4]: 50
The contain the following values:
10 20 30 40 50