数値と文字列
数値から文字へ
n = 1000
nstr = str(n)
msg = '%s' % nstr
print msg
数値から文字へ
for n in range(97, 123):
print chr(n)
文字から数値へ
nstr = '1000'
n = int(nstr)
n += 1
print n
一文字の数値化
str = 'abcdefghijklmn'
for s in str:
v = ord(s)
print v
16進数表記
16進数ダンプ
str = 'abcdefgABCDEFG'
print ''.join(['%x ' % ord(s) for s in str])
バイナリの文字化
import binascii
b1 = '\x01\x02\x03\x04\x01\x02\x03\x04\x01\x02\x03\x04\x01\x02\x03\x04'
s = binascii.b2a_hex(b1)
print s
b2 = binascii.a2b_hex(s)
if b1 == b2:
print 'correct'
~
大きな整数
a = 1245556734567L
print pow(a, 30)
- Lを指定するとlongintegerになり大きなビット数の整数が扱える。
- 課題: 正しいことはどうやって証明するのか?
空白除去
import string
str = 'dkdkdkd dkdkdkdk aaaaa '
str1 = string.rstrip(str, ' ')
print str1
標準入力からの一行の読み取り
import string
import sys
msg = sys.stdin.readline()
print string.strip(msg)
文字列バッファ
import StringIO
f = StringIO.StringIO()
for n in range(4):
f.write(str(n) + '\n')
f.seek(0)
print f.read()