파이썬은 한줄로도 문자열을 출력이 가능하고, 여러줄을 출력할 수도 있다.
# 한줄 출력
sentence = '나는 소년입니다.'
print(sentence)
sentence2 = "파이썬은 쉬워요"
print(sentence2)
# 여러줄 출력
sentence3 = """
나는 오늘 돈까스를 먹었고,
내일은 샐러드를 먹을 생각입니다.
"""
print(sentence3)
문자열 중 필요한 부분만 잘라서 가져오는 것을 슬라이싱(Slicing)이라고 한다.
jumin = "990902-2234567"
print("성별 : " + jumin[7])
print("태어난 연도 : " + jumin[0:2]) # jumin[n:m] n번째부터 m번째 직전까지
print("월 : " + jumin[2:4])
print("일 : " + jumin[4:6])
print("생년월일 : " + jumin[:6]) # 처음부터 6직전까지
print("뒤 7자리 : " + jumin[7:]) # 7번째부터 끝까지
print("뒤 7자리 (뒤에부터) : " + jumin[-7:])
문자열 처리함수에는 아래와 같은 함수들이 있다.
lower()
upper()
len()
replace()
python = "Python is Amazing"
print(python.lower()) # 소문자로
print(python.upper()) # 대문자로
print(python[0].isupper()) # 0번째 글자가 대문자인지 알려주는 것
print(len(python)) # 문자열 길이
print(python.replace("Python", "Java")) # Python이라는 글자를 찾아서 Java로 바꾸기
index = python.index("n")
print(index) # 앞에서부터 1번째로 오는 n을
찾아내기
index = python.index("n", index + 1)
print(index) # 1번째 index 이후의 n을 찾아내기
find()는 원하는 값이 없는 경우
-1
(False 라는 뜻)을 출력하고, index()는 원하는 값이 없는 경우 오류가 난다.
python = "Python is Amazing"
print(python.find("Java")) # 원하는 값이 없는 경우 -1 (False 라는 뜻)
print(python.index("Java")) # 원하는 값이 없는 경우 오류가 난다.
python = "Python is Amazing"
print(python.count("n"))
문자열을 연결할 때 +
로 연결하는 방법과, ,
로 연결하는 방법 2가지 방법을 공부했었다.
print("a" + "b")
print("a", "b")
그 외의 방법들을 공부해보자.
%d
: 십진수(Decimal)를 담을 수 있다.
%s
: 문자열(String)을 담을 수 있다.
%c
: 문자(Charactor)를 담을 수 있다.
print("나는 %d살입니다." % 20) # % 뒤에 있는 값을 %d 안에 넣을 수 있다. Demical(정수)타입만
print("나는 %s을 좋아해요." % "파이썬") # Stirng(문자열) 타입만
print("Apple은 %c로 시작해요." % "A") # Charactor(문자) 타입만
print("나는 %s살입니다." % 20)
print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간")) # 괄호를 통해 삽입 (순서대로 동작)
중괄호안에 인덱스(index)를 지정해주어 순서에 영향을 받지 않을 수 있다.
print("나는 {}살입니다.".format(20))
print("나는 {}색과 {}색을 좋아해요." .format("파란", "빨간"))
print("나는 {0}색과 {1}색을 좋아해요." .format("파란", "빨강")) # 인덱스를 지정해줄 수 있다.
print("나는 {1}색과 {0}색을 좋아해요." .format("파란", "빨강")) # 인덱스를 지정해줄 수 있다.
변수명을 이용한 방법이기 때문에 순서에 상관이 없다.
print("나는 {age}살이며, {color}색을 좋아해요." .format(age = 20, color="빨간"))
print("나는 {age}살이며, {color}색을 좋아해요." .format(color="빨간", age = 20))
f
를 먼저 쓰고 중괄호를 이용해 변수명을 할당하면, 따로 .format()에 담지 않고도 변수에 담겨있던 값을 가져와서 할당할 수 있다.
age = 20 # 변수를 선언하고,
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.")
Excape문자를 이용하면, 출력이 되지않는 "
큰 따옴표나, \
역슬래시 등을 출력할 수 있다.
# \n : 줄바꿈
print("백문이 불여일견 \n 백견이 불여일타")
# \" \' : 문장 내에서 따옴표
# 저는 "오리" 입니다.
print("저는 '오리' 입니다.")
print("저는 \"오리\" 입니다.")
print("저는 \'오리\' 입니다.")
# \\ : 문장내에서 \
# 경로를 출력하고 싶다면
# print("c:\\python_basic\\string.py")
# \r : 커서를 맨 앞으로 이동
print("Red Apple\rPine") # 커서를 맨 앞으로 이동해서 "Red "를 "Pine"으로 대체
# \b : 백스페이스(한 글자 삭제)
print("Redd\bApple")
# \t : 탭
print("Red\tApple")
사이트예시) http://naver.com
규칙1 : http://부분은 제외 => naver.com
규칙2 : 처음 만나는 점(.) 이후 부분은 제외 => naver
규칙3 : 남은 글자 중 처음 세자리 + 글자 갯수 + 글자 내 'e' 갯수 + "!"로 구성
(nav) (5) (1) (!)
예) 생성된 비밀번호 : nav51!
풀이
site = "http://naver.com"
pwd1 = site[7:10] # nav
spot = site.index(".") # 12
pwd2 = str(len(site[7:spot])) # 5
pwd3 = site.count("e") # 1
password = (pwd1 + str(pwd2) + str(pwd3) + "!")
print(password)
처음에 숫자들을 str()으로 감싸 문자열타입으로 바꾸어주지않아서 이상한 오류들이 떠서 조금 걸렸지만, 처음부터 하나씩 실행시켜주다 보니 해결되었다 흐흐..