2016/10/14

[py]print文

pythonのprintを使うと、自動的に改行が行われてしまうようだ。
回避方法はあるのかもしれないが、1行に書いてしまえばよいだけだろう、とも思う。
前回の

foo = bytes.fromhex('123456789abcdef0')
print(''.join(format(x, '02x') for x in foo))

も、1行で出してしまいたかったからだ。

数字を16進数で出したければ、これでよいようだ。

>>> print '%x' % 1234
4d2

これでも同じらしい。

>>> print format(1234, "x")
4d2

ゼロがほしいときは、

>>> print '%04x' % 1234
04d2
>>> print format(1234, "04x")
04d2

など。
この辺りは、printfの使い方と似ているので、まあ大丈夫だろう。

 

並べたいときは、

>>> print '%d %x' % (1234, 1234)
1234 4d2

のように、引数の方を括弧で囲むようだ。

 

ちょっと迷うのが、コンマ。

>>> print 'x', 1234
x 1234

スペースが空くのだ。
嫌だったら、足し算を使うのか。

>>> print 'x' + str(1234)
x1234

文字列の連結になるためか、数字を文字列に変換せんといかんかった。

 

まだ技はありそうだが、(私が)普段使いそうなのはここら辺だろう。


これはprintとは関係ないが、文字列はダブルクオーテーションでもシングルクオーテーションでもよいらしい。

>>> print "abc"
>>> print 'abc'

これが、なかなかなじめない。。。
ただ、両方使うことができるので、

>>> print '"abc"'
"abc"
>>> print "'abc'"
'abc'

という技が使えるようだ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。