Oi Adoramos questionários sobre linguagens de programação. Já postamos três em nosso blog: o primeiro - em Python, PHP, Golang, DevOps, o segundo - completamente em Go, o terceiro - apenas em PHP. O questionário de hoje é dedicado exclusivamente ao Python.
Convidamos você a se aquecer em homenagem ao final de mais uma semana de verão e às vésperas da PyCon Rússia 2018 . (A propósito, quem está indo? Estaremos lá).
Sob o corte - sete perguntas, conselhos de um amigo, Chapaev, trechos do ABBA (o que? Sim! ) E uma mercadoria legal.
UPD: Terminamos de aceitar as respostas. Obrigado a todos que participaram! As respostas para as perguntas estão dentro do texto, e os vencedores e vencedores dos prêmios estão sob o spoiler.
Vencedores e vencedores do questionárioVencedor
Vadem
Vencedores
Segundo lugar: acerikfy
Terceiro Lugar: Histiophryne
Quarto - décimo lugar: Swezy_ua , SlonPC , noth , IIRoadRunnerII , term1nal , alexchromets , Tihon_V .
Bônus
Tantos participantes deram respostas corretas que decidimos jogar aleatoriamente outros cinco pares de meias entre eles. As meias legais da Avito recebem: sunman , grt_pretender , Vash , ipatov_dn , institoris
Draw Record

Prémios
Os prêmios serão distribuídos entre os dez primeiros. O primeiro a responder corretamente a todas as perguntas do questionário Python, enviaremos um kit avançado Avito-merch: um moletom, meias e ossos ocos - você pode adivinhar em qual linguagem de back-end e estrutura de front-end seu novo projeto será escrito. O segundo participante que completou as tarefas será premiado com holivones, meias e uma camiseta. O terceiro terá o mesmo conjunto, mas sem camiseta / moletom. Entre os sete participantes restantes , jogaremos uma garrafa térmica com uma carabina, que pode ser levada até em uma caminhada, pelo menos em uma hackathon.

Perguntas
* Em todos os casos, estamos falando do Python 3.
Pergunta 1
Qual será o resultado na variável t
:
>>> t = (1, 2, [30,40]) >>> t[2] += [50, 60]
Opções de resposta:
TypeError
, em t
será (1, 2, [30, 40, 50, 60])
,TypeError
, em t
será (1, 2, [30, 40])
,(1, 2, [30, 40, 50, 60])
,(1, 2, [30, 40])
.
Resposta corretaTypeError
voará TypeError
, em t
será (1, 2, [30, 40, 50, 60])
Questão 2
Você tem essa estrutura de módulos:
foo_app/ snatch/ qwerty.py bar_app/ snatch/ mamamia.py
Como fazer isso para que você possa importar esses módulos no código desta maneira:
from snatch import qwerty, mamamia
Opções de resposta:
Resposta corretaas duas opções acima estão funcionando
Pergunta 3
Existe um 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()
Qual será a saída?
Opções de resposta:
AttributeError: 'C' object has no attribute 'get_some'
,AttributeError: 'super' object has no attribute 'get_some'
,Some
- vazio (sem Chapaev).
Pergunta 4
O que será exibido quando você executar este código:
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()
Opções de resposta
foo A
,foo B
,TypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Resposta corretaTypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Questão 5
Imagine que você tem um módulo foo.py:
def bar(): print(', !')
E você executa outro script:
import importlib import foo from foo import bar input(', ') importlib.reload(foo) bar()
Enquanto aguarda a entrada, você altera o módulo foo.py:
def bar(): print(', !')
Em seguida, você pressiona a "entrada" em foo.py para que continue a funcionar e veja ...
Opções de resposta:
ModuleReloadedException: method bar() was reloaded
,, !
,, !
,- vazio (e novamente não há Chapaev).
Pergunta 6
O que será exibido quando você executar este código:
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()
Opções de resposta:
__init__ A __init__ B
__init__ B __init__ A
__init__ A
__init__ B
Pergunta 7
O que estará na saída após a execução do código a seguir?
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)
Opções de resposta:
Sumário
Postaremos respostas para as perguntas atualizando na quarta-feira, 25 de julho. Se você decidir - coloque as respostas embaixo do spoiler para que outros participantes estejam mais interessados em resolver perguntas.
E (!) Não se esqueça de verificar a conta do Habr após o final do teste.