مرحبًا نحن نحب مسابقة حول لغات البرمجة. لقد نشرنا بالفعل ثلاثة على مدونتنا: الأولى - في Python ، PHP ، Golang ، DevOps ، والثانية - تمامًا في Go ، والثالثة - فقط في PHP. مسابقة اليوم مخصصة حصريًا لبايثون.
ندعوك للإحماء على شرف نهاية أسبوع صيفي آخر وعشية PyCon Russia 2018 . (بالمناسبة ، من ذاهب؟ سنكون هناك).
تحت القطع - سبعة أسئلة ، نصيحة من صديق ، Chapaev ، مقتطفات من ABBA ( ماذا؟ نعم! ) وسلعة رائعة.
حدث: لقد انتهينا من قبول الإجابات. شكرا لكل من شارك! الإجابات على الأسئلة موجودة داخل النص ، والفائزين والفائزين بالجوائز هم تحت المفسد.

الجوائز
سيتم توزيع الجوائز على العشرة الأوائل. أول من أجاب بشكل صحيح على جميع أسئلة اختبار Python ، سنرسل مجموعة Avito-merch متطورة: قميص رياضي وجوارب وعظام مجوفة - يمكنك تخمين لغة الواجهة الخلفية وإطار الواجهة الأمامية الذي سيتم كتابة مشروعك الجديد فيه. سيتم منح المشارك الثاني الذي أكمل المهام مع holivones والجوارب وقميص. سيحصل الثالث على نفس المجموعة ، ولكن بدون تي شيرت / قميص من النوع الثقيل. من بين المشاركين السبعة المتبقين ، سنلعب زجاجة حرارية مع كاربين ، والتي يمكن أخذها حتى في نزهة على الأقل ، في هاكاثون.

الأسئلة
* في جميع الأحوال ، نحن نتحدث عن Python 3.
السؤال 1
ماذا ستكون النتيجة في المتغير t
:
>>> t = (1, 2, [30,40]) >>> t[2] += [50, 60]
خيارات الإجابة:
TypeError
سيطير ، t
سيكون (1, 2, [30, 40, 50, 60])
،TypeError
سيطير ، t
سيكون (1, 2, [30, 40])
،(1, 2, [30, 40, 50, 60])
،(1, 2, [30, 40])
.
إجابة صحيحةTypeError
سيطير ، سيكون (1, 2, [30, 40, 50, 60])
السؤال 2
هل لديك مثل هذا الهيكل من الوحدات:
foo_app/ snatch/ qwerty.py bar_app/ snatch/ mamamia.py
كيفية جعله بحيث يمكنك استيراد هذه الوحدات في التعليمات البرمجية بهذه الطريقة:
from snatch import qwerty, mamamia
خيارات الإجابة:
السؤال 3
يوجد نص برمجي:
class A: def get_some(self): super().get_some() class B: def get_some(self): print('Some') class C(A, B): def get_some(self): super().get_some() c = C() c.get_some()
ماذا سيكون الناتج؟
خيارات الإجابة:
AttributeError: 'C' object has no attribute 'get_some'
،AttributeError: 'super' object has no attribute 'get_some'
،Some
- الفراغ (بدون Chapaev).
السؤال 4
ما سيتم عرضه عند تشغيل هذا الرمز:
class A: def foo(self): print('foo A') class B: def foo(self): print('foo B') class C(A, B): def foo(self): super().foo() class D(B, A): def foo(self): super().foo() class E(C, D): pass e = E() e.foo()
خيارات الإجابة
foo A
،foo B
،TypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
إجابة صحيحةTypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
السؤال 5
تخيل أن لديك وحدة foo.py:
def bar(): print(', !')
وتقوم بتشغيل برنامج نصي آخر:
import importlib import foo from foo import bar input(', ') importlib.reload(foo) bar()
أثناء انتظار الإدخال ، يمكنك تغيير وحدة foo.py:
def bar(): print(', !')
بعد ذلك ، تضغط على "الإدخال" في foo.py حتى تستمر في العمل وترى ...
خيارات الإجابة:
ModuleReloadedException: method bar() was reloaded
،, !
،, !
،- الفراغ (ومرة أخرى لا يوجد Chapaev).
السؤال 6
ما سيتم عرضه عند تشغيل هذا الرمز:
class A: def __init__(self): print('__init__ A', end=' ') class B: def __init__(self): print('__init__ B', end=' ') class C(A, B): pass c = C()
خيارات الإجابة:
__init__ A __init__ B
__init__ B __init__ A
__init__ A
__init__ B
السؤال 7
ماذا سيكون في الإخراج بعد تنفيذ التعليمات البرمجية التالية؟
def not_(value): return not value result = not_(0), all(any([not_(x) for x in range(b)]) for b in range(10)) print(result)
خيارات الإجابة:
الملخص
سننشر إجابات على الأسئلة عن طريق تحديث المنشور يوم الأربعاء 25 يوليو. إذا قررت - ضع الإجابات تحت المفسد بحيث يكون المشاركون الآخرون أكثر اهتمامًا بحل الأسئلة.
و (!) لا تنس التحقق من حساب هبر بعد انتهاء الاختبار.