'Python String! 한글 1234 !@#$%^' "Python String! 한글 1234 !@#$%^" "" "1234" '''Python String! 한글 1234 !@#$%^''' """Python String! 한글 1234 !@#$%^"""
파이썬 문자열
str1 = 'Python String! 한글 1234 !@#$%^' str2 = "Python String! 한글 1234 !@#$%^" str3 = 'a' str4 = "" str5 = "1234" str6 = '''Python String! 한글 1234 !@#$%^''' str7 = """Python String! 한글 1234 !@#$%^"""
문자열 안에 따옴표 자체를 포함하는 방법
str1 = 'Python String! "한글" 1234 !@#$%^' str2 = 'Python String! \'한글\' 1234 !@#$%^' str3 = "Python String! '한글' 1234 !@#$%^" str4 = "Python String! \"한글\" 1234 !@#$%^" print(str1, str2, str3, str4, sep="\n")
줄바꿈
str1 = '첫번째 줄\n 두번째 줄\n 세번째 줄\n' str2 = '''첫번째 줄 두번째 줄 세번째 줄 ''' str3 = """첫번째 줄 두번째 줄 세번째 줄 """ print(str1, str2, str3, sep="\n")
줄바꿈 아님 주의
str1 = "첫번째 줄" + \ " 두번째 줄" + \ " 세번째 줄" print(str1)
\" : 큰따옴표 \' : 작은따옴표 \n : 줄바꿈(new line) 문자 \t : 탭(tab) 문자 \\ : 백슬래시(backslash) 문자
print("안녕하세요. \"반갑습니다.\"") print("안녕하세요. \'반갑습니다.\'") print("안녕하세요.\n반갑습니다.") print("안녕하세요.\t반갑습니다.") print("안녕하세요.\\반갑습니다.")
파이썬에서는 + 연산자와 * 연산자를 문자열에 사용할 수 있다
또한 문자열 리터럴이 연속으로 오면 이어 붙이기가 된다
print("Py" + "thon")
-> 제한사항이 있음
print("Py" "thon")
-> "py"를 3번 반복하라.
print("py" * 3 + "thon")
-> "-"을 10번 반복하라
print("-" * 10)
결과
출력 : Python 출력 : Python 출력 : PyPyPython
print("abc" * 3) print(3 * "abc") print(3 * "abc" + "def" * 2) print(3 * ("abc" + "def") * 2) print(3 * "abc" "def" * 2)
변수들끼리 혹은 변수와 문자열 리터럴을 이어붙이려면 + 를 사용해야 한다
prefix = "Py" print(prefix + "thon")
+---+---+---+---+---+---+ | P | y | t | h | o | n | +---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1
글자와 글자 사이에 인덱스가 있다고 생각해라.
word = "Python" print(len(word)) print(word[0]) print(word[-6]) print(word[4]) print(word[-2])
인텍스 에러
print(word[6]) # error
한글 인덱스
word = "파이썬" print(len(word)) print(word[0]) print(word[2])
파이썬에서 문자열은 값을 변경할 수 없는 불변(immutable) 객체이다
"Python"을 "Jython"으로 바꾸려는 잘못된 시도
word = "Python" word[0] = "J" # 에러 발생
문자열[n:m] [n] : 1글자 잘라내기 [n:m] : n부터 m-1까지 문자열을 리턴합니다. [:m] : 앞의 숫자를 생략하면 0부터 시작합니다. [n:] : 뒤의 숫자를 생략하면 끝 글자까지 입니다. [:] : 모두 생략하면 전체입니다. [-n] : 음수 값을 지정하면 뒤에서부터 카운팅합니다.
문자열의 슬라이싱
word = "Python" print(word[:2]) # 앞에서 2자리 까지 print(word[2:]) # 앞에서 2자리 이후 부터 print(word[2:4]) # 인텍스 2에서 부터 4 까지 substring print(word[:-4]) # 처음부터 뒤에서 네자리 까지 print(word[-4:]) # 마지막 네 글자출력 : Python
범위를 벋어나는 슬라이싱 처리
word = "Python" print(word[:10]) print(word[10:]) print(word[-10:])출력 : Python
문자열 길이
print(len("Python")) print(len("파이썬"))출력 : 6 출력 : 3
공백 없애기
word = " Python "앞,뒤 공백 모두 없애기
print("'" + word.strip() + "'")윈쪽 공백 없애기
print("'" + word.lstrip() + "'")오른쪽 공백 없애기
print("'" + word.rstrip() + "'")출력 : 'Python' 출력 :'Python ' 출력 :' Python'
문자 개수세기
str1 = "Hello Python! 안녕하세요 파이썬 이에요! 안녕하세요 Python!" print(str1.count("Python")) print(str1.count("!")) print(str1.count("하세요")) print(str1.count("파이썬!"))출력 : 2 출력 : 3 출력 : 2 출력 : 0
문자열 찾기
index()로 문자열 찾기, 찾으면 첫번째 인덱스를 리턴하고 없으면 에러 처리된다.
str1 = "Hello Python! 안녕하세요 파이썬 이에요! 안녕하세요 Python!" print(str1.index("Python!")) print(str1.index("파이썬!"))
대, 소문자 변환
str1 = "hello PYTHON!"대문자 변환
print(str1.upper())소문자 변환
print(str1.lower())첫자만 대문자로 변환
print(str1.capitalize())출력 : HELLO PYTHON! 출력 : hello python! 출력 : Hello python!
문자열 바꾸기
문자열 바꾸기 - 새로운 문자열 리터럴을 만든다
str1 = "hello PYTHON" print(str1.replace("없는단어", "Python!")) print(str1.replace("PYTHON", "Python!")) print(str1)문자열을 바꾸고 변수값 바꾸기
str1 = str1.replace("PYTHON", "Python!!!") print(str1)출력 : hello PYTHON 출력 : hello Python! 출력 : hello PYTHON 출력 : hello Python!!!
문자열 나누기
str1 = "Hello Python! 안녕하세요 파이썬 이에요! 안녕하세요 Python!" print(str1.split())출력 : ['Hello', 'Python!', '안녕하세요', '파이썬', '이에요!', '안녕하세요', 'Python!']
문자열 합치기
words = ['Hello', 'Python!', '안녕하세요', '파이썬', '이에요!', '안녕하세요', 'Python!'] str1 = " ".join(words) print(str1) str1 = "_".join(words) print(str1)출력 : Hello Python! 안녕하세요 파이썬 이에요! 안녕하세요 Python! 출력 : Hello_Python!_안녕하세요_파이썬_이에요!_안녕하세요_Python!
숫자를 문자열로 변환 하기
정수를 문자열로 변환
str1 = str(100) print(str1, type(str1))
실수를 문자열로 변환
str2 = str(1.12345) print(str2, type(str2))
숫자를 문자열로 변환하여 사용하는 예시
score = 100 str1 = "홍길동의 시험 점수는 " + str(100) + "점 입니다." print(str1)
문자열을 숫자로 변환 하기
문자열을 숫자로 변환하여 계산
score1 = "70" score2 = "80.5" score3 = 90.5total_score1 = float(score1) + float(score2) + score3 print(total_score1)
정수로 더하려면 아래와 같이 하면 될까?
total_score2 = int(score1) + int(score2) + int(score3) print(total_score2)
잘못된 정수 변환 예시
int("10.1") int("10.") int("- 10") int("10/2") int("2+3") int("0xA0") # 16진수?
가능한 정수 변환 예시
num1 = int(" 10 ") num2 = int("-10") num3 = int("+10") num4 = int(10.12345) num5 = int(10/3) num6 = int(2+3) print(num1, num2, num3, num4, num5, num6, sep="\n")
num1 = int("10", base=2) # 2진수 num2 = int("0b10", base=2) # 2진수 num3 = int("A0", base=16) # 16진수 num4 = int("0xA0", base=16) # 16진수 print(num1, num2, num3, num4, sep="\n")
가능한 실수 변환 예시
num1 = float("10") num2 = float("10.12345") num3 = float("-1.2345e3") num4 = float(10) print(num1, num2, num3, num4, sep="\n")출력 : 10.0 출력 : 10.12345 출력 : -1234.5 출력 : 10.0
정수형 데이가 필요할때, 팁
정수로 더하려면 아래와 같이 하면 될까?
score1 = "70" score2 = "80.5" score3 = 90.5 total_score2 = int(float(score1)) + int(float(score2)) + int(score3) print(total_score2)출력 : 240
data1 = "안녕하세요" data2 = 1 data3 = 4 data4 = 2print(data1) print("data2:", data2) print(data2, data3, data4) print(data2, data3, data4, sep=", ")출력 : 안녕하세요 출력 : data2: 1 출력 : 1 4 2 출력 : 1, 4, 2
f-string : 내장된 표현식을 갖는 문자열 리터럴
f-string
name = "홍길동" age = 24 height = 1.83 #미터info1 = f"{name}의 나이는 {age}살 이고 키는 {height*100}cm 입니다" print(info1)answer = 10.123456789 str1 = f"the answer is {answer:.3f}" print(str1)price = 59000 txt1 = f"가격은 {price:,}원 입니다" print(txt1)출력 : 홍길동의 나이는 24살 이고 키는 183.0cm 입니다 출력 : the answer is 10.123 출력 : 가격은 59,000원 입니다
포멧 문자열 문법 : str.format() 으로 문자열을 포맷하는 방법
str.format()
name = "홍길동" age = 24 height = 1.83 #미터info2 = "{}의 나이는 {}살 이고 키는 {}cm 입니다".format(name, age, height*100) print(info2)answer = 10.123456789 str2 = "the answer is {:.3f}".format(answer) print(str2)price = 59000 txt2 = "가격은 {:,}원 입니다".format(price) print(txt2)출력 : 홍길동의 나이는 24살 이고 키는 183.0cm 입니다 출력 : the answer is 10.123 출력 : 가격은 59,000원 입니다
printf 스타일 문자열 포매팅 : 문자열을 % 연산자 왼쪽에 사용하는 예전 방식의 포맷팅
print 스타일 포멧팅
name = "홍길동" age = 24 height = 1.83 #미터info3 = "%s의 나이는 %d살 이고 키는 %fcm 입니다" % (name, age, height*100) print(info3)answer = 10.123456789 str3 = "the answer is %5.3f" % (answer) print(str3)숫자에 콤마를 찍는 쉬운 방법 없음
출력 : 홍길동의 나이는 24살 이고 키는 183.000000cm 입니다 출력 : the answer is 10.123
다시 듣는 파이썬 기본 문법이다 보니, 새롭다.
기존에 KG아이티뱅크에서 파이썬을 배웠었는데, 부족한 것이 많다 느껴서, 이번에 슈퍼코딩을 등록하게 됬다.
무엇보다 그때 느낀 AI를 관련한 영상 분석 시스템에 대해 더 다가갈 수 있는 계기가 됬으면 좋겠다.
이직을 위해 선택한 교육이지만, 내 목표이기도 하기때문에 더욱 열심히 나아가야겠다.
아직 까지는 어려운 강의가 아니다 보니, 너무 루즈해도 복습이 되는 것 같아서 좋다.
앞으로 10개월 뒤의 내 모습이 참 궁금하다.
열심히해서 이직까지 아자아자 화이팅하자 !!!