My Drive

pythonchallenge #01 - string 함수 본문

writeup

pythonchallenge #01 - string 함수

sunnyeo.park 2014. 11. 28. 16:12

# 첫 번째 문제

K를 M으로, O를 Q로, E를 G로,

알파벳이 2칸씩 당겨졌음을 알 수 있다.

A는 C, B는 D, C는 E, ....



위의 규칙을 가지고 보라색의 알아볼 수 없는 글씨를 알아 볼 수 있게 해야 된다.

개인의 생각에 따라 코딩은 다양하게 나올 듯 싶다. 나는 아래와 같이 코딩했다.


그리고 결과를 보고 string.maketrans()를 이용하라는 데로 다시 짜보았다.


소스는 아래와 같고, 이를 url에 적용도 해보았다.


http://www.pythonchallenge.com/pc/def/ocr.html

위와같이 url을 바꿔주면 다음단계로 넘어간다.


※ 문자열 정리

참고자료 : https://docs.python.org/2/library/string.html

1. String 상수

string.ascii_lettersabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 소문자/대문자

string.ascii_lowercaseabcdefghijklmnopqrstuvwxyz    소문자

string.ascii_uppercaseABCDEFGHIJKLMNOPQRSTUVWXYZ    대문자

string.digits0123456789    숫자

string.hexdigits : 0123456789abcdefABCDEF    16진수

string.letters : abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ    소문자/대문자

string.lowercase : abcdefghijklmnopqrstuvwxyz    소문자

string.octdigits : 01234567     8진수

string.punctuation : !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~    특수문자

string.printable : 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*

+,-./:;<=>?@[\]^_`{|}~ 모든문자(수/소문자/대문자/특수문자)

string.uppercase : ABCDEFGHIJKLMNOPQRSTUVWXYZ     대문자

string.whitespace공백

2. String 함수

string.capwords(s[, sep])               문자열 내 단어들의 첫글자를 대문자로 변환

string.maketrans(from, to)              번역 테이블 생성 (위에서 사용)

string.atof(s)                                  float() 사용을 권함

string.atoi(s[, base])                      int() 사용을 권함

string.atol(s[, base])                      long() 사용을 권함

string.capitalize(word)                    첫글자만 대문자로 변환

string.expandtabs(s[, tabsize])       탭(\t) 크기를 지정

string.find(s, sub[, start[, end]])    탐색 : offset을 리턴 (없으면 -1리턴)

string.rfind(s, sub[, start[, end]])   탐색 : offset을 리턴 (뒤쪽부터 탐색)

string.index(s, sub[, start[, end]])  탐색 : offset을 리턴 (없으면 오류)

string.rindex(s, sub[, start[, end]]) 탐색 : offset을 리턴 (뒤쪽부터 탐색)

string.count(s, sub[, start[, end]])  탐색 : 개수 리턴

string.lower(s)                                소문자로 변환

string.split(s[, sep[, maxsplit]])      문자열을 분리

string.rsplit(s[, sep[, maxsplit]])     문자열을 분리 (뒤쪽부터 처리)

string.splitfields(s[, sep[, maxsplit]])  split()과 동일

string.join(words[, sep])                 문자열로 결합

string.joinfields(words[, sep])         join()과 동일

string.lstrip(s[, chars])                   문자열에서 제거 (왼쪽)

string.rstrip(s[, chars])                   문자열에서 제거 (오른쪽)

string.strip(s[, chars])                    문자열에서 제거

string.swapcase(s)                         대문자는 소문자, 소문자는 대문자로 변환

string.translate(s, table[, deletechars])    번역 테이블로 변환 (위에서 사용)

string.upper(s)                               대문자로 변환

string.ljust(s, width[, fillchar])         왼쪽에 맞춤

string.rjust(s, width[, fillchar])         오른쪽에 맞춤

string.center(s, width[, fillchar])      중간에 맞춤

string.zfill(s, width)                         0으로 맞춤

string.replace(s, old, new[, maxreplace])    문자열 변경 (대체)


자세한 예제는 아래 참고



'writeup' 카테고리의 다른 글

pythonchallenge #03  (0) 2014.11.30
pythonchallenge #02 - 파일 입출력  (0) 2014.11.28
pythonchallenge #00 - 연산자  (0) 2014.11.28
webhacking #58  (0) 2014.11.13
webhacking #42  (0) 2014.11.13
Comments