2014-12-31 4 views
0
내 코드는 숫자의 라인을 읽고 세 개의 0을 입력하면 읽기 중지 뭔가 같이 만들고 싶어

:. 특정 줄까지 읽는 방법?

1231343 
13242134 
. 
. 
(more lines of numbers) 
. 
. 
0 0 0(end of the line) 

내가 작동하지 않았다 분명이 같은 일을하지만, 시도 첫 줄 앞에 줄이 선언되지 않았기 때문입니다.

while line != "0 0 0": 
    line = raw_input() 

올바른 트랙에도 있습니까? 아니면 다른 것을 사용해야합니까?

+1

그래서'whil 바로 전에'line = None'을 추가하지 마십시오. e'? –

+0

코드가 저에게 효과적입니다. –

+0

오, 내가 그 일을 할 수 있었다고 생각합니다 : p –

답변

6

무한 루프를 사용하고, 사용 break statement를 조건이 충족되면 루프에서 얻을 수에 대한 방법 :

while True: 
    line = raw_input() 
    if line == '0 0 0': 
     break 
    # do something with `line` 

또는 감시 값 iter를 사용 : 당신을 가정

for line in iter(raw_input, '0 0 0'): # will keep call `raw_input` until meet 0 0 0 
    # do something with `line` 
+0

정말 고마워요! –

+0

확실히'iter'는 완벽한 해결책입니다. – jamylak

+0

@jamylak,'raw_input'은 후행 줄 바꿈을 제거합니다. – falsetru

1

읽고 파일에서

for line in open('path to file'): 
    if line.strip() == '0 0 0': 
     break 
+0

OP가'raw_input'을 사용하고 있다고 생각하기 때문에 주석을 남길 것입니다 : stdin에서 읽는 것. – falsetru

+0

IOW,'open ('path to file')'은'sys.stdin'이어야합니다. – falsetru

관련 문제