문자열 설명 2번째이자 문자열 함수에 대한 설명입니다.
먼저 문자열에서 사용가능한 함수에 대한 설명입니다.
문자열에서 어떤 함수를 사용할 수 있는지 알고싶다면 print(dir(str))으로 알아볼 수 있고
각 함수에 대한 설명은 help(데이터형.함수명)으로 알아볼 수 있습니다.
"""
집합형 자료형
1) 문자열
a. 문자열 생성 방법
b. 문자열 제공 함수 ==> dir(str) 확인 가능
* 함수 (function)
==> 데이터를 이용해서 특별한 기능(동작) 처리할 때 사용
* 특정 객체(데이터)의 함수 정보보기
dir(데이터) ==> 데이터가 가지고 있는 함수 정보 반환
#함수 사용 설명 보기
help(str.count)
c. 인덱싱 및 슬라이싱
d. 문자열 특징
"""
문자열 데이터에서 사용할 수 있는 함수는 이렇습니다. ( print(dir(str))으로 볼 수 있음 )
그리고 str에 존재하는 함수는 str.함수명()으로 사용 가능하며 str가 아닌 __builtins__에 존재하는 함수는 함수명(문자열/변수명)으로 사용 가능합니다. ( s.upper(), len(s) )
"""
str 데이터형에 존재하는 .없는 형태로 사용가능한 함수들 ==> len(" ")
'__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__',
'__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__',
'__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
str 데이터형에 존재하는 .있는 형태로 사용가능한 함수들 ==> " ".count(' ')
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map',
'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable',
'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex',
'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'
"""
시작 전에, 함수는 데이터형(클래스)이 갖고 있는 함수와 __builtins__와 같은 외부 패키지에 존재하는 함수로 나뉩니다.
__builtins__와 같은 외부 패키지에 존재하는 함수는 .없이, 함수명()로 사용을 하고
데이터형(클래스) 내부에 존재하는 함수는 변수명.함수명()으로 사용합니다.
"""
1) 함수형태
가. .없이 사용하는 함수 ==> __builtins__에 있는 함수는 .없이 그냥 사용
print(dir(builtins)) 이용하여 함수명을 확인할 수 있다.
len() : 길이 반환
id() : 주소값 반환
type() : 타입 반환
dir() : 구성 요소 (함수, ...) 반환
print() : 콘솔에 값 출력
input() : 표준 입력
str(), int(), bool(), list(), dict(), tuple(), set()
len(), id(), type(), print(), input(), dir()....
나. .와 함께 사용하는 함수 ==> __builtins__에 없는 함수
s.a함수() ==> s안에 있는 a() 함수를 사용
s위치에 올 수 있는 형태 => 데이터(값) 또는 값의 타입 = 값을 저장하는 변수가 일반적으로 자리함.
문자열 ==> 클래스명 (str)
정수 ==> 클래스명 (int)
실수 ==> 클래스명 (float)
논리 ==> 클래스명 (bool)....
사용방법 :
변수명.함수명()
2) 함수는 항상 클래스/패키지 안에 저장이 되어있다.
함수를 사용하려면 반드시 클래스 이름을 지정해야한다.
클래스 이름.함수명()
함수명(클래스 이름)
함수명의 정보를 보기 위해서 dir(변수명), dir(클래스명)
"""
그럼... 문자열의 함수들을 사용해보도록 하겠습니다.
1. 문자열의 길이 len(변수명/문자열)
2. 특정 문자의 갯수 변수명/문자열.count('특정 문자')
3. 대문자로 변경 변수명/문자열.upper()
4. 소문자로 변경 변수명/문자열.lower()
5. 대<->소문자 변경 변수명/문자열.swapcase()
6. 양쪽 공백 제거 변수명/문자열.strip()
7. 왼쪽 공백 제거 변수명/문자열.lstrip()
8. 오른쪽 공백 제거 변수명/문자열.rstrip()
9. 특정 문자 제거 변수명/문자열.strip('특정 문자')
10. 왼쪽 특정 문자 제거 변수명/문자열.lstrip('특정 문자')
11. 오른쪽 특정 문자 제거 변수명/문자열.rstrip('특정 문자')
12. 특정 문자 변경 변수명/문자열.replace('변경될 문자', '변경할 문자')
13. 특정 문자 시작 여부 변수명/문자열.startswith('특정 문자')
14. 특정 문자 종료 여부 변수명/문자열.endswith('특정 문자')
15. 문자로만 구성 여부 변수명/문자열.isalpha()
16. 숫자로만 구성 여부 변수명/문자열.isnumeric()
17. 영숫자로만 구성 여부 변수명/문자열.isalnum()
18. 특정 문자 위치 반환 변수명/문자열.find('특정 문자')
19. 특정 문자를 기준하여 재구분 변수명/문자열.split('특정 문자')
20. 문자열로 된 리스트를 특정문자 "특정문자".join(문자열 리스트)
를 이용하여 한 줄의 문자열로 묶어줌
21. 멤버십 연산자로 문자 여부 확인 가능 '확인하려는 문자' in "문자열"
#1. 문자열 함수
s = "sEquENce"
print("1. 문자열 길이:", len(s)) # 8 len(변수명)
print("1. 문자열 길이:", len("abcdefg")) # len("문자열")
result = len(s)
print("1. 문자열 길이:", result) # 8
print("2. 특정 문자의 갯수:", s.count('e')) # 변수 s에 저장된 문자 'e' 갯수를 카운트 변수명.count('문자')
print("3. 특정 문자의 갯수:", "elephant".count('e')) # "문자열".count('문자')
print("4. 대문자로 변경:", s.upper())
print("5. 소문자로 변경:", s.lower())
print("6. swap 변경:", s.swapcase()) # 대문자 -> 소문자, 소문자 -> 대문자
print("7. 공백 제거:")
print(" Hello ".strip()) # 양쪽 공백 제거
print(" Hello ".lstrip()) # 왼쪽 공백 제거
print(" Hello ".rstrip()) # 오른쪽 공백 제거
print("8. 특정 문자 제거:")
print("HHelHHloHH".strip('H')) # 양쪽 'H' 제거 가운데 글자는 해당이 안 됨. 오?~?
print("HHelHHloHH".lstrip('H')) # 왼쪽 'H' 제거
print("HHelHHloHH".rstrip('H')) # 오른쪽 'H' 제거
print("9. 특정 문자 변경:", "Hello".replace("H", "A"))
print("10. 특정 문자 시작 여부:", "Hello".startswith("H"))
print("10. 특정 문자 시작 여부:", "Hello".startswith("X"))
print("10. 특정 문자 종료 여부:", "Hello".endswith("o")) # 대소문자 구분
print("10. 특정 문자 종료 여부:", "Hello".endswith("x"))
print("11. 문자로만 구성여부:", "Hello".isalpha())
print("11. 문자로만 구성여부:", "Hello123".isalpha())
print("12. 숫자로만 구성여부:", "Hello123".isnumeric())
print("12. 숫자로만 구성여부:", "1234".isnumeric())
print("13. 특정 문자 위치 반환:", "Hello".find('e'))
print("14. 멤버십 연산자:", 'H' in 'Hello')
print("14. 멤버십 연산자:", 'a' in 'Hello')
print("15. 구분자 :", "홍길동/이순신/유관순".split(("/"))) # 리스트 반환
print("15. 구분자 :", "홍길동,이순신,유관순".split((","))) # 리스트 반환
print("15. 구분자 :", "홍길동;이순신;유관순".split((";"))) # 리스트 반환
# help(str.split)
print("16. join :", "과 ".join(["홍길동", "이순신", "유관순"])) # 문자열로 된 리스트
# help(str.join)
print("="*50)
음.. 워낙에 함수가 많아서.....
이렇게 포스팅할 생각이 아니었는데... 한 것도 없는데 시간은 시간대로 가고;;;;;
짧게 슬라이싱, 인덱스랑 같이 포스팅하려고 했는데....
나눠야겠습니다.
고롬... 다음엔 슬라이싱, 인덱싱으로 만나뵙겠습니다.
고롬 이만;;;
'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글
0901_2일차_Python08_리스트_설명_및_인덱싱_슬라이싱 (0) | 2020.09.04 |
---|---|
0901_2일차_Python08_문자열3_인덱싱_슬라이싱 (0) | 2020.09.04 |
0901_2일차_Python08_문자열_생성방법_특징 (0) | 2020.09.04 |
0901_2일차_Python08_멤버십연산자 (0) | 2020.09.04 |
0901_2일차_Python07_논리연산자 (0) | 2020.09.03 |
댓글