Hai Kami menyukai kuis tentang bahasa pemrograman. Kami telah memposting tiga di blog kami: yang pertama - di Python, PHP, Golang, DevOps, yang kedua - sepenuhnya di Go, yang ketiga - hanya di PHP. Kuis hari ini didedikasikan khusus untuk Python.
Kami mengundang Anda untuk melakukan pemanasan untuk menghormati akhir minggu musim panas yang lain dan pada malam PyCon Russia 2018 . (Ngomong-ngomong, siapa yang pergi? Kita akan ke sana).
Di bawah potongan - tujuh pertanyaan, saran dari seorang teman, Chapaev, kutipan dari ABBA ( apa? Ya! ) Dan barang keren.
UPD: Kami telah selesai menerima jawaban. Terima kasih untuk semua yang berpartisipasi! Jawaban atas pertanyaan ada di dalam teks, dan pemenang dan pemenang hadiah ada di bawah spoiler.
Pemenang dan Pemenang KuisPemenang
Vadem
Pemenang hadiah
Tempat kedua: acerikfy
Tempat Ketiga: Histiophryne
Tempat keempat - kesepuluh: Swezy_ua , SlonPC , noth , IIRoadRunnerII , term1nal , alexchromets , Tihon_V .
Bonus
Begitu banyak peserta memberikan jawaban yang benar sehingga kami memutuskan untuk secara acak memainkan lima pasang kaus kaki di antara mereka. Kaos kaki keren dari Avito terima: sunman , grt_pretender , Vash , ipatov_dn , institoris
Draw Record

Hadiah
Hadiah akan didistribusikan di antara sepuluh besar. Yang pertama menjawab dengan benar semua pertanyaan dalam kuis Python, kami akan mengirimkan kit Avito-merch canggih: kaus, kaus kaki, dan tulang berlubang - Anda dapat menebak bahasa backend dan kerangka kerja frontend yang digunakan untuk proyek baru Anda. Peserta kedua yang menyelesaikan tugas akan diberikan holivon, kaus kaki, dan kaus oblong. Yang ketiga akan mendapatkan set yang sama, tetapi tanpa T-shirt / kaus. Di antara tujuh peserta yang tersisa , kami akan memainkan botol termal dengan karabin, yang dapat diambil bahkan saat mendaki, setidaknya dengan hackathon.

Pertanyaan
* Dalam semua kasus, kita berbicara tentang Python 3.
Pertanyaan 1
Apa yang akan menjadi hasil dalam variabel t
:
>>> t = (1, 2, [30,40]) >>> t[2] += [50, 60]
Opsi Jawaban:
TypeError
akan terbang TypeError
, pada t
akan (1, 2, [30, 40, 50, 60])
,TypeError
akan terbang TypeError
, pada t
akan (1, 2, [30, 40])
,(1, 2, [30, 40, 50, 60])
,(1, 2, [30, 40])
.
Jawaban yang benarTypeError
akan terbang TypeError
, pada t
akan (1, 2, [30, 40, 50, 60])
Pertanyaan 2
Apakah Anda memiliki struktur modul:
foo_app/ snatch/ qwerty.py bar_app/ snatch/ mamamia.py
Cara membuatnya sehingga Anda dapat mengimpor modul-modul ini dalam kode dengan cara ini:
from snatch import qwerty, mamamia
Opsi Jawaban:
Jawaban yang benarkedua opsi di atas berfungsi
Pertanyaan 3
Ada skrip:
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()
Apa yang akan menjadi output?
Opsi Jawaban:
AttributeError: 'C' object has no attribute 'get_some'
,AttributeError: 'super' object has no attribute 'get_some'
,Some
- kekosongan (tanpa Chapaev).
Pertanyaan 4
Apa yang akan ditampilkan ketika Anda menjalankan kode ini:
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()
Opsi jawaban
foo A
,foo B
,TypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Jawaban yang benarTypeError: Cannot create a consistent method resolution order (MRO) for bases A, B
Pertanyaan 5
Bayangkan Anda memiliki modul foo.py:
def bar(): print(', !')
Dan Anda menjalankan skrip lain:
import importlib import foo from foo import bar input(', ') importlib.reload(foo) bar()
Saat menunggu input, Anda mengubah modul foo.py:
def bar(): print(', !')
Selanjutnya, Anda menekan "input" di foo.py agar terus berfungsi dan Anda melihat ...
Opsi Jawaban:
ModuleReloadedException: method bar() was reloaded
,, !
,, !
,- kekosongan (dan lagi-lagi tidak ada Chapaev).
Pertanyaan 6
Apa yang akan ditampilkan ketika Anda menjalankan kode ini:
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()
Opsi Jawaban:
__init__ A __init__ B
__init__ B __init__ A
__init__ A
__init__ B
Pertanyaan 7
Apa yang akan ada dalam output setelah kode berikut dijalankan?
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)
Opsi Jawaban:
Ringkasan
Kami akan memposting jawaban atas pertanyaan dengan memperbarui posting pada hari Rabu, 25 Juli. Jika Anda memutuskan - letakkan jawaban di bawah spoiler sehingga peserta lain akan lebih tertarik untuk menyelesaikan pertanyaan.
Dan (!) Jangan lupa untuk memeriksa akun Habr setelah kuis berakhir.