[파이썬] #4- 문자열
[파이썬] #4-연산, 문자열
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 19 19:58:38 2019
@author: ZZZPANDA
"""
#문자열 :하나이상의 문자들의 집합.
# 파이썬에서 변수명으로 str을 사용하면 안된다.
#1 쌍따옴표를 사용하는방법
str1 = "Hello Python 1"
print('str1 ->{}'.format(str1))
#2 작은따옴표를 사용하는 방법
str2 = 'Hello Python 2'
print('str2 ->{}'.format(str2))
#3 """ """를 사용하는 방법 -> 여러줄을 입력할때 사용
str3 = """Hello Python 3"""
print('str3 ->{}'.format(str3))
#4 ''' '''를 사용하는 방법 -> 여러줄을 입력할때 사용
str4 = '''Hello Python 4'''
print('str4 ->{}'.format(str4))
str5 = '''
Hello
Python
5
'''
print('str5->{}'.format(str5))
#개행문자 \n
str6 = "\nHello \nPython \n6"
print('str6->{}'.format(str6))
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 19 20:16:52 2019
@author: ZZZPANDA
"""
str1 = 'Hello '
str2 = "Python~!"
#문자열결합연산
msg = str1 + str2
print('msg->{}'.format(msg))
#파이썬은 무조건 문자열끼리 결합가능
num = 10 + 3
#str3 = num + str1 타입에러발생한다.
#TypeError: unsupported operand type(s) for +: 'int' and 'str'
print(type(num))
str3 = str1 + str1
#문자열의 동적생성
#외부의 값을 활용하여 문자열 생성
#서식문자 사용법
# %d(십진수) %f(실수) %c(문자) %s(문자열)
num = 13
str3 = "10 + 3 = %d"%num #%d :: 10진수
print(str3)
str3 = "%d + %d = %d"%(1,2,3)
print(str3) #1 + 2 = 3
#not all arguments converted during string formatting 에러발생
#str3 = "%d % %d = %d"%(10,5,0)
# %로 연산하는걸 서식문자로 사용하기위해서는 %%로 사용(에러나기때문)
str3 = "%d %% %d = %d"%(10,5,10%5)
print(str3)
#서식문자 자리수 제어
str3 = "%5d + %5d = %-3d"%(5,3,5+3)
str4 = "%5d + %5d = %3d"%(105,103,105+103)
print(str3)
print(str4)
str5 = "%f"%(10.1365)
print(str5)
str5 = "%.2f"%(10.1365) #소수점이하 2번째자리 반올림으로 만들어준다.
print(str5)
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 19 21:04:28 2019
@author: ZZZPANDA
"""
#문자열비교연산
#==연산자활용
str1 = "Hello"
str2 = 'Hello'
r = str1 == str2
print('str1 == str2 = {}'.format(r))
r = str1 is str2
print('str1 is str2 = {}'.format(r))
msg = 'Hello Python~!'
print('msg[0]->{}'.format(msg[0]))
print('msg[6]->{}'.format(msg[6]))
print('msg[13]->{}'.format(msg[13]))
#항상 마지막 인덱스를 원할때 -1
print('msg[-1]->{}'.format(msg[-1]))
print('msg[-2]->{}'.format(msg[-2]))
#문자열슬라이싱
#[시작인덱스:종료인덱스]
#종료인덱스는 포함되지 않는다.
part = msg[0:5]
print(part)
print(msg[6:])
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 19 21:41:26 2019
@author: ZZZPANDA
"""
msg = "Hello Python~!"
# 문자열의 길이를 반환하는 len 함수
print("msg 문자열의 길이 : {}".format(len(msg)))
print("msg 문자열의 마지막 글자 : {}".format(msg[len(msg)-1]))
# 문자열 내부에 특정 문자열의 개수 확인
# count 메소드
msg_count = msg.count('o')
print("msg_count : {}".format(msg_count))
str1_count = "gggggggggg".count("g")
print("str1_count : {}".format(str1_count))
# 특정문자열의 위치확인
# find 메소드
msg_find = msg.find("Python")
print("msg_find : {}".format(msg_find))
#msg 에서 "Python"만 찾기
find_str = "Python"
print(msg[msg.find(find_str):msg.find(find_str)+len(find_str)])
#공백제거
msg = " Hello Python !!! "
print(msg.lstrip()) #문자열의 좌측 공백을 제거 lstrip 메서드
print(msg.rstrip()) #문자열의 좌측 공백을 제거 rstrip 메서드
print(msg.strip()) #문자열의 양측 공백을 제거 strip 메서드
print(msg.strip(' H!')) #문자를 넣으면 해당 문자포함 제거
#문자열치환 : replace(old, new, count(바꿀갯수)) 메서드
print(msg.replace(" ", "", 3)) #공백제거
print(msg.replace("Python", "javascript")) #변환
value_s = "$1,150.55" #1150.55로
print(value_s.replace("$", "").replace(",", ""))
print(value_s.lstrip("$").replace(",",""))
# -*- coding: utf-8 -*-
data = "abcdefg"
delim = ","
#join 메소드 : 리스트, 문자열을 해당 문자열로 합친다.
r = delim.join(data)
print('r->{}'.format(r))
#split 메소드 : arg1 매개변수로 문자열을 리스트로 만든다.
#매개변수를 지정하지 않으면 공백을 기준으로 분할한다.
r = r.split(delim)
print('r->{}'.format(r))
r = "".join(r);
print('r->{}'.format(r))
#파이선 변수특징 ;7
num1, num2 = 1, 2
idNumber = '870519-2815654'
year = idNumber[0:2]
month = idNumber[2:4].lstrip("0")
day = idNumber[4:6]
#남자면 False, 여자면 True
gender = idNumber.split("-")[1][0] == '2'
print("year:{0}, month:{1:>2}, day:{2:>2}, gender:{3}".format(year, month, day, gender))
#간단형변환
numYear = int(year)
numMonth = int(month)
print(type(numYear))
print(type(numMonth))
num1, num2 = 10, 20
msg =str(num1) + "MM" + str(num2)
print(msg)
msg = f'{num1} + {num2} = {num1+num2}'
print(msg)
[기억, 주의할점]
- 파이썬은 문자열 사이에서만 결합이 가능하다. TypeError 발생한다.
- """, ''' 으로 여러줄의 문자열을 작성할수 있다.
- 변수로 str 을 사용하면 안된다.
- 서식문자를 사용할수있다.
- %d(십진수) %f(실수) %c(문자) %s(문자열)
- %로 연산하는걸 서식문자로 사용하기위해서는 %%로 사용(에러나기때문)
- 서식문자 자리수 제어 %5d (다섯칸으로 맞춘다- 오른쪽정렬)
- format() 메서드 기능이있다.
- 문자열을 바로 배열로 사용해서 인덱스로 해당 문자를 찾을수 있다.
- == 비교 할때 is 로도 가능하다.
댓글
댓글 쓰기