Salut Nous aimons le quiz sur les langages de programmation. Nous en avons déjà publié trois sur notre blog: le premier - en Python, PHP, Golang, DevOps, le second - complètement en Go, le troisième - uniquement en PHP. Le quiz d'aujourd'hui est exclusivement dédié à Python.
Nous vous invitons à vous réchauffer en l'honneur de la fin d'une autre semaine d'été et à la veille de PyCon Russie 2018 . (Au fait, qui va? Nous y serons).
Sous la coupe - sept questions, les conseils d'un ami, Chapaev, des extraits d'ABBA ( quoi? Oui! ) Et un merch cool.
UPD: Nous avons fini d'accepter les réponses. Merci à tous ceux qui ont participé! Les réponses aux questions sont à l'intérieur du texte, et les gagnants et les lauréats sont sous le spoiler.
Gagnants et lauréats du quizGagnant
Vadem
Lauréats
Deuxième place: acerikfy
Troisième place: Histiophryne
Quatrième - dixième place: Swezy_ua , SlonPC , noth , IIRoadRunnerII , term1nal , alexchromets , Tihon_V .
Bonus
Tant de participants ont donné des réponses correctes que nous avons décidé de jouer au hasard cinq autres paires de chaussettes parmi eux. Les chaussettes cool d'Avito reçoivent: sunman , grt_pretender , Vash , ipatov_dn , institoris
Draw Record

Prix
Les prix seront distribués parmi les dix premiers. Le premier à répondre correctement à toutes les questions du quiz Python, nous vous enverrons un kit Avito-merch avancé: un sweat-shirt, des chaussettes et des os creux - vous pouvez deviner dans quel langage backend et framework frontend votre nouveau projet sera écrit. Le deuxième participant ayant terminé les tâches recevra des holivones, des chaussettes et un T-shirt. Le troisième recevra le même ensemble, mais sans T-shirt / sweat-shirt. Parmi les sept participants restants , nous jouerons une bouteille thermique avec une carabine, qui peut être prise même lors d'une randonnée, au moins lors d'un hackathon.

Des questions
* Dans tous les cas, nous parlons de Python 3.
Question 1
Quel sera le résultat dans la variable t
:
>>> t = (1, 2, [30,40]) >>> t[2] += [50, 60]
Options de réponse:
TypeError
s'envolera, à t
sera (1, 2, [30, 40, 50, 60])
,TypeError
s'envolera, à t
sera (1, 2, [30, 40])
,(1, 2, [30, 40, 50, 60])
,(1, 2, [30, 40])
.
Bonne réponseTypeError
s'envolera, à t
sera (1, 2, [30, 40, 50, 60])
Question 2
Avez-vous une telle structure de modules:
foo_app/ snatch/ qwerty.py bar_app/ snatch/ mamamia.py
Comment faire en sorte que vous puissiez importer ces modules dans le code de cette manière:
from snatch import qwerty, mamamia
Options de réponse:
Bonne réponseles deux options ci-dessus fonctionnent
Question 3
Il y a un script:
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()
Quelle sera la sortie?
Options de réponse:
AttributeError: 'C' object has no attribute 'get_some'
,AttributeError: 'super' object has no attribute 'get_some'
,Some
- vide (sans Chapaev).
Question 4
Ce qui sera affiché lorsque vous exécuterez ce code:
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()
Options de réponse
foo A
,foo B
,TypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Bonne réponseTypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Question 5
Imaginez que vous ayez un module foo.py:
def bar(): print(', !')
Et vous exécutez un autre script:
import importlib import foo from foo import bar input(', ') importlib.reload(foo) bar()
Pendant qu'il attend l'entrée, vous changez le module foo.py:
def bar(): print(', !')
Ensuite, vous appuyez sur la «entrée» dans foo.py pour qu'il continue à fonctionner et vous voyez ...
Options de réponse:
ModuleReloadedException: method bar() was reloaded
,, !
,, !
,- le vide (et là encore il n'y a pas de Chapaev).
Question 6
Ce qui sera affiché lorsque vous exécuterez ce code:
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()
Options de réponse:
__init__ A __init__ B
__init__ B __init__ A
__init__ A
__init__ B
Question 7
Que contiendra la sortie après l'exécution du code suivant?
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)
Options de réponse:
Résumé
Nous publierons les réponses aux questions par mise à jour de l'article le mercredi 25 juillet. Si vous décidez - mettez les réponses sous le spoiler afin que les autres participants soient plus intéressés à résoudre les questions.
Et (!) N'oubliez pas de vérifier le compte Habr après la fin du quiz.