문자형

 

 

 

 

 

파이썬 문자형
문자형 중요!

 


문자형사용법


문자형중요성
문자형출력
이스케이프
멀티라인
문자형 연산
문자형 형 변환
인덱싱
문자열 함수
슬라이싱

 


# 문자열 생성

str1 = "I am Python."
str2 = 'Python'
str3 = """How are you?"""
str4 = '''Thank you!'''


# 문자열 출력

print(type(str1)) #<class 'str'>
print(type(str2)) #<class 'str'>
print(type(str3)) #<class 'str'>
print(type(str4)) #<class 'str'>



# 문자열 길이(공백포함 length)

print(len(str1)) #12
print(len(str2)) #6
print(len(str3)) #12
print(len(str4)) #10



# 빈 문자열

str_t1 = ''
str_t2 = str() #형 변환할 때처럼 str(object)를 호출해서 그 안의 값을 ()로 준다.

print(type(str_t1), len(str_t1)) #<class 'str'> 0
print(type(str_t2), len(str_t2)) #<class 'str'> 0



# 이스케이프 문자 사용

"""
참고 : Escape 코드

\n : 개행
\t : 탭
\\ : 문자
\' : 문자
\" : 문자
\000 : 널 문자
...

"""
print("I'm Boy") #I'm Boy
print('I\'m Boy') #I'm Boy

escape_str1 = "Do you have a \"retro games\"?"
escape_str2 = 'What\'s on TV?'


# 출력1
print(escape_str1) #Do you have a "retro games"?
print(escape_str2) #What's on TV?

# 탭, 줄바꿈
t_s1 = "Click \t Start!"
t_s2 = "New Line \n Check!"

# 출력2
print(t_s1) #Click 	 Start!
print(t_s2) #New Line 
            # Check!



# Raw String(역슬래쉬 자체를 신경쓰지 않는다. 있는그대로를 표시함)

raw_s1 = r'D:\Python\python3'
raw_s2 = r"\\x\y\z\q"


# Raw String 출력
print(raw_s1) #D:\Python\python3
print(raw_s2) #\\x\y\z\q



#멀티라인 입력
#역슬래쉬 사용


multi_str1 = """   #이렇게하면 정상적으로 출력 된다.
    문자열
    멀티라인 입력
    테스트
    """

multi_str1 =   #이렇게 입력하면 오류가 일어난다.
    """
    문자열
    멀티라인 입력
    테스트
    """


multi_str1 = \ #위 처럼하려면 역슬래쉬를 사용해야 정상적으로 출력이 된다.
    """
    문자열
    멀티라인 입력
    테스트
    """


#역슬래쉬로 끝나면 파이썬은 '이 다음에 어떤 변수를 바인딩하는구나'라고 인식한다. 

그래서 다음라인에 원하는 변수를 선언하면 된다.

 

또 다른 예시)
asdf= \
'dsadasd' \
'dsdsd' \

print(asdf) #dsadasddsdsd

 

 


# 멀티라인 출력

print(multi_str1)
#   문자열
#   멀티라인 입력
#   테스트


multi_str2 = \
    '''
    문자열 멀티라인
    역슬래시(\) \
    테스트
    '''
    
# 멀티라인(역슬래시) 출력

print(multi_str2)
#   문자열 멀티라인
#   역슬래시(\)     테스트

 

 

 



# 문자열 연산

str_o1 = "python"
str_o2 = "Apple"
str_o3 = "How are you doing?"
str_o4 = "Seoul Deajeon Busan Jinju"

print(3 * str_o1) #pythonpythonpython
print(str_o1 + str_o2) #pythonApple
print(dir(str_o1)) #(너무 길어서 생략)

print('y' in str_o1) #True
 #y라는 알파벳이 str_o1에 있냐고 물어보는 것
 #시퀀스형은 in연산자 사용이 가능하다.ex)list,str,tuple
 
print('n' in str_o1) #True
print('P' not in str_o2) #True

 

 



# 문자열 형 변환

print(str(66),type(str(66)))  # 66 <class 'str'>
print(str(10.1)) #10.1
print(str(True)) #True
print(str(complex(12))) #(12+0j)

 

 

 



# 문자열 함수(upper, isalnum, startswith, count, endswith, isalpha 등)

print("Capitalize: ", str_o1.capitalize()) #Capitalize:  Python 첫글자를 대문자로 바꿈
print("endswith?: ", str_o2.endswith("s")) #endswith?:  False 마지막글자가 s로 끝나냐?
print("join str: ", str_o1.join(["I'm ", "!"])) #join str:  I'm python!
print("replace1: ", str_o1.replace('thon', ' Good'))#replace1:  py Good
print("replace2: ", str_o3.replace("are", "was")) #replace2:  How was you doing?

print("split: ", str_o4.split(' '))  #split:  ['Seoul', 'Deajeon', 'Busan', 'Jinju']
#공백을 기준으로 쪼갠다.
#각각의 단어를 하나하나 리스트 배열 형태로 만듬 

print("sorted: ", sorted(str_o1))  # sorted:  ['h', 'n', 'o', 'p', 't', 'y'] list 형 변환. 순서가 정렬이 돼서 나옴
print("reversed1: ", reversed(str_o2)) #reversed1:  <reversed object at 0x00000207A4009F10>
#reversed 함수는 reversed 객체를 return하기 때문에 위와같이 나온다.

print(sorted(str_o2,reverse=True)) #['p', 'p', 'l', 'e', 'A'] reverse=True 내림차순

print("reversed2: ", list(reversed(str_o2))) #reversed2:  ['e', 'l', 'p', 'p', 'A']



# 반복(시퀀스) 설명

im_str = "Good Boy!"

print(dir(im_str))  # __iter__ 있으면 시퀀스. 즉, 반복할 수 있다는 것이다.

# 출력(반복문)
for i in im_str:  
    print(i)
    
G
o
o
d
 
B
o
y
!




# 슬라이싱(문자열은 시퀀스형이기 때문에 슬라이싱 처리를 할 수 있다.)

str_sl = 'Nice Python'

# 슬라이싱 연습
print(str_sl[0:3]) #Nic   0:3은 인덱스를 의미한다. 나오는건 3-1까지 나온다.
print(str_sl[5:])  #Python  5번째부터 끝까지 가져오라는 뜻. [5:11]과 같은 값
print(str_sl[:len(str_sl)]) #Nice Python   str_sl[:11] 처음부터 11까지
print(str_sl[:len(str_sl) - 1]) #Nice Pytho   str_sl[:11]
print(str_sl[:])  #Nice Python
print(str_sl[1:4:2]) #ie   세번째 인수는 단위를 의미한다.
print(str_sl[-4:-2]) #th  왼쪽에서는 0부터 오른쪽부터는-1부터 본다.
print(str_sl[1:-2])  #ice Pyth
print(str_sl[::-1]) #nohtyP eciN 처음과 끝을 가져오는데 순서는 오른쪽>왼쪽으로
print(str_sl[::2]) #Nc yhn 처음부터 끝까지 두 칸 간격으로 가져와리




# 아스키코드(또는 유니코드)

a = 'z'

print(ord(a)) #122 문자를 -> 아스키코드로
print(chr(122)) #z 아스키코드를 ->문자로

 

 

 

 

 

 

 

 

'Python > Today I learned' 카테고리의 다른 글

TIL#17 데이터타입(자료형)-튜플형  (0) 2021.05.14
TIL#16 데이터타입(자료형)-리스트형  (0) 2021.05.14
TIL#14 데이터타입(자료형)-숫자형  (0) 2021.05.14
TIL#13 변수  (0) 2021.05.13
TIL#12 Print()  (0) 2021.05.13

+ Recent posts