constWORLDant

[진짜 1도 모르는 PYTHON] 문자열 출력 본문

0x08 PYTHON_Tutorial

[진짜 1도 모르는 PYTHON] 문자열 출력

data type ConS_tanT 2017.12.16 23:05

#-*- coding:utf-8 -*-

'''

Hello

Baekjoon

Online Judge

'''


a = raw_input()

b = raw_input()

c = raw_input()

#split를 하게 되면 구분자가 포함된다 ~ 

print a

print b

print c


백준에서 원하는 입력 조건 수립

#-*- coding:utf-8 -*-

#PYTHON 에서 정규표현식(정규식)을 사용하려면 re모듈이 필요하다

import re

#테스트용으로 시간을 딜레이 시키기 위해 사용 

import time

'''

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.


Hello

Baekjoon

Online Judge


'''


'''

공부한 것 : 정규식 

이유 : "알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다"를 만족시키기 위함

     [a-zA-Z0-9]


[0-9] 또는 [a-zA-Z] 등은 무척 자주 사용하는 정규 표현식이다. 이렇게 자주 사용하는 정규식들은 별도의 표기법으로 표현할 수 있다. 다음을 기억해 두자.


\d - 숫자와 매치, [0-9]와 동일한 표현식이다.

\D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.

\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.

\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.

\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9]와 동일한 표현식이다.

\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9]와 동일한 표현식이다.

대문자로 사용된 것은 소문자의 반대임을 추측할 수 있을 것이다.


'''



a = raw_input()

b = raw_input()

c = raw_input()


p = re.compile('[a-zA-Z0-9]') #pattern 생성


m = p.match(a)

print (m) #만약 정규식에 성립한다면 무슨 주소를 출력시킨다 , 성립하지않으면 None 출력 됨

time.sleep(2) #2 seconds


# 여기까지 순수하게 문자열을 입력 받음 

# 문자열의 라인수(==문자열 길이)를 체크하는 함수 len

if ( (len(a)>100) and (len(b)>100) and (len(c)>100) ):

print 'wrong!'

else:

print a

print b

print c

#split를 하게 되면 구분자가 포함된다 ~ 

#print a



이것도 아닌 것 같아서 재 수정 


#-*- coding:utf-8 -*-

#PYTHON 에서 정규표현식(정규식)을 사용하려면 re모듈이 필요하다

import re

#테스트용으로 시간을 딜레이 시키기 위해 사용 

import time

'''

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.


Hello

Baekjoon

Online Judge


'''


'''

공부한 것 : 정규식 

이유 : "알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다"를 만족시키기 위함

     [a-zA-Z0-9]


[0-9] 또는 [a-zA-Z] 등은 무척 자주 사용하는 정규 표현식이다. 이렇게 자주 사용하는 정규식들은 별도의 표기법으로 표현할 수 있다. 다음을 기억해 두자.


\d - 숫자와 매치, [0-9]와 동일한 표현식이다.

\D - 숫자가 아닌 것과 매치, [^0-9]와 동일한 표현식이다.

\s - whitespace 문자와 매치, [ \t\n\r\f\v]와 동일한 표현식이다. 맨 앞의 빈 칸은 공백문자(space)를 의미한다.

\S - whitespace 문자가 아닌 것과 매치, [^ \t\n\r\f\v]와 동일한 표현식이다.

\w - 문자+숫자(alphanumeric)와 매치, [a-zA-Z0-9]와 동일한 표현식이다.

\W - 문자+숫자(alphanumeric)가 아닌 문자와 매치, [^a-zA-Z0-9]와 동일한 표현식이다.

대문자로 사용된 것은 소문자의 반대임을 추측할 수 있을 것이다.


'''



a = raw_input()

b = raw_input()

c = raw_input()


p = re.compile('[a-zA-Z0-9]') #pattern 생성


m = p.match(a)

#print (m)

m2 = p.match(b)

#print (m)

m3 = p.match(c)

#print (m)


arr = m #None 이거나 이상한 주소거나

#None이라면 정규식에 포함되지 않는 것 

#print arr

arr2 = m2

arr3 = m3

#time.sleep(2) #2 seconds

print 'arr = ',arr

# 여기까지 순수하게 문자열을 입력 받음 

# 문자열의 라인수를 체크하는 함수 len

if ( (len(a)>100) and (len(b)>100) and (len(c)>100) ):

print 'wrong!'

if arr != "None": 

print 'correct!',a

else: #해당 a가 정규식에 포함 되지 않는 다면 이 문구가 출력되길 원함 하지만 지금 출력이 안됨 

print 'a sorry'

if arr2 != "None":

print 'correct!',b

else:

print 'b sorry'

if arr3 != "None":

print 'correct!',c

else:

print 'c sorry'


#split를 하게 되면 구분자가 포함된다 ~ 

#print a


이 코드에서 문제는 arr, arr2 , arr3에 문자열이 대입은 되는데 조건문에서 처리하질 못하고 있다. 

뭐가 문제일까.. 이러한 조건들 생각하지 않고 문제만 풀게 되면 이미 애초에 완료 된 상태인데.. 


0 Comments
댓글쓰기 폼