開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
のコードをGo言語ではなくPythonで、またPython3.8でセイウチ演算子(:=、Assignment expressions)という新機能、新演算子が追加されたから、それを利用して3.7以前より短いコードを書いてみた。ヌジョレーボーボー、Go で少し短くできるな。https://t.co/I3icVPtUOW
— mattn (@mattn_jp) November 23, 2019
python3.7以前
コード
#! /usr/bin/env python3.8
import random
import time
random.seed(time.time())
a = ['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']
random.shuffle(a)
print('{}{}{}-{}-{}-'.format(*a))
入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
% ./sample.py
ジョレヌ-ボ-ボ-
% ./sample.py
ボボレ-ジョ-ヌ-
% ./sample.py
レヌジョ-ボ-ボ-
% ./sample.py
レボジョ-ヌ-ボ-
% ./sample.py
レボボ-ヌ-ジョ-
%
python3.8以降
コード
#! /usr/bin/env python3.8
import random
import time
random.seed(time.time())
random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ'])
print('{}{}{}-{}-{}-'.format(*a))
入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
% ./walrus_operator.py
ボジョレ-ボ-ヌ-
% ./walrus_operator.py
ヌジョレ-ボ-ボ-
% ./walrus_operator.py
レボヌ-ボ-ジョ-
% ./walrus_operator.py
ジョボレ-ヌ-ボ-
% ./walrus_operator.py
ボヌボ-ジョ-レ-
%
最後にpython3.8かつOne-Linerでファイルも不要に。
入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
% python3.8 -c "import random,time; random.seed(time.time());random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']);print('{}{}{}-{}-{}-'.format(*a))"
ボレジョ-ボ-ヌ-
% python3.8 -c "import random,time; random.seed(time.time());random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']);print('{}{}{}-{}-{}-'.format(*a))"
ヌレボ-ボ-ジョ-
% python3.8 -c "import random,time; random.seed(time.time());random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']);print('{}{}{}-{}-{}-'.format(*a))"
ボボレ-ヌ-ジョ-
% python3.8 -c "import random,time; random.seed(time.time());random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']);print('{}{}{}-{}-{}-'.format(*a))"
レヌボ-ジョ-ボ-
% python3.8 -c "import random,time; random.seed(time.time());random.shuffle(a:=['ボ', 'ジョ', 'レ', 'ヌ', 'ボ']);print('{}{}{}-{}-{}-'.format(*a))"
ボヌジョ-ボ-レ-
%
python、python3ではなくpython3.8なのは、pythonはバージョン2.7、python3はバージョン3.7を起動するように設定してあるから。
ということで、3.7以前と比べて3.8ではセイウチ演算子(Walrus operator)のおかげで1行短くできた。まだちょっと見慣れないけど、慣れたら快適になることを期待。
0 コメント:
コメントを投稿