どのように私は、%D%dは、Cで raw_inputがPythonのインプット読むフォーマット
は、例えば1 0
私が欲しいその行ですべてを読み込むようにpythonの ことにより、2つの変数に1行に入力した2つの値を読み取ることができますxの1と0のy
どのように私は、%D%dは、Cで raw_inputがPythonのインプット読むフォーマット
は、例えば1 0
私が欲しいその行ですべてを読み込むようにpythonの ことにより、2つの変数に1行に入力した2つの値を読み取ることができますxの1と0のy
larsmansの方法を使うと十分です。 実際にがscanfのものを望んでいれば、ほとんどの場合、の全ラインを読んでみたくないです。これを試してください、それは遅くなるかもしれません。
import re
import sys
class Pin:
formatDict = {'%d': r'(\d+)', '%f': r'(\d+\.?\d*)'}
def __init__(self, input=sys.stdin):
self.input = input
def scanf(self, format):
# change the C style format to python regex
for a, b in self.formatDict.iteritems():
format = format.replace(a, b)
patt = re.compile('^\\s*%s$'%format, re.M)
buf = ''
matched = 0
while 1:
c = self.input.read(1)
if not c: break
buf += c
g = patt.match(buf)
if g:
# matched, but there may be more to match, so don't break now
matched = 1
matchedGroup = g
elif matched:
# the first unmatch after a match, seek back one char and break now
self.input.seek(-1, 1)
break
if matched:
return tuple(eval(x) for x in matchedGroup.groups())
scanf = Pin(open('in', 'r')).scanf
print scanf('%d %d')
print scanf('%f %f')
醜いですが面白いでしょうか?
x, y = map(int, raw_input().split())
では、行全体を読んで、それを解析するために、正規表現を使用することができます。グループを使って興味のある部分を手に入れましょう。それ以外の場合は、そのようなコントロールが必要ない場合はstring.splitを使用してください。