📌
Python で ”OK” と出力してみよう
Python で OK と出力してみます。
前提条件
お使いの PC に Python がインストールされていたら問題ありません。本記事のコードは MacOS Catalina 上にインストールされた Python 3.8.2 上で動作確認済みです。
もしインストールされていない場合は以下のチュートリアルをご参照ください。
あと、文字リテラル・文字列リテラル・数リテラルは使わないこととします。(ハードコーディング縛り的な。)
下準備
リテラル縛りということは "OK"
が使えませんので、どうにかして生成することとしましょう。
Python には chr()
がありますので数値さえ準備できればなんとかなりそうです。しかしながら数リテラルは使えませんので、別の方法を使って準備する必要があります。数学では 任意の数を0乗した数は1 という定義があるので、0さえ用意できれば良さそうです。そう言えば空配列の要素数は0ですね。なんとかなりそうです。良かった良かった。
問題なさそうです。
以上の内容をコードにしてみます。
zero = len([])
one = zero**zero
では chr()
を使って "OK"
を生成します。ASCII において O
は 79
、K
は 75
です。79 = 2^6+2^3+2^2+2^1+1
、75 = 2^6+2^3+2^1+1
ですね。コードにしてみます。(計算式を簡単にするために two
を定義してます。)
zero = len([])
one = zero**zero
two = one + one
O = chr(two**(two+two+two)+two**(two+one)+two**two+two+one)
K = chr(two**(two+two+two)+two**(two+one)+two+one)
準備完了!
あとは print()
で出力するだけですね、お疲れさまでした!
zero = len([])
one = zero**zero
two = one + one
six = two + two + two
O = chr(two**(six)+two**(two+one)+two**two+two+one)
K = chr(two**(six)+two**(two+one)+two+one)
p = eval(chr(two**six+two**(six-one)+two**(two+two)) + chr(two**six+two**(six-one)+two**(two+two)+two) + chr(two**six+two**(six-one)+two**(two+one)+one) + chr(two**six+two**(six-one)+two**(two+one)+two**two+two) + chr(two**six+two**(six-one)+two**(two+two)+two**two))
p(O+K)
謝辞
Proglove の syoch さんが Python で遊んでたのを見て今回のネタを思いつきました、感謝感謝です。
Discussion