2017-10-13 13 views
-3
import re 
time = input() 
if re.match('^[1-2][0-9][:][0-9]{2}$',time): 
    print('Late') 
else: 
    print('Ok') 

14시 30 분, 12시 49 분 등 여러 가지 타이밍이있는 프로그램에서 작업하고있었습니다. 사용자가 입력 한 범위 (입력 범위는 4에서 9999까지입니다)는 같은 줄에 각각 사이에 공백이 있습니다. 문제는 그가 입력의 수를주지 않는다는 것이다. 그는 그가 끝날 때까지 타자를 친다. 그래서 10 시가 넘은 타이밍 수를 얻는 방법. 10:01에서 말합니다.사용자가 파이썬으로 완성 될 때까지 같은 줄에 여러 입력 제공

내가 추가 한 코드는 시간이 10시 이상인지 여부 만 보여줍니다. 그것은 단일 입력에 대해서도 마찬가지입니다. 나는 여러 입력을 제공하고 모든 입력을 한 줄에 입력해야하는 방법을 알아 냈습니다.

+0

지금까지 해보신 것은 무엇입니까? – Neo

+0

잘 나는 타이밍이 10:00 이상 10:00 이상인지 여부를 읽을 수 있었다. split()을 사용하여 한 줄에 여러 입력을주는 방법을 알고 있습니다. 하지만 그들을 읽는 법을 모르겠다 –

+0

가져 오기 시간 = 입력() re.match ('^ [1-2] [0-9] [:] [0-9] {2} $'인쇄 ('확인') –

답변

0

목록 이해를 사용할 수 있습니다.

input().split은 문자열 목록을 반환합니다.

[time for time in input.split() if re.match('^[1-2][0-9][:][0-9]{2}$',time)]은 RegEx와 일치하는 input.split()에서 문자열 목록을 반환합니다.

len([time for time in input.split() if re.match('^[1-2][0-9][:][0-9]{2}$',time)])은 이러한 문자열의 수를 반환합니다.

+0

일했습니다. 하지만 실제로 저는 파이썬을 최근에 배우기 시작했습니다. 그래서 나는 그것을 이해하지 못했다. 그러나 그것은 효과가있었습니다. –

+0

일반적으로 목록 이해력 및 목록을 읽습니다. – Neo

+0

괜찮습니다. 이 –

관련 문제