أسئلة وأجوبة مقابلة بايثون

أسئلة وأجوبة مقابلة بايثون Flask

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

أسئلة وأجوبة مقابلة بايثون

شرح Flask وفوائدها

Flask عبارة عن إطار عمل ويب صغير لـ Python يعتمد على "Werkzeug وJinja 2 والنوايا الحسنة" المرخص من BSD. Werkzeug و jingja هما من تبعياتها.

Flask  جزء من الإطار الصغير. مما يعني أنه لن يكون له أي اعتماد على المكتبات الخارجية. إنه يجعل إطار العمل خفيفًا بينما يكون هناك القليل من التبعية للتحديث وأخطاء أمنية أقل.

1) ما هو Flask-WTF وما هي مميزاته؟

يوفر Flask-WTF تكاملًا بسيطًا مع WTForms. 

الميزات المتضمنة في Flask WTF هي:

  • التكامل مع WTFforms
  • نموذج آمن باستخدام رمز CSRF
  • حماية CSRF العالمية
  • التكامل الدولي
  • دعم Recaptcha
  • تحميل الملف الذي يعمل مع Flask Uploads

2) اشرح ما هي الطريقة الشائعة لعمل البرنامج النصي Flask؟

الطريقة الشائعة لعمل البرنامج النصي Flask هي:

  • إما أن يكون مسار الاستيراد لتطبيقك
  • أو المسار إلى ملف بايثون

3) اشرح كيف يمكنك الوصول إلى الجلسات في Flask؟

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

يمكن للمستخدم تعديل الجلسة إذا كان لديه المفتاح السري Flask.secret_key فقط.

4) هل Flask هو نموذج MVC، وإذا كانت الإجابة بنعم أعط مثالا على ذلكwing نمط MVC لتطبيقك؟

في الأساس، Flask هو إطار عمل بسيط يتصرف مثل إطار عمل MVC. لذا فإن MVC مناسب تمامًا لـ Flask، وسنضع نمط MVC في الاعتبار للمتابعةwing مثال

من Flask استيراد

app = Flask(_name_)
@app.route("/")
Def hello():
return "Hello World"
app.run(debug = True)

في هذا الكود، سيكون جزء التكوين الخاص بك من قارورة استيراد Flask
app = Flask(_name_)
عرض الجزء سيكون

@app.route("/")
Def hello():
return "Hello World"

أثناء قيامك بالنموذج أو الجزء الرئيسي سيكون

app.run(debug = True)

5) شرح اتصال قاعدة البيانات في Python Flask؟

يدعم Flask التطبيقات التي تدعم قاعدة البيانات (RDBS). يتطلب مثل هذا النظام إنشاء مخطط، الأمر الذي يتطلب نقل ملف shema.sql إلى أمر sqlite3. لذلك تحتاج إلى تثبيت أمر sqlite3 لإنشاء قاعدة البيانات أو بدء تشغيلها في Flask.

يسمح Flask بطلب قاعدة البيانات بثلاث طرق
  • قبل_الطلب (): يتم استدعاؤه قبل الطلب ولا يمرر أي وسيطات
  • after_request(): يتم استدعاؤه بعد الطلب وتمرير الرد الذي سيتم إرساله إلى العميل
  • طلب التمزق (): يتم استدعاؤه في حالة ظهور الاستثناء وعدم ضمان الاستجابة. يتم استدعاؤهم بعد إنشاء الاستجابة. لا يُسمح لهم بتعديل الطلب، ويتم تجاهل قيمهم.

6) إذا كان لديك عدة خوادم Memcache، وفشل أحدها الذي يحتوي على بيانات، فهل سيحاول الحصول عليها؟

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

7) اشرح كيف يمكنك تقليل انقطاع خادم Memcached في تطوير Python الخاص بك؟

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

هناك طريقة أخرى وهي إظهار مثيل memcached على جهاز جديد باستخدام عنوان IP الخاص بالجهاز المفقود

يعد الكود خيارًا آخر لتقليل انقطاع الخادم لأنه يمنحك الحرية في تغيير قائمة خادم Memcached بأقل قدر من العمل

يعد تحديد قيمة المهلة خيارًا آخر يستخدمه بعض عملاء Memcached في حالة انقطاع خادم Memcached. عندما يتعطل خادم Memcached الخاص بك، سيستمر العميل في محاولة إرسال طلب حتى يتم الوصول إلى حد المهلة.

8) اشرح ما هو تأثير Dogpile؟ كيف يمكنك منع هذا التأثير؟

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

9) اشرح كيف لا ينبغي استخدام memcached في مشروع بايثون الخاص بك؟

فيما يلي الطرق التي يجب ألا تستخدم بها memcached في ملفك مشروع بايثون:
  • سوء استخدام Memcached الشائع هو استخدامه كمخزن بيانات وليس كذاكرة تخزين مؤقت
  • لا تستخدم Memcached أبدًا كمصدر وحيد للمعلومات التي تحتاجها لتشغيل تطبيقك. يجب أن تكون البيانات متاحة دائمًا من خلال مصدر آخر أيضًا
  • Memcached هو مجرد مخزن مفاتيح أو قيمة ولا يمكنه إجراء استعلام على البيانات أو التكرار على المحتويات لاستخراج المعلومات.
  • لا تقدم Memcached أي شكل من أشكال الأمان سواء في التشفير أو المصادقة.

10) ما هو بيان بايثون إذا؟

بايثون إذا تم استخدام البيان لعمليات صنع القرار. يحتوي على نص من التعليمات البرمجية التي يتم تشغيلها فقط عندما يكون الشرط الوارد في عبارة if صحيحًا. إذا كان الشرط خاطئًا، فسيتم تشغيل عبارة else الاختيارية، والتي تحتوي على بعض التعليمات البرمجية للشرط else.

عندما تريد تبرير شرط واحد بينما الشرط الآخر غير صحيح، يمكنك استخدام عبارة Python if-else.

بايثون إذا بناء الجملة:
  • if expression
  • Statement
  • else
  • Statement
ل بايثون إذا…مخطط انسيابي آخر

دعونا نرى مثالاً على بيان Python if else:

def main():
x,y =2,8
if(x < y):
st= "x is less than y"
print(st)
if __name__ == "__main__":
main()

11) شرح حلقة while في بايثون مع المثال

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

بناء جملة حلقة while كما يلي:
  • while expression
  • Statement
مثال حلقة while هو كما يلي:
x=0
#define a while loop
while(x <4):
print(x)
x = x+1

12) ما هو enumerate() في بايثون؟

تعداد () في بايثون هي وظيفة مضمنة تستخدم لتعيين فهرس لكل عنصر من عناصر الكائن القابل للتكرار. فهو يضيف حلقة على الكائنات القابلة للتكرار مع تتبع العنصر الحالي ويعيد الكائن في شكل قابل للتعداد. يمكن استخدام هذا الكائن في حلقة for لتحويله إلى قائمة باستخدام طريقة list().

مثال التعداد () هو كما يلي:

لنفترض أننا نريد إجراء ترقيم لشهرنا (يناير، فبراير، مارك،.... يونيو)، لذلك نعلن عن المتغير i الذي يعد الأرقام بينما m سيطبع رقم الشهر في القائمة.

#use a for loop over a collection
Months = ["Jan","Feb","Mar","April","May","June"]
for i, m in enumerate (Months):
print(i,m)
# use the break and continue statements
#for x in range (10,20):
#if (x == 15): break
#if (x % 5 == 0) : continue
#print x

13) كيف يمكنك استخدام حلقة for لتكرار نفس العبارة مراراً وتكراراً؟

يمكنك استخدام حلقة for حتى لتكرار نفس العبارة مرارًا وتكرارًا. هنا في المثال، قمنا بطباعة كلمة "guru99" ثلاث مرات.

على سبيل المثال:

لتكرار نفس العبارة عدة مرات، قمنا بإعلان الرقم في المتغير i (i في 123). لذلك عندما تقوم بتشغيل الكود كما هو موضح أدناه، فإنه يطبع العبارة (guru99) التي تضاعف عدة مرات الرقم المعلن للمتغير الخاص بنا في (i in 123).

for i in '123':
print ("guru99",i,)

14) ما هي مطابقة الصفوف في بايثون؟

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

بناء الجملة:

Tup = ('Jan','feb','march')

لكتابة صف فارغ، عليك أن تكتب بين قوسين لا يحتويان على أي شيء-

tup1 = ();

15) شرح القاموس في لغة بايثون مع المثال

A القاموس في بايثون هي مجموعة غير مرتبة وقابلة للتغيير من قيم البيانات التي تحتوي على أزواج القيمة الرئيسية. يقوم كل زوج من المفاتيح والقيمة في القاموس بتعيين المفتاح للقيمة المرتبطة به مما يجعله أكثر تحسينًا. يتم الإعلان عن قاموس في لغة بايثون من خلال تضمين قائمة مفصولة بفواصل لأزواج القيمة الرئيسية باستخدام الأقواس المتعرجة ({}). يصنف قاموس بايثون إلى عنصرين: المفاتيح والقيم.

بناء الجملة لقاموس بايثون:

Dict = { ' Tim': 18, xyz,.. }

مثال

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print((Dict['Tiffany']))

16) كيف يمكنك نسخ القاموس بأكمله إلى قاموس جديد؟

يمكنك أيضًا نسخ القاموس بأكمله إلى قاموس جديد. على سبيل المثال، قمنا هنا بنسخ قاموسنا الأصلي إلى اسم القاموس الجديد "Boys" و"Girls".

مثال

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
studentX=Boys.copy()
studentY=Girls.copy()
print(studentX)
print(studentY)

17) كيف يمكنك تحديث قاموس بايثون؟

يمكنك تحديث قاموس عن طريق إضافة إدخال جديد أو زوج من المفتاح والقيمة إلى إدخال موجود أو عن طريق حذف إدخال موجود. هنا في المثال، سنضيف اسمًا آخر، "سارة" إلى قاموسنا الحالي.

مثال

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Dict.update({"Sarah":9})
print(Dict)

18) أعط مثالاً على طريقة عناصر القاموس ().

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Students Name: %s" % list(Dict.items()))

19) كيف يمكنك فرز العناصر في قاموس بايثون؟

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

على سبيل المثال:

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
Students = list(Dict.keys())
Students.sort()
for S in Students:
print(":".join((S,str(Dict[S]))))

20) أعط مثالاً على طريقة Dictionary len() وPython List cmp()

قاموس لين () مثال:

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}
print("Length : %d" % len (Dict))

cmp() مثال:

Boys = {'Tim': 18,'Charlie':12,'Robert':25}
Girls = {'Tiffany':22}
print cmp(Girls, Boys)

21) ما هي جميع طرق القاموس:

فيما يلي قائمة بأساليب القاموس:
  • نسخة ()
  • تحديث ()
  • العناصر()
  • فرز()
  • لين ()
  • cmp()
  • شارع ()

22) شرح العمليات الحسابية مع المثال

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

مثال: بالنسبة للعوامل الحسابية

سنأخذ مثالاً بسيطًا للجمع حيث سنجمع رقمين 4+5=9

x= 4 
y= 5
print(x + y)

23) أعط أمثلة على العوامل المنطقية

مثال على العوامل المنطقية:

a = True
b = False
print(('a and b is',a and b))
print(('a or b is',a or b))
print(('not a is',not a))

24) شرح مشغلي العضوية مع المثال

تقوم عوامل التشغيل هذه باختبار العضوية في تسلسل مثل القوائم أو السلاسل أو الصفوف. يتم استخدام عاملي عضوية في Python. (في، وليس في). يعطي النتيجة بناءً على المتغير الموجود في تسلسل أو سلسلة محددة.

على سبيل المثال:

 نحن نتحقق مما إذا كانت قيمة x=4 وقيمة y=8 متاحة في القائمة أم لا باستخدام عوامل التشغيل in وليس في عوامل التشغيل.

x = 4
y = 8
list = [1, 2, 3, 4, 5 ];
if ( x in list ):
print("Line 1 - x is available in the given list")
else:
print("Line 1 - x is not available in the given list")
if ( y not in list ):
print("Line 2 - y is not available in the given list")
else:
print("Line 2 - y is available in the given list")

25) اكتب التعليمات البرمجية لإثبات أسبقية عامل التشغيل في بايثون:

v = 4
w = 5
x = 8
y = 2
z = 0
z = (v+w) * x / y;
print("Value of (v+w) * x/ y is ", z)

26) شرح المصفوفات في بايثون مع المثال

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

بناء الجملة لإنشاء صفيف في بايثون

يمكنك الإعلان عن مصفوفة في Python أثناء تهيئتها باستخدام following بناء الجملة.

arrayName = array.array(type code for data type, [array,items])

تحديد: حدد اسمًا كما تفعل عادةً للمتغيرات

  • وحدة: لدى بايثون وحدة نمطية خاصة لإنشاء المصفوفة في بايثون، تسمى "المصفوفة" - يجب عليك استيرادها قبل استخدامها
  • خدمة التوصيل: وحدة المصفوفة لديها طريقة لتهيئة المصفوفة. يستغرق وسيطتين، اكتب التعليمات البرمجية، والعناصر.
  • كود نوع: تحديد نوع البيانات باستخدام رموز النوع المتاحة (انظر القائمة أدناه)
  • عناصر: تحديد عناصر المصفوفة بين قوسين مربعين، على سبيل المثال [130,450,103]

مثال

import array as myarray
abc = myarray.array('d', [2.5, 4.9, 6.7])

27) كيف يمكنك الوصول إلى عناصر المصفوفة؟

يمكنك الوصول إلى أي عنصر مصفوفة باستخدام الفهرس الخاص به.

بناء الجملة هو

arrayName[indexNum]

مثال

import array
balance = array.array('i', [300,200,100])
print(balance[1])

28) كيف يمكنك إدراج العناصر في المصفوفة؟

تمكنك عملية إدراج مصفوفة بايثون من إدراج عنصر واحد أو أكثر في مصفوفة في البداية أو النهاية أو أي فهرس محدد للمصفوفة. تتوقع هذه الطريقة فهرس وقيمة وسيطتين.

بناء الجملة هو

arrayName.insert(index, value)

مثال

دعونا نضيف قيمة جديدة مباشرة بعد العنصر الثاني من المصفوفة. حاليًا، تحتوي مصفوفة التوازن لدينا على ثلاثة عناصر: 300 و200 و100. خذ بعين الاعتبار عنصر المصفوفة الثاني بقيمة 200 والفهرس 1.

لإدراج القيمة الجديدة مباشرة بعد الفهرس 1، تحتاج إلى الرجوع إلى الفهرس 2 في طريقة الإدراج الخاصة بك، 

كما هو موضح في مثال مصفوفة بايثون أدناه:

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)

29) كيف يمكنك حذف العناصر في المصفوفة؟

باستخدام هذه العملية، يمكنك حذف عنصر واحد من مصفوفة حسب القيمة. تقبل هذه الطريقة وسيطة واحدة فقط وهي القيمة. بعد تشغيل هذه الطريقة، يتم إعادة ترتيب عناصر المصفوفة، ويتم إعادة تعيين المؤشرات.

بناء الجملة هو

arrayName.remove(value)

مثال

لنقم بإزالة القيمة "3" من المصفوفة

import array as myarray
first = myarray.array('b', [2, 3, 4])
first.remove(3)
print(first)

30) كيف يمكنك البحث والحصول على فهرس القيمة في المصفوفة؟

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

بناء الجملة هو

arrayName.index(value)

مثال

دعونا نجد قيمة "3" في المصفوفة. تقوم هذه الطريقة بإرجاع فهرس القيمة التي تم البحث عنها.

import array as myarray
number = myarray.array('b', [2, 3, 4, 5, 6])
print(number.index(3))

31) كيف يمكنك عكس المصفوفة في بايثون؟

يمكنك استخدام عكس () لعكس المصفوفة في بايثون.

على سبيل المثال:

import array as myarray
number = myarray.array('b', [1,2, 3])
number.reverse()
print(number)

32) أعط مثالاً لتحويل المصفوفة إلى Unicode

المثال لتحويل المصفوفة إلى Unicode هو:

from array import array
p = array('u',[u'\u0050',u'\u0059',u'\u0054',u'\u0048',u'\u004F',u'\u004E'])
print(p)
q = p.tounicode()
print(q)

33) أعط مثالا لفئة في بايثون

مثال للفئة في بايثون

# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
def method2(self,someString):
print("Software Testing:" + someString)
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()

33) شرح الميراث بالقدوة

الميراث هو الميزة المستخدمة في البرمجة الشيئية; يشير إلى تحديد فئة جديدة مع تعديل أقل أو بدون تعديل على فئة موجودة. تسمى الفئة الجديدة بالفئة المشتقة، ومن تلك التي ترثها تسمى الفئة الأساسية. بايثون تدعم الميراث. كما أنه يدعم الميراث المتعددة. يمكن للفئة أن ترث السمات وأساليب السلوك من فئة أخرى تسمى فئة فرعية أو فئة الوريث.

مثال على الميراث:

# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print ("childClass Method1")
def method2(self):
print("childClass method2")
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()

34) أعط مثالاً لمنشئي بايثون

مثال على منشئي بايثون

class User:
name = ""
def __init__(self, name):
self.name = name
def sayHello(self):
print("Welcome to Guru99, " + self.name)
User1 = User("Alex")
User1.sayHello()

35) كيف يمكنك الوصول إلى القيم في السلسلة؟

لا تدعم لغة بايثون نوع الحرف، حيث يتم التعامل معها على أنها سلاسل بطول واحد، وتعتبر أيضًا سلسلة فرعية.

يمكنك استخدام الأقواس المربعة للتقطيع مع الفهرس أو الفهارس للحصول على سلسلة فرعية.

var1 = "Guru99!"
var2 = "Software Testing"
print ("var1[0]:",var1[0])
print ("var2[1:5]:",var2[1:5])

36) شرح جميع مشغلي السلسلة مع المثال

مشغلي السلسلة مع المثال:
  • المُشغل
  • الوصف

مثال

[]

شريحة - تعطي الحرف من الفهرس المحدد

a[1] سيعطي "u" من كلمة Guru على هذا النحو (0=G، 1=u، 2=r و3=u)
[ : ]

شريحة النطاق-تعطي الأحرف من النطاق المحدد

x [1:3] ستعطي كلمة "ur" من كلمة Guru. تذكر أنها لن تأخذ في الاعتبار 0، وهو G، بل ستأخذ في الاعتبار الكلمة بعد ذلك وهي ur.

  • العضوية تُرجع صحيحًا في حالة وجود حرف في السلسلة المحددة
  • u موجود في كلمة Guru، وبالتالي سيعطي 1 (صحيح)
  • ليس في تُرجع العضوية صوابًا في حالة وجود حرف غير موجود في السلسلة المحددة
  • أنا غير موجود في كلمة Guru وبالتالي سيعطي 1
  • تمنع السلسلة الأولية المعنى الفعلي لأحرف الهروب.
  • طباعة مطبوعات r'\n' \n وطباعة مطبوعات R'/n' \n

% - يستخدم لتنسيق السلسلة

%r – يقوم بإدراج تمثيل السلسلة الأساسية للكائن (على سبيل المثال، repr(o)) %s- يقوم بإدراج تمثيل سلسلة العرض التقديمي للكائن (على سبيل المثال، str(o)) %d- سيقوم بتنسيق رقم للعرض

سيكون إخراج هذا الرمز هو "المعلم 99".

+

فإنه يسلسل 2 سلاسل

فهو يسلسل السلاسل ويعطي النتيجة

*

كرر

يقوم بطباعة الحرف مرتين.

37) أعط مثالاً على وظيفة النوم () في بايثون

مثال على وظيفة النوم () في بايثون

import time
print("Welcome to guru99 Python Tutorials")
time.sleep(5)
print("This message will be printed after a wait of 5 seconds")

38) ما هي طريقة المؤقت في بايثون؟

Timer هي طريقة متاحة مع Threading، وهي تساعد في الحصول على نفس وظيفة النوم الزمني في Python.

from threading import Timer
print('Code Execution Started')
def display():
print('Welcome to Guru99 Tutorials')
t = Timer(5, display)
t.start()

39) أعط مثالاً لفئة التقويم

مثال على فئة التقويم

import calendar

# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)

# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
print(i)

# The calendar can give info based on local such a names of days and months (full and abbreviated forms)
for name in calendar.month_name:
print(name)
for day in calendar.day_name:
print(day)

# calculate days based on a rule: For instance an audit day on the second Monday of every month
# Figure out what days that would be for each month, we can use the script as shown here
for month in range(1, 13):

# It retrieves a list of weeks that represent the month
mycal = calendar.monthcalendar(2025, month)

# The first MONDAY has to be within the first two weeks
week1 = mycal[0]
week2 = mycal[1]

if week1[calendar.MONDAY] != 0:
auditday = week1[calendar.MONDAY]

else:
# if the first MONDAY isn't in the first week, it must be in the second week
auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))



40) شرح ملف Python ZIP مع المثال

تسمح لك Python بإنشاء أرشيفات مضغوطة/قطران بسرعة.

فولوwing سيقوم الأمر بضغط الدليل بأكمله

shutil.make_archive(output_filename, 'zip', dir_name)

فولوwing يمنحك الأمر التحكم في الملفات التي تريد أرشفتها

ZipFile.write(filename)

مثال على ملف بايثون ZIP

import os
import shutil
from zipfile import ZipFile
from os import path
from shutil import make_archive

# Check if file exists
if path.exists("guru99.txt"):

# get the path to the file in the current directory
src = path.realpath("guru99.txt");

# rename the original file
os.rename("career.guru99.txt","guru99.txt")

# now put things into a ZIP archive
root_dir,tail = path.split(src)
shutil.make_archive("guru99 archive","zip",root_dir)

# more fine-grained control over ZIP files
with ZipFile("testguru99.zip", "w") as newzip:
newzip.write("guru99.txt")
newzip.write("guru99.txt.bak")

41) ما هي الأمثلة الشائعة للاستثناءات في بايثون؟

الأمثلة الشائعة للاستثناءات في بايثون هي:
  • القسمة على صفر
  • الوصول إلى ملف غير موجود.
  • إضافة نوعين غير متوافقين
  • محاولة الوصول إلى فهرس غير موجود للتسلسل
  • إزالة الجدول من خادم قاعدة البيانات المنفصلة.
  • سحب مبلغ أكبر من المبلغ المتاح من أجهزة الصراف الآلي

42) شرح أخطاء بايثون الهامة

أخطاء بايثون المهمة هي 

1) ArithmeticError، 2) ImportError، و3) IndexError.
  • خطأ حسابي: يعمل ArithmeticError كفئة أساسية لجميع الاستثناءات الحسابية. ويرفع للأخطاء في العمليات الحسابية.
  • خطأ في الاستيراد: يظهر خطأ الاستيراد عندما تحاول استيراد وحدة نمطية غير موجودة. يحدث هذا النوع من الاستثناء إذا ارتكبت خطأً في الكتابة في اسم الوحدة أو الوحدة غير الموجودة في المسار القياسي.
  • خطأ في الفهرس: يظهر الخطأ IndexError عند محاولة إحالة تسلسل خارج النطاق.

43) شرح JSON dumps() في بايثون مع المثال

json.dumps() في Python هي طريقة تقوم بتحويل كائنات قاموس Python إلى تنسيق بيانات سلسلة JSON. يكون ذلك مفيدًا عندما يُطلب من الكائنات أن تكون بتنسيق سلسلة لعمليات مثل التحليل والطباعة وما إلى ذلك.

على سبيل المثال:

import json
x = {
    "name": "Ken",
    "age": 45,
    "married": True,
    "children": ("Alice","Bob"),
    "pets": ['Dog'],"cars": [
            {"model": "Audi A1", "mpg": 15.1},
            {"model": "Zeep Compass", "mpg": 18.1}]}

# sorting result in asscending order by keys:
sorted_string = json.dumps(x, indent=4, sort_keys=True)
print(sorted_string)

44) شرح مفصل لـ JSON to Python (فك التشفير) مع المثال

يتم فك تشفير سلسلة JSON بمساعدة الطريقة المدمجة json.loads() & json.load() مكتبة JSON في بايثون.

يعرض جدول الترجمة JSON لكائنات Python والتي تساعد في تنفيذ فك التشفير في سلسلة Python لـ JSON.

مثال JSON الأساسي إلى Python لفك التشفير بمساعدة وظيفة json.loads:

import json # json library imported

# json data string
person_data = '{ "person": { "name": "Kenn", "sex": "male", "age": 28}}'

# Decoding or converting JSON format in dictionary using loads()
dict_obj = json.loads(person_data)
print(dict_obj)

# check type of dict_obj
print("Type of dict_obj", type(dict_obj))

# get human object details
print("Person......", dict_obj.get('person'))

45) كتابة التعليمات البرمجية لأسلوب التشفير ().

رمز طريقة التشفير ():

# import JSONEncoder class from json
from json.encoder import JSONEncoder
colour_dict = { "colour": ["red", "yellow", "green" ]}

# directly called encode method of JSON
JSONEncoder().encode(colour_dict)

46) اكتب كود بايثون للمصفوفة في numpy لإنشاء مصفوفة بايثون

رمز المصفوفة في numpy لإنشاء Python Matrix

import numpy as np
M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

47) اكتب كود Phyhon لطرح المصفوفات

كود Phyhon لطرح المصفوفة

import numpy as np
M1 = np.array([[3, 6, 9], [5, -10, 15], [-7, 14, 21]])
M2 = np.array([[9, -18, 27], [11, 22, 33], [13, -26, 39]])
M3 = M1 - M2
print(M3)

48) كتابة التعليمات البرمجية لضرب المصفوفة

رمز ضرب المصفوفات

استيراد numpy كـ np

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
M3 = M1.dot(M2)
print(M3)

49) شرح تشريح المصفوفة مع المثال

سيعيد لك التقطيع العناصر من المصفوفة بناءً على فهرس البداية/النهاية المحدد.

بناء الجملة للتقطيع هو:

[start:end]

إذا لم يتم إعطاء فهرس البداية، فسيتم اعتباره 0. على سبيل المثال [:5]، يعني [0:5].

إذا لم يتم تمرير النهاية، فسوف يستغرق الأمر طول المصفوفة.

إذا كانت البداية/النهاية لها قيم سالبة، فسيتم إجراء التقطيع من نهاية المصفوفة.

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

import numpy as np
arr = np.array([2,4,6,8,10,12,14,16])
print(arr[3:6]) # will print the elements from 3 to 5
print(arr[:5]) # will print the elements from 0 to 4
print(arr[2:]) # will print the elements from 2 to length of the array.
print(arr[-5:-1]) # will print from the end i.e. -5 to -2
print(arr[:-1]) # will print from end i.e. 0 to -2

87) اكتب كود بايثون للعثور على المتوسط ​​عبر الحلقة

إليك رمز للعثور على المتوسط ​​عبر الحلقة:

def cal_average(num):
sum_num = 0
for t in num:
sum_num = sum_num + t
avg = sum_num / len(num)
return avg
print("The average is", cal_average([18,25,3,41,5]))

50) اكتب رمزًا لعدد القائمة

إليك رمز لعدد القائمة:

list1 = ['red', 'green', 'blue', 'orange', 'green', 'gray', 'green']
color_count = list1.count('green')
print('The count of color: green is ', color_count)

51) كيف يمكنك حساب العناصر المكررة في قائمة معينة؟

حساب العناصر المكررة في قائمة معينة

list1 = [2,3,4,3,10,3,5,6,3]
elm_count = list1.count(3)
print('The count of element: 3 is ', elm_count)

52) اكتب رمزًا للحصول على فهرس عنصر في القائمة باستخدام حلقة for

رمز للحصول على فهرس عنصر في القائمة باستخدام الحلقة:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
all_indexes = []
for i in range(0, len(my_list)) :
if my_list[i] == 'Guru' :
all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

53) أعط مثالاً لنوع بايثون()

str_list = "Welcome to Guru99"
age = 50
pi = 3.14
c_num = 3j+10
my_list = ["A", "B", "C", "D"]
my_tuple = ("A", "B", "C", "D")
my_dict = {"A":"a", "B":"b", "C":"c", "D":"d"}
my_set = {'A', 'B', 'C', 'D'}
print("The type is : ",type(str_list))
print("The type is : ",type(age))
print("The type is : ",type(pi))
print("The type is : ",type(c_num))
print("The type is : ",type(my_list))
print("The type is : ",type(my_tuple))
print("The type is : ",type(my_dict))
print("The type is : ",type(my_set))

54) كيف يمكنك الطباعة بدون سطر جديد في بايثون؟

من Python 3+، تم تقديم معلمة إضافية للطباعة () تسمى end=. تهتم هذه المعلمة بإزالة السطر الجديد الذي تتم إضافته افتراضيًا في print().

في طباعة Python 3 بدون مثال السطر الجديد أدناه، نريد طباعة السلاسل على نفس السطر في Python. لتفعيل ذلك، ما عليك سوى إضافة end=”” داخل print() كما هو موضح في المثال أدناه:
print("Hello World ", end="")
print("Welcome to Guru99 Tutorials")

55) كيف يمكن طباعة نمط النجمة (*) بدون سطر جديد ومسافة؟

كود لطباعة نمط النجمة (*) بدون سطر جديد ومسافة:
for i in range(0, 20):
print('*', end="")

الخلاصه:-

تم تقديم مقال يتناول أسئلة وأجوبة في مقابلة حول Flask وPython، حيث تم شرح فوائد Flask وبعض المكتبات المرتبطة بها مثل Flask-WTF. كما تم مناقشة كيفية الوصول إلى الجلسات في Flask وشرح استخدام Memcached في تطبيقات Python. بالإضافة إلى ذلك، تم تقديم أمثلة على بيانات Python If-Else وشرح حلقة While في Python.

إرسال تعليق

أحدث أقدم

نموذج الاتصال