본문 바로가기
Python

python에는 scanf()가 없다.

by irmus 2008. 3. 24.
TODO :
   ( nnn, nnn, nnn)\n
   input stream에서 위와 같은 텍스트 데이터가 계속해서 들어온다.
   이를 line 단위로 자르고, 각 숫자들을 뽑아내서 처리해야 한다.
   예 : ( 123, 456, 789)\n 이 들어오면 [123, 456, 789]을 만들어내면 된다.

python에는 C에서 처럼 간단한 input string을 편하게 파싱할 수 있는 수단이 없다.
대신 강력한 기능의 regular expression parser가 있다. -> module re

하지만 regular expression을 잘 모른다면 대략 난감. <- 현재 irmus의 상황

구글에서 뒤져보니 100% 동일한 질문글이 올라와 있어서 대략 해결;;
참고 : http://www.thescripts.com/forum/thread20125.html



요약하면...
import re

s = '( 123, 456, 789)'
print map(int, re.findall(r'(\d+)', s))