Lakukan pemanasan untuk mereka yang bisa menggunakan Python

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 Kuis

Pemenang


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.


gambar


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 benar

TypeError 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:


  • sebelum menjalankan skrip, jalankan export PYTHONPATH=foo_pp:br_pp ,
  • tambahkan ke bagian atas skrip:
     import sys sys.path.extend(['foo_app', 'bar_app']) 
  • kedua opsi di atas berfungsi,
  • ini tidak bisa dilakukan.

Jawaban yang benar

kedua 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).

Jawaban yang benar

Some


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 benar

TypeError: 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).

Jawaban yang benar

, !


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

Jawaban yang benar

__init__ A


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:


  • (True, True) ,
  • (True, False) ,
  • ValueError: need more than 2 values to unpack ,
  •  def not_(value): return value ^ SyntaxError: invalid syntax 


Jawaban yang benar

(True, False)


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.

Source: https://habr.com/ru/post/id415913/


All Articles