LiJell's 성장기

02.python_02_함수와 메서드 본문

Bigdata/파이썬_Python

02.python_02_함수와 메서드

All_is_LiJell 2021. 12. 15. 17:38
반응형

Modified on Wed Dec 29

"""
Created on Wed Dec 15 11:24:56 2021

@author: hanju
"""

#함수와 메소드
#함수: 함수(대상)
#메서드: 대상.메소드

#대소 치환

v1= 'abcde' #string 문자
v1.upper() #대문자 치환
'ABCDE'

'ABCDE'.lower()
'abcde'

'abc def'.title() # camel 표기법 (단어의 첫글자만 대문자로 표시)
'Abc Def


#색인(index) (문자열 추출)

'abcd'[0] #0번째 추출
'a'

'abcd'[-2] # 0  1  2  3
'c'        # a  b  c  d
           #-4 -3 -2 -1

'abcd'[0:3] # 0번째에서 2번째까지 추출
'abc'


# ex) '031)345-0834' 에서 지역번호만 추출

vtel = '031)345-0834'
vtel [0:3]


# 문자열의 시작, 끝 여부 확인
# v1.startswith(prefix, #시작 값 확인 문자
#               start,  #확인할 시작 위치
#               end)    #확인할 끝 위치

v1
'abcde'

v1.startswith('b') # v1은 b로 시작하는가?
False

v1.startswith('b',1) # v1의 1번 위치에서 부터 b로 시작하는가?
True

v1[1:].startswith('b') # v1의 1 번 위치에서부터 끝까지를 범위로 하는 str은 b로 시작하는가?
True


# v1.endswith(suffix,
#             start,
#             end)

v1     #위에 있는 startwith과 원리가 같다.
'abcde;

v1.endswith('e')
True

v1.endswith('E')
False



# 앞 뒤 공백 또는 문자 제거

'abc' == 'abc'
' abc '.strip() #양쪽 공백 제거
'abc'

'abc ' . strip('a') #양쪽 문자 제거. 공란일 때는 공란이 입력되어 공란이 제거되고 문자를 입력하면 문자가 제거되는 듯 함
'bc  '

'abaca'.strip('a') # 양족 문자 제거 (중간 글자 삭제 불가)
'bac'

' abcd'.lstrip() # 왼쪽 공백 또는 글자 제거 
'abcd'

' abcd '.rstrip() # 오른쪽 공백 제거
' abcd'


#치환
# 'abcabc'.replace(old,  #찾을 문자열
#                  new)  #바꿀 문자열 

'abcabc'.replace('a', 'A')
'AbcAbc'

'abcabc'.replace('ab', 'AB')
'ABcABc

'abcabc'.replace('ab', '')
'cc'


# 문자열 정리
# v1.split(sep) # 분리 구분기호

'a/b/c/d'.split('/')    # split한 것을 list로 반환
['a', 'b', 'c', 'd']

'a/b/c/d'.split('/')[1] #split한 것의 list 중에서 1번 위치 값 반환
'b'                     # str로 반환

'a/b/c/d'.split('/')[0:1] #split한 것 중에서 0번부터 1번까지 추출
['a']                     # list로 반환


# 위치값 리턴
# 'abcd'.find(sub,   # substitute 위차값을 찾을 대상
#             start, #찾을 위치 (시작점)
#             end)   #찾을 위치 (끝점)

v1
'abcde'

v1.find('b')
1           # 1번 위치에 있다는걸 반환



# ex. 전화번호에서 지역번호 추출하려할 때 ')' 위치를 확인해서 그 이전까지 추출하세요.

vtel
'031)345-0834'

vtel.find(')')
3

vnum= vtel.find(')')
vtel[0:3]
vtel[0:vnum] # 세 값 모두 '031' 반환
vtel[:vnum]


# 포함 횟수

'abcabcabc'.count('a')
3                       # a가 3개 있다고 반환



# 형(type) 확인

v1
'abcde'

type(v1)       #데이터 타입 확인
str

v1.isalpha()   # 문자 확인
True

v1.isnumeric() # 숫자 확인
False



#대소문 확인

v1.isupper()
False

v1.islower()
True



# 문자열 결합

'a' + 'b'
ab



# 문자열 길이

len(v1)
5

3/len(v1)
0.6       # 3/5



# 연습해 볼까요?

vname='lijell'
vemail='hanjukim0922@gmail.com'
jumin = '920922-111111'

# 1. 이름의 두번째 글자가 m인지 여부 확인
vname[1]=='m'
False
vname[1]=='i'
True

# 2. vemail에서 이메일 아이디만 추출
vemail
'hanjukim0922@gmail.com'

vemail.find('@')
12

vnamenum= vemail.find('@')

vemail[:vnamenum]    #vemail에서 0부터 vnamenum까지, 즉 12번 위치까지 추출
'hanjukim0922'    

# 3. 주민번호에서 남자인지 확인 
jumin[7]== '1'
True

jumin.split('-')[1][0] == '1' # split으로 나눠 생긴 리스트 값 요소 두개 중 1번위치한 값의 0번째 위치는 1인가
True

jumin.split('-')[1] #'111111' #split으로 나눠 생긴 리스트 값 요소 두개 중 1번 위치한 값
jumin.split('-')[0] #'920922' # 위와 같고 0번에 위치한 값
jumin.split('-')[1][0] # 9220922-111111 -을 기준으로 순서를 0과 1로 됐을 때 [1] 의 [0]번째가 선택

list(jumin.split('-'))
#['920922', '111111']

 

반응형

'Bigdata > 파이썬_Python' 카테고리의 다른 글

06.python_str_method  (0) 2021.12.20
05.python_numpy  (0) 2021.12.15
04.python_def_lambda_map  (0) 2021.12.15
03.python_conditional_statements_loop  (0) 2021.12.15
01.python_01_변수와 리스트  (0) 2021.12.14
Comments