# 세미나 자료를 위한 프로그램 제작
# 0,0 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9
# 0 1 2 3 4 5 6 7 8 9


# 입력된 문자열 에 a-z 가 포함이 되지 않음을 체크한다. 포함이 되었을 경우 -1 을 반환하며 잘못된 문자열임을 알려준다.
# 0~ 9 가 정상적으로 포함되어있을시에는 해당 문자열열 그대로 반환 한다.
# 알파벳 유효성 검사
def rrn_parsing(rrn):
alpha_sum = 0
parsing = "qwertyuiopasdfghjklzxcvbnm"
alphabet_list = []
i = 0
j = 0
z = 0
# 알파벳 리스트 추가
while i < 26:
alphabet_list.append(parsing[i].lower())
i = i + 1
# 알파벳 소문자 서칭
alphabet_list.sort()

# print("alphabet_list {0}".format(alphabet_list))
# parsing before
print("Input RRN ", rrn)
while j < 26:
alpha_sum = alpha_sum + rrn.count(alphabet_list[j])
# print("InPut RRN {0} counting alpha {1}".format(rrn, alphabet_list[j]))
j = j + 1
# print("print alpha_sum {0}".format(alpha_sum))

# 알파벳 대문자 서칭 ( 알파벳 리스트 전부 제거 )
i = 0
j = 0
while i < 26:
alphabet_list.pop()
i = i + 1

i = 0
# 대문자 셋팅
while i < 26:
alphabet_list.append(parsing[i].upper())
i = i + 1
# 대문자 서칭
while j < 26:
alpha_sum = alpha_sum + rrn.count(alphabet_list[j])
j = j + 1

if alpha_sum > 0:
return 0
if alpha_sum == 0:
return 1


# 주민 등록번호 유효성 검사
def rrn_len(rrn):
true_or_false = 0
check_num=['0','1','2','3','4','5','6','7','8','9']
check_sum = 0
# parsing before
# print("parsing before ", rrn)
rrn_parsing = rrn.replace(" ", "")
# print("parsing after ",rrn_parsing)
# parsing after
i=0
while i<10:
# 0 = 0 + 0 갯수
check_sum = check_sum + rrn.count(check_num[i])
i = i + 1
if check_sum == 13:
print("RRN is Success ", check_sum)
true_or_false = 1
if check_sum < 13:
print("RRN is Failed ", check_sum)
true_or_false = 0
return true_or_false


# 유효성 검사 반환값에 대한 Split 함수
def rrn_regular_expression_parsing_msg(rrn):
return rrn


# 유효성 검사
def rrn_regular_expression(rrn):
# char_checksum
if rrn_parsing(rrn) == 0:
return "문자열이 포함되어있습니다."
if rrn_len(rrn) == 0 :
return "숫자가 13장이 넘습니다."
return rrn


# 12개
RRN_true = "11111111111111"
RRN_false = "90 1 0 2 7 1 1 5 6 0 2 5"
RRN_char = "abcde"
RRN_Upper = "ABCDEF"
RRN_Count = 13
i = 0
# 0~ 12 까지 11번까지가 11
# print(RRN_false[12]) 5가 반환 됩니다.

print("*"*60)
print("*"*24 + "Python Start" + "*"*24 )
print("*"*60)


# a-z 문자열 삽입
print(rrn_regular_expression(RRN_Upper))
# 성공
#print(rrn_regular_expression(RRN_false))
# 14자
#print(rrn_regular_expression(RRN_true))



'개발일지(Language) > Python(3.x)' 카테고리의 다른 글

9 - 쉬어가기(재귀함수)  (0) 2016.07.27
7 - 문자열 포매팅(발전)  (0) 2016.07.26
6 - 문자열 포매팅(기본)  (0) 2016.07.26
5 - 문자열 과 자료형  (0) 2016.07.25
4 - 연산자  (0) 2016.07.25

+ Recent posts