突然ですが、みなさん、クイズって好きですか?
- PyCon JP 2019で好評だった、Pythonクイズを出題します!
- 問題の概要
- 問題
- 1問目:2018年に「優しい終身の独裁者」を引退したPythonの父の名前はどれ?
- 2問目:Pythonの設計に強い影響を与えた言語はどれ?
- 3問目:Python3.7で、文字列を出力するコードとして正しいのはどれ?
- 4問目:Pythonでモジュールをインポートするときにプログラムが動かないための「おまじない」として正しいものはどれ?
- 5問目:Python3.7に組み込み関数は何個ある?
- 6問目:Python3.7の組み込み関数でないものは?
- 7問目: s = "Pythonを完全に理解した" の場合、sと同等の文字列を返さないのはどれ?
- 8問目:Python3で導入された有名イースターエッグの中に、もう1つのイースターエッグが隠れている。その関数の名は?
- 9問目:The Zen of Pythonにあるものは?
- 10問目:「空飛ぶPython」を実現するためのコマンドは?(ヒント: Pythonの中でもっとも有名なイースターエッグともいわれています)
- まとめ
- 好成績が出たら教えてください!
PyCon JP 2019で好評だった、Pythonクイズを出題します!
2019年9月16日、17日にカンファレンスが開催されたPyCon JP 2019にて、PyQの運営会社である株式会社ビープラウドは企業ブースに出展しました。
そこでブース企画として出題したPythonクイズ「ビープラウドからの挑戦」がとっても好評だったので、今日は、その問題と解説をみなさんにも紹介しようと思います。
問題の概要
Pythonにまつわる雑学とコード問題をあわせた10問で構成されています。
当日ブースでは、200名以上の挑戦者のうちたった3名しか全問正解者が出なかった、なかなかの難問です!
我こそは!というPythonistaのみなさん、ぜひ挑戦してみてくださいね。 当日は回答だけでしたが、解説もつけました。当日詳細が気になった方もぜひご覧ください。
問題
1問目:2018年に「優しい終身の独裁者」を引退したPythonの父の名前はどれ?
- イーロン・マスク
- グイド・ヴァンロッサム
- コーリー・アルソフ
- まつもとゆきひろ
回答:グイド・ヴァンロッサム
イーロン・マスク…テスラの共同設立者およびCEO
コーリー・アルソフ…独学プログラマー著者
まつもとゆきひろ…プログラミング言語「Ruby」の開発者
2問目:Pythonの設計に強い影響を与えた言語はどれ?
- ABC
- BASIC
- Perl
- Rexx
回答:ABC
ABCはPythonの設計に重大な影響を与えた。Python を開発したグイド・ヴァンロッサムは1980年代初期に ABC システム開発に数年間参加していた
引用元:WikiPedia: ja.wikipedia.org
3問目:Python3.7で、文字列を出力するコードとして正しいのはどれ?
console.log("Welcome to PyConJP!");
print "Welcome to PyConJP!"
print("Welcome to PyConJP!")
puts "Welcome to PyConJP!"
回答:print("Welcome to PyConJP!")
console.log("Welcome to PyConJP!");
… Javascript
print "Welcome to PyConJP!"
… Python2系
puts "Welcome to PyConJP!"
… Ruby
4問目:Pythonでモジュールをインポートするときにプログラムが動かないための「おまじない」として正しいものはどれ?
if __main__ == "__name__":
if __name__ == "__main__":
if __name__ == "__name__":
if __main__ == "__main__":
回答: if __name__ == "__main__":
参考: blog.pyq.jp
5問目:Python3.7に組み込み関数は何個ある?
- 0
- 24
- 51
- 69
回答:69
公式ドキュメントに一覧があります。数えると69個!
6問目:Python3.7の組み込み関数でないものは?
- bin()
- dec()
- hex()
- oct()
回答:dec()
5問目の解説で紹介した、公式ドキュメントの一覧に入っていないものを探してみましょう! https://docs.python.org/ja/3/library/functions.html
7問目: s = "Pythonを完全に理解した"
の場合、sと同等の文字列を返さないのはどれ?
s.center(14)
s.upper().lower()
s.strip("完全")
"完全".join(s.split("完全"))
回答:s.upper().lower()
.upper()
で全て大文字に変換されたのち、.lower()
で全て小文字に変換される為、 「pythonを完全に理解した」 になります。pが小文字になってしまっているので、sと同等の文字列では無くなっていますね。
8問目:Python3で導入された有名イースターエッグの中に、もう1つのイースターエッグが隠れている。その関数の名は?
- braces
- lazystring
- geohash
- terraform
回答:geohash
geohashの元ネタは以下:
「有名イースターエッグ」については、10問目で出題!
9問目:The Zen of Pythonにあるものは?
- Beautiful is boring.
- Now is better than never.
- Move fast and break things.
- You cannot connect the dots looking forward.
回答:Now is better than never.
Beautiful is boring. … BONES UKというバンドの曲名
Move fast and break things. … Facebook社の元モットー
You cannot connect the dots looking forward. … Steve Jobs卒業式スピーチより
10問目:「空飛ぶPython」を実現するためのコマンドは?(ヒント: Pythonの中でもっとも有名なイースターエッグともいわれています)
import <記述してください!>
回答:import antigravity
8問目、10問目のイースターエッグを解説している、The History of Pythonの翻訳ページをご紹介。 https://python-history-jp.blogspot.com/2010/07/import-antigravity.html
まとめ
Pythonでプログラミングをするだけなら、知らなくてもいい問題も含まれています。
でも、Pythonの歴史や込められた遊び心を知ると、Pythonをもっと好きになれるかもしれません。私はイースターエッグなどについてはこの問題ではじめて知ったので、作った人の顔を見られたような気がして、なんだか楽しくなりました。
好成績が出たら教えてください!
もし挑戦してくださった方は、twitterで#PyQ #BPからの挑戦などのハッシュタグや、PyQ公式アカウント(@pyqjp)へのメンションでシェアしてくださると喜びます。ぜひ成績や感想を教えてくださいね!