最近の将棋について思うこと 

棋士2人が外出禁止規定違反、将棋連盟から厳重注意と罰金処分

うーん。あれだけ三浦九段の事件で騒いでいたのにやってしまったのかー。普段の習慣で外に出てしまったのかもしれないし・・・

 

ルールができて厳しくなったから反発して破ったのだろうか。変ないい方だけど、いい大人が不正をするかもしれないから、外に出てはだめ!なんていわれると子ども扱いされているようで腹が立つのかもしれない。時代の流れで、技術が進歩した。将棋は今はもうコンピュータの方が強いだろうしプロ棋士の在り方は変わるかもしれない。

 

コンピュータが強くなったおかげで恩恵も受けられている。アマチュアにとっては身近にプロの先生がいるようなものだ。棋譜を読み込んで検討をしてもらって疑問手や悪手、推奨手を教えてくれる。上達するには、強い人に教えてもらうのは良い方法の一つであるし、普通にプロに頼んだら、~万円以上のお金が一回で飛んで行ってしまう。その点、ソフトウェア(Bonanza, Apery, 激指し, 技巧)などが無料、もしくは有料(1万円以内)で利用することができる。

ソフトの性能もパソコンの性能もどんどん進歩していっている。使えるものは使った方がいいと思う。昔ながらの・・・という考えは分からなくはないが、コンピュータがその場に使える環境があってそちらが使えるのであれば、将棋が強くなっていくなら自分はどんどん利用していきたい。

最近は、インターネットで対局できる場所は、24道場だけでなく将棋ウォーズや将棋クエストなどがあって多様性もサービスも向上している。いろいろな場所でいろいろな人と出会って対局することができる。現実での将棋道場が少なくなっているなかネットでの活動はどんどん増えていくと思う。

Python 正規表現

自分の他のブログから持ってきた。

正規表現を使えると文章の中から検索もできるし、変えたい文字があるとき、それが複数あってもまとめて変えられるので便利。

 

・正規表現を使用して見つかったパターンをマッチすると言う。

# !/user/bin/env python



import re  #importする。





def main():



    pattern = r'a'  # 見つけたい文字。 ''の前にrをつけることで「」をそのまま使える。

    text = 'abcda'



    m = re.match(pattern, text)  # re.match(見つけたい文字, 検索する文字列)

                                 # 文字列の先頭で正規表現とマッチの判定



    n = re.search(pattern, text)  # re.search(見つけたい文字, 検索する文字列)

                                  # 見つけたい文字がどこかにあれば返す



    l = re.findall(pattern, text)  # re.findall(見つけたい文字, 検索する文字列)

                                   # マッチした部分文字列をすべて探し、リストで返す。   



    print(m)  # <_sre.SRE_Match object; span=(0, 1), match='a'>

    print(n)  # <_sre.SRE_Match object; span=(0, 1), match='a'>

    print(l)  # ['a', 'a']



    # search()関数 ※マッチが複数あっても最初の箇所だけ返す。



    print(n.group())  # a  マッチした文字列を返す

    print(n.start())  # 0  マッチの開始位置

    print(n.end())    # 1  マッチの終了位置

    print(n.span())   # (0, 1)  マッチの位置





if __name__ == '__main__':

    main()

Raspberry Pi 始めました。

最近話題?(遅いけど)のラズパイを始めました。セットで買って一万円くらい。

 

最初の印象は、思っていたよりも小さい。これで、パソコンの性能があるのが少し疑問だった。薄い板ですし。

 

OSは、ラズビアンを使った。SDカードへのコピー、OSのインストールもサクサクできた。ラズビアンはLinuxであるのでCPUのパワーをそこまで必要としない。webをするくらいだったらストレスなく動いてくれる。動画を見ようとするとさすがに重くなるけど。

電子工作も、GPIOを使えるためそこまで難しくない。LEDを光らせるくらいならすぐにできると思う。それにPythonで電子回路を制御できる(自分にとっては大事!)。CやC++を使う必要がなく、楽しくコードを書くことができる。

電子回路のハードウェアの部分とプログラミングのソフトウェアの部分、両方を味わえるため、電子、電気、機械、プログラミングに興味がある人にとっては、素晴らしい贈り物かもしれない。

 

リンク集:

Raspberry Pi wikipedia

Raspberry Pi – Teach, Learn, and Make with Raspberry Pi ←公式サイト

ツール・ラボ

 

 

Python if文 or分岐がたくさんある場合

if文で分岐するときにorの条件が多いとソースコードが見づらくなる。

そのため、以下のように書くと文字が少なくなり、楽になる。

# !/user/bin/env python
def main():
    list = [i for i in range(10)]
    print(list)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    for i in list:
        if i == 1:
            print('a:{}'.format(i))
        elif i == 2:
            print('a:{}'.format(i))
        elif i == 3:
            print('a:{}'.format(i))
        else:
            print(i)

    """
    0
    a:1
    a:2
    a:3
    4
    5
    6
    7
    8
    9
    """

    for i in list:
        if i in {1, 2, 3}:
            print('a:{}'.format(i))
        else:
            print(i)
    """
    0
    a:1
    a:2
    a:3
    4
    5
    6
    7
    8
    9
    """
if __name__ == '__main__':
    main()

あまり使う機会はないかもしれないけど、便利であると思う。

追記

switch文がないのは、あきらめるしかない。

ifとelifを使うしかない・・・

ダックタイピングを上手く使えばきれいになるのかな。

2022/11追記

いまだと、match文があるからこれを使うのが良いかも

https://qiita.com/ksato9700/items/3ce4c68c0d713874b693

Python OrderdDict

OrderdDict

 

# !/user/bin/env python

from collections import OrderedDict


def main():
    dict = OrderedDict()

    dict[1] = 'a'
    dict[2] = 'b'
    dict[3] = 'c'

    print(dict)  # OrderedDict([(1, 'a'), (2, 'b'), (3, 'c')])


if __name__ == '__main__':
    main()

普通のdictと違って要素を追加した順番を記憶している。

lambda式を使って、ソートの仕方を変えることもできる。

リストと同じように、順番を覚えてくれるのは便利だと思う。

 

http://docs.python.jp/3.5/library/collections.html

http://shannon-lab.org/?p=1743

 

 

Pycharm ショートカット

Pycharmのショートカットについて

 

ショートカットの一覧の場所

File → Setting → keymap

 

よく使っているショートカット

・設定を開く Shift + Alt + s

・新しいファイル、ディレクトリなど新規作成 Alt + Insert

・スクリプトを選んで実行 Shift + Alt + F10

・現在のスプリクトを実行 Alt + F10

・リネーム Shit + F6

ファイルを選択して使うと、ファイルの名前の変更。

ソースコードで使うとその名前と同じ部分をまとめて変更。

・コードを選択して、Ctrl + / でコメントアウトできる。

 

この他にも便利なショートカットがあるので使っていきたい。

 

本のコレクター

本のコレクターだと自分では思っている。

良い意味で自称しているわけではなく、悪い意味である。

集めるだけ集めて、何かを生み出すことをせず、アウトプットをしていくこともしない。

本についてじっくり考えず、ただ作者に乗っかっているだけである。

知識はアウトプットをしてこそ役に立つ。

インプットばかりでは食べ過ぎと同じで動かなくなってしまうのだろう。消化不良にならないためには運動することと同じように、そとにエネルギーを出そう。

それに、頭がいい人の考えたを自分のものと思い込み、自分では何も考えなくなってしまう。これは、怖いことで自分がただのスピーカーである。右から来た情報を左に流すだけで何も生み出さず、いなくても良い存在であると同じ。

本から何を得て、自分が何を生み出せるか。色々と試してみることがあるのだろうと思う。ただでさえ、ネットに膨大な情報が生まれ、消え、消費され、拡散され・・・が繰り返し起きてる社会だ。知識だけでは辞書と同じ、いや辞書は正確であるが人間は知識は曖昧なものである。

 

とりあえず、読んで頭の中で考え、発酵させ、毒か薬にはなれるようにしていきたい。