str1 = 'He said "I love you"'
str2 = "It's so beautiful"
str3 = """My name is "goorm" """
str4 = '''It's an apple'''
print(str1) # He said "I love you"
print(str2) # It's so beautiful
print(str3) # My name is "goorm"
print(str4) # It's an apple
str = "Hello "
num = 5
result = str * num
print(result)
# Hello Hello Hello Hello Hello
a = "Hello goorm!"
b = a[-1] + a[-2] + a[-3]
c = a[-0]
print(b) # !mr
print(c) # H
문자열의 각 문자를 인덱스 접근으로 바꿀 수는 없다. 문자열 자료형은 Immutable 타입
으로 한 번 초기화하면 사용자 임의로 값을 바꿀 수 없다. 예를 들어, str = "Hello"
일 때 str[2] = "u"
라는 코드를 통해 str을 Heulo
로 바꿀 수 없다.
단어 그대로 지정 범위만큼 데이터 요소를 잘라내는 기능. var[0:5]
라고 작성하면 인덱스값 0부터 4까지
잘라낸다.
a = "Hello goorm!"
b = a[0:5]
print(b) # Hello
b = a[:5]
c = a[5:]
print(b) # Hello
print(c) # goorm!
b = a[0:-5]
c = a[6:-11]
print(b) # Hello g
print(c) # 빈칸 반환
city = "seoul"
today = 12
day = "화요일"
temperature = 26
announcement = "%s의 %d일 %s 기온은 %d도 입니다." %(city, today, day, temperature)
print("%s의 %d일 %s 기온은 %d도 입니다." %(city, today, day, temperature)) #1번 방법
print(announcement) #2번 방법
name = "goorm"
age = 25
height = 181.523456
print("저의 이름은 %s입니다." %name)
print("저는 %d살입니다." %25)
print("제 나이는 %d살입니다." %age)
print("제 나이는 %s살입니다." %age)
print("제 나이는 %.2f살입니다." %age)
print("저의 키는 %fcm입니다." %height)
print("저의 키는 %.2fcm입니다." %height)
print("저의 키는 %dcm입니다." %height)
print("저의 성은 '%c'입니다." %"남")
print("저의 나이는 16진수로 표현하면 %x, 8진수로 표현하면 %o입니다." %(age, age))
print("%10d %010d" %(10, 10))
#'김구름'을 포함하여 8칸의 공간 발생 -> 공백 5칸 + 김구름 3칸
print("%8s %8d %8s" %("김구름", 6, "컴퓨터공학"))
print("%-8s %-8d %-8s" %("김구름", 6, "컴퓨터공학"))
"%-(폭)d"
형식으로 입력%
키워드 포매팅의 단점: 포맷코드 뒤에 입력한 변수가 꼭 1대1 대응을 해야한다. 이 단점을 보완할 수 있는 포매팅법은 format()
함수를 사용해 인덱스값, 혹은 변수명으로 바로 대입하는 것
"문자열.format(요소1, 요소2...)"
#인덱스로 받아오기
name1 = "김구름"
name2 = "박에듀"
age = 25
height = 181.123
print("저의 이름은 {2}입니다. 그리고 나이는 {1}살이고 키는 {0}cm입니다.".format(height, age, name1))
print("{1}의 나이:{0}, {2}의 나이: {0}".format(age, name1, name2))
#변수명과 혼용해 받아오기
print("저의 이름은 {1}입니다. 그리고 나이는 {age}살이고 키는 {0}cm입니다. 제 가장 친한 친구는 {name}입니다.".format(181.12, "김구름",height = 181.123, age = 25, name = "박에듀"))
format() 함수를 사용해 출력 형식을 지정할 수도 있다.
print("{length: >10d}".format(length = 30))
# 공백문자: (공백) ,정렬: 오른쪽 정렬, 폭: 10
# 순서대로 입력해야하고 생략 가능
# | 30|
print("{0:0^10}".format("goorm"))
# 공백문자: 0 ,정렬: 가운데 정렬, 폭: 10
# 순서대로 입력해야하고 생략 가능
# |00goorm000|
print("{height:!>13.2f}".format(height = 181.24363))
# 공백문자: ! ,정렬: 오른쪽 정렬, 폭: 13, 소수점 2자리 표시
# 순서대로 입력해야하고 생략 가능
# |!!!!!!!181.24|
f
문자열 포매팅 (f-string)f 문자열 포매팅은 3.6버전에서 새로 사용할 수 있게 된 포매팅 방식이다. format과 사용 방법이 크게 다르지 않다. 문자열 앞에 f
만 붙여주면 된다.
name = "김구름"
age = 25
height = 181.123
print(f"저의 이름은 {name}입니다. 그리고 나이는 {age+10}살이고 키는 {height:!^10.2f}cm입니다.")
# 저의 이름은 김구름입니다. 그리고 나이는 35살이고 키는 !!181.12!!cm입니다.
count()
전달 인자의 문자 개수를 반환
find()
함수의 대상이 되는 문자열에 전달 인자와 같은 문자가 있는지 찾고, 그 문자가 처음 발견된 인덱스 값을 반환. 만약 전달 인자가 문자열 내에 없다면 -1 반환.
index()
find()와 같은 역할을 수행하나, 전달 인자가 문자열 내에 없으면 오류 발생
join()
전달 인자 사이에 함수의 대상이 되는 문자열을 삽입
(ex. ",".join("goorm")
-> "g, o, o, r, m")
upper() / lower()
함수의 대상이 되는 문자열을 대문자로 / 소문자로 변환
lstrip() / rstrip()
함수의 대상이 되는 문자열의 가장 왼쪽 / 오른쪽 공백을 모두 삭제
strip()
함수의 대상이 되는 문자열의 양쪽에 있는 한 칸 이상의 공백 모두 삭제
replace()
replace(전달 인자1, 전달 인자2) 형식으로 사용하며, 함수의 대상이 되는 문자열에서 전달 인자1과 동일한 부분을 찾아 전달 인자2로 교체
split()
함수의 대상이 되는 문자열을 전달 인자 기준으로 쪼개 리스트로 반환
(ex. "g!oo!rm".split("!")
-> ['g', 'oo', 'rm'])
len()
문자열뿐만 아니라 여러 값이 모여있는 자료형의 길이를 반환하는 함수
이 글은 goorm edu의 한 눈에 끝내는 파이썬3 기초 강좌를 참고하여 작성되었습니다.