タグ付けされた質問 「ast-golf」

4
抽象構文木ゴルフ:FizzBu​​zz、Python
概要 可能な限り少ないトークンで、FizzBu​​zzをPythonで実装します。 チャレンジ 1から100までの10進数を出力するプログラムを作成します。しかし、3の倍数の場合は数字ではなく「フィズ」、5の倍数の場合は「バズ」が印刷されます。3と5の両方の倍数である数字の場合、「FizzBu​​zz」と印刷します。プログラムは、Pythonの何らかのバージョンで作成する必要があります。 詳細については、1、2、Fizz、4、Buzzを参照してください 得点 スコアは、Python 3のこのプログラムまたはPython 2のこのプログラムによって報告されたコードの抽象構文ツリーのノードの数に等しくなります。プログラムを実行するには、プログラムのコマンドライン引数としてコードのファイル名を指定します。例えば: python simple_counter.py fizzbuzz.py これらのプログラムは、Pythonのastモジュールに基づいています。何か問題がある場合はお知らせください。 実際のプログラムで長い文字列を実行したり、出力をハードコーディングしたりといった些細な解決策を防ぐために、いくつかの追加の制限があります。 コード内のトークンは15文字を超えることはできません。上記のプログラムは、この要件を確認します。実装を簡単にするために、上記のプログラムはコメントをトークンとしてカウントすることに注意してください。 コードの実行/評価は禁止されています。 何かが許可されているかどうかについて質問がある場合は、私に尋ねてください。 スコアリングヒューリスティック 通常、プログラムのスコアを計算するには、次のルールで十分です。 ブロック文は1ポイントです:if、for ... in ...、while、else、など スタンドアロン文は1ポイントです:printPythonの2にbreak、passなど、 変数は2ポイントです シングルトークンリテラルは1ポイントです:2131、"Hello, world!"、True 関数は3つのポイント(変数を使用するための2つ、余分な1つ)です:printPython 3 rangeなど オペレータは2ポイントです:+、*、%、and、not、など = 1ポイントです :拡張割り当ては2点であり+=、|=等 括弧、インデントなどは0ポイントです。 代入または式ではなく、式を含む行は+ 1ポイントです。 コードを持っていることは1ポイントです。 チャレンジ: 最も低いスコアが勝ちます。幸運を!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.