pythonをいま使っている範囲では、凝った使い方は全然していない。
計算して、printするくらいだ。
そうなるとどうなるかというと・・・ネタがすぐに切れるということになる。
しばらくpythonネタを続けられるとほくそ笑んでいたのだが。。。
小ネタとして、エンディアンをひっくり返す話でも書くとしよう。
struct系のAPIには、<や>を使ってエンディアンを変更する方法があるけれども、bytearrayになっているものは特にAPIが無さそうだった。
自力で回す関数を作ったのだけど、こんなのでよいのか?
def reverse_endian(msg):
rev = ''
for lp in msg:
rev = lp + rev
return rev
うん、forで1byteずつ抜き出して、頭に追加するだけだ。
間違ってはいないと思うが、まだ格好のよい方法があるのかもしれん。
まだdecode('hex')する前の文字列でも、エンディアンを変更したいことがあった。
そっちは、こうやっている。
def reverse_endian_str(msg):
rev = ''
for lp in range(0, len(msg) / 2):
rev = msg[lp * 2: lp * 2 + 2] + rev
return rev
うーん、2つずつスキップする方法もなさそうだったから、先頭から2文字ずつ抜き出して先頭に追加する、をやっただけだ。
そのまますぎるのだけど、他にないよね?ないよね??
最近の言語だから、なんか格好のよいやり方があるかも!と模索して時間を費やしてしまうことが多いのだが、大したことない作業だったら自分でやる、という方がスクリプトとしては良いのかもしれない、と思うことにしよう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。