Q.

[Python] Let's python 7장 예제

yul_S2 2022. 11. 4. 08:24
반응형

문1)
<emil 양식 처리조건>
아이디 : 첫자 영문소문자, 단어길이 4자이상
호스트이름 : 영문소문자 시작, 단어길이 3자이상
최상위 도메인 : 영문소문자 3자리 이하
정규표현식 기본패턴 : '메타문자@메타문자.메타문자'

 

email = """hong@12.com
you2@naver.com
12kang@hanmail.net
kimjs@gmail.com"""

from re import findall, match
for e in email.split(sep='\n') :
    result = match('^[a-z]\\w{3,}@[a-z\\w{2,}.[a-z]\\w{2,}',e)
    if result :
        print(e)                                  

# <출력>
# you2@naver.com
# kimjs@gmail.com

 

 

 

문2)
emp 변수를 이용하여 사원의 이름만 추출
출력 names = ['홍길동','이순신','유관순']

 

from re import findall,sub
emp = ["2014홍길동220", "2002이순신300", "2010유관순260"]

def name_pro(emp):
    emp_re=sub('[0-9]','',emp)
    emp_re2 = ' '.join(emp_re.split())
    return emp_re2

names = [name_pro(emp) for emp in emp]
print('names=',names)
# <출력> names= ['홍길동', '이순신', '유관순']

 

 

문3)
 '입사년도이름급여'순 => emp 변수를 이용하여 사원의 이름만 추출
출력  < 전체 사원 급여 평균 : 260 >

from re import findall,sub
from statistics import mean
emp = ["2014홍길동220", "2002이순신300", "2010유관순260"]

def pay_pro(emp):
        emp_re = sub('[가-힣]','',emp)
        emp_re2 = sub('[0-9]{4}','',emp_re)
        return emp_re2

pays_mean = [int(pay_pro(emp))for emp in emp]
avg = mean(pays_mean)
print('전체 사원의 급여 평균:', avg)

# <출력> 전체 사원의 급여 평균: 260

 

문4)
'입사년도이름급여'순 => emp 변수를 이용하여 사원의 이름만 추출
출력
전체 급여 평균 : 260
평균 이상 급여 수령자
이순신 => 300
유관순 => 260

from re import findall,sub
from statistics import mean
emp = ["2014홍길동220", "2002이순신300", "2010유관순260"]
import re
name = [re.findall('[가-힣]{3}',a)for a in emp]
name2 = [a[0]for a in name]

def pay_pro(emp):
        emp_re = sub('[가-힣]','',emp)
        emp_re2 = sub('[0-9]{4}','',emp_re)
        return emp_re2

pays_mean = [int(pay_pro(emp))for emp in emp]
avg = mean(pays_mean)
print('전체 사원의 급여 평균:', avg)
print('평균이상급여수령자')
for a in range(len(emp)):
    if  pays_mean[a] >= avg :
        print(name2[a],'=>', pays_mean[a])
        
# <출력>
# 전체 사원의 급여 평균: 260
# 평균이상급여수령자
# 이순신 => 300
# 유관순 => 260

 

문5)

texts = ['AFAB54747,asabag?','abTTa $$;a12:2424.', 'uysfsfA,A124&***$?']에서

출력

['afabasabag','abttaa','uysfsfaa']

 

from re import findall, sub
texts = ['AFAB54747,asabag?','abTTa $$;a12:2424.', 'uysfsfA,A124&***$?']

def clean(text) :
    text_re1 = text.lower()
    text_re2 = sub('[0-9]','',text_re1)
    text_re3 = sub('[,.?!:;]','',text_re2)
    text_re4 = sub('[@#$%^&*()]','',text_re3)
    text_re5 = ''.join(text_re4.split())
    return text_re5
texts_result=[clean(text) for text in texts]
print(texts_result)

# <출력> ['afabasabag', 'abttaa', 'uysfsfaa']

 

 

 

반응형