不定期戯言

戻る

2020.10.27 (Tue)

PyPENの大改造

・自動採点や棒グラフ・線グラフに関するバグフィックスもあったのだが,それはそれとして,仕様変更をかなり行った。勤務校に講師として来てくれているI氏と相談して,文字列の区切りを「」から""が優先されるようにして,その中のダブルクォートをエスケープできるようにしたりとか,演算子の優先順位をPythonにかなり合わせたりとか,真偽と数値を比較できなくしたりとか,代入に:=を使えるようにしたりとか,まあいろいろ。

コメント(0)

コメントの受付は終了しました。

2020.10.17 (Sat)

後方互換性を犠牲に

・PyPENに大きく手を入れた。配列と辞書を一緒くたにしていたのを,別々のものにした。今までは添字が整数か文字列かで扱いを変えていたのだが,どちらかしか許さないようにした。空の配列は[],空の辞書は{}で表すことにした。そのついでに,辞書の形のデータ型も許すようにした。

・これで,過去のプログラムが一部動かなくなる。特に,これまでは使用していない変数名に添え字をつけると,それで変数が配列兼辞書として使えていたのだけど,これからは[]や{}で初期化することが必要になる。自分のサイトに置いてあるPyPENはさっさと変えてしまえばいいのだけど,授業で使っているやつは(他校でも使っているので)確認してからにしないといけない。

コメント(0)

コメントの受付は終了しました。

2020.10.11 (Sun)

PyPENのグラフとか演算子とか

・Plotlyを使ってグラフが書けるようにしたのはいいが,マニュアルができていなかった。そんなわけで1日かけて作成。ここでGET文字列でコードを入力できる機能が効いてくるわけだ。一応ダイレクトリンクも置いておく。

・代入演算子やビット演算を実装した。ついでに代入にイコールも使えるようにした。これで手癖でイコール書いてしまう生徒も困らないだろう。

コメント(0)

コメントの受付は終了しました。

2020.10.04 (Sun)

高橋メソッドっぽいアニメGIFジェネレータ

・ここ何年か生徒に短いプレゼンをさせているのだけど,今年もネタに困っている様子。そこで過去の先輩たちがどんなネタでやってきたかを見せると参考になるかと思い,Pythonでスライドデータからタイトルっぽい文字列を引き抜いてみた。これをそのまま見せるのも面白くないから,アニメGIFにして高橋メソッドっぽく見せてみようと思いたち,コードを書いてみた。

アニメGIF

from PIL import Image, ImageFont, ImageDraw

maxx, maxy = 320,240

def make_image(s:str):
    s = s.replace('\\n','\n')
    im = Image.new('RGB',(maxx, maxy),0xffffff)
    draw = ImageDraw.Draw(im)
    flag = False
    fontsize = 96
    while not flag:
        font = ImageFont.truetype('/home/watayan/.fonts/BIZ-UDGothic-B.ttc',size=fontsize)
        w, h = draw.textsize(s, font)
        if w < maxx and h < maxy: flag = True
        else: fontsize -= 2
    draw.text(((maxx - w) // 2, (maxy - h) // 2),s,font=font,fill=0x000000,align='center')
    return im

f = open('title.txt', 'r')
lines = f.readlines()
f.close()
im = Image.new('RGB',(maxx,maxy),0x000000)
images = []
for s in lines:
    images.append(make_image(s.strip()))
im.save('title.gif', append_images=images, duration=1000, loop=0, save_all=True)

もし使う人がいたら,フォントファイル名とか修正してください。

コメント(0)

コメントの受付は終了しました。