LoginSignup
17
14

More than 5 years have passed since last update.

日本語でpythonを書いてみた

Last updated at Posted at 2014-06-08

今さら日本語の変数名などが使えるようになっていることに気づいたので、どこまで日本語で書けるか試してみました。

# -*- coding: utf-8 -*-
from おまじない import *


# 販売商品を作る
価格表 = 辞書()
価格表["りんご"] = 100
価格表["みかん"] = 50
価格表["メロン"] = 200

購入履歴 = リスト()

# 購入履歴を適当に作る
for 回数 in 連番リスト(10):
    商品名リスト = 価格表.全部の名前をゲット()
    商品名番号 = ランダムの数をゲット(0, 長さ(商品名リスト) - 1)
    購入履歴.くっつける(リスト(商品名リスト)[商品名番号])

表示("=====購入履歴=====")
for 回数, 購入品 in 数えあげる(購入履歴):
    表示("%d回目:%s" % (回数 + 1, 購入品))

# 支払合計を計算
支払合計 = 0
for 購入品 in 購入履歴:
    支払合計 += 価格表[購入品]
表示("=====支払合計=====")
表示(支払合計)

出力

=====購入履歴=====
1回目:みかん
2回目:メロン
3回目:りんご
4回目:メロン
5回目:メロン
6回目:みかん
7回目:みかん
8回目:みかん
9回目:みかん
10回目:メロン
=====支払合計=====
1150

おまじない.py

日本語でプログラム書くためのおまじない

おまじない.py
# -*- coding: utf-8 -*-
import builtins
import random

_builtin_list = builtins.list
_builtin_dict = builtins.dict


# リスト置き換え用クラス定義
class リスト(_builtin_list):
    くっつける = _builtin_list.append
    リストをくっつける = _builtin_list.extend
    いれる = _builtin_list.insert
    消す = けす = _builtin_list.remove
    取り出す = とりだす = _builtin_list.pop
    全部消す = ぜんぶけす = _builtin_list.clear
    探す = さがす = _builtin_list.index
    数える = かぞえる = _builtin_list.count
    並べる = ならべる = _builtin_list.sort
    逆さに並べる = さかさにならべる = _builtin_list.reverse
    コピー = _builtin_list.copy


# 辞書置き換え用クラス定義
class じしょ(_builtin_dict):
    全部の名前と内容をゲット = ぜんぶのなまえとないようをゲット = _builtin_dict.items
    全部の名前をゲット = ぜんぶのなまえをゲット = _builtin_dict.keys
    全部の内容をゲット = ぜんぶのないようをゲット = _builtin_dict.values

    全部消す = ぜんぶけす = _builtin_dict.clear
    コピー = _builtin_dict.copy
    ゲット = _builtin_dict.get
    取り出す = とりだす = _builtin_dict.pop
    名前と内容を飛び出す = なまえとないようをとりだす = _builtin_dict.popitem
    組み込む = くみこむ = _builtin_dict.setdefault
    合体する = がったいする = _builtin_dict.update


# 組込み関数別名定義
表示 = ひょうじ = print
長さ = ながさ = len
ランダムの数をゲット = ランダムのかずをゲット = random.randint
ランダムの少数をゲット = ランダムのしょうすうをゲット = random.random
連番リスト = れんばんリスト = range
数えあげる = かぞえあげる = enumerate

辞書 = じしょ

# 組込オブジェクト置き換え
builtins.list = リスト
builtins.dict = じしょ


def __test():
    # 問題点の検証コード
    data_list = list()
    data_リスト = リスト()
    data_内包表記リスト = []

    print(["data_list", type(data_list)])
    print(["data_リスト", type(data_リスト)])
    print(["data_内包表記リスト", type(data_内包表記リスト)])
    """
    出力
    ['data_list', <class '__main__.リスト'>]
    ['data_リスト', <class '__main__.リスト'>]
    ['data_内包表記リスト', <class 'list'>]

    内包表記のリストが置き換えられない問題があるのが残念
    """


if __name__ == "__main__":
    __test()

__test()で試している通り内包表記のListやDictクラスが置き換えられないようなのが残念です。

17
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14