String = List of Characters
문자의 집합으로 이루어진 문자열
my_team = 'Arsenal'
first_initial = my_team[0]
print(first_initial)
# Output: A
string[first_index:last_index]
String(문자열)의 일부 부분 추출 가능
favorite_fruit = "blueberry"
favorite_fruit = "blueberry"
print(favorite_fruit[:3])
print(favorite_fruit[4:])
print(favorite_fruit[2:7])
# Output: blu
# Output: berry
# Output: ueber
서로 다른 두 string (문자열)을 연결할 수 있다.
연결 사이엔 별도의 공간이 없으므로, 띄어쓰기가 필요할 시 직접 사이에 공란을 기입
first_name = "Ben"
last_name = "White"
def account_generator(first_name, last_name):
return first_name[:3] + last_name[:3]
new_account = account_generator(first_name, last_name)
print(new_account)
# Output: BenWhi
# first_name의 첫 세글자와 last_name의 첫 세글자 연결
len(string_name)
len(string_name)
→ string(문자열)의 길이를 알고자할 때 사용len(string_name) - 1
→ string(문자열)의 마지막 문자를 알고자할 때 사용len()
은 1부터 시작하기 때문)first_name = "Kieran"
last_name = "Tierny"
def password_generator(first_name, last_name):
temp_password = first_name[len(first_name)-3:] + last_name[len(last_name)-3:]
return temp_password
temp_password = password_generator(first_name, last_name)
print(temp_password)
# Output: ranrny
# first_name[len(first_name)-3:] → first_name 글자수에서 3을 뺌
string_name[-n]
마지막 문자부터 시작하여 역순으로 진행
마지막 문자 → -1
부터 시작
team_description = 'Arsenal is the best team in the world'
second_to_last = team_description[-2]
final_four_texts = team_description[-4:]
print(second_to_last)
print(final_four_texts)
# Output: l
# Output: orld
한번 정의된 string(문자열)은 변경할 수 없다
first_name = "Tieran"
last_name = "Tierny"
first_name[0] = "K"
# Output: TypeError
# 변수 first_name은 이미 정의되었으므로 변경 불가
\
따옴표 내부에 다른 따옴표를 쓰고자할 때에는 따옴표 앞에 \ 추가
player_nickname = 'Kieran \'the King\' Tierny'
print(player_nickname)
# Output: Kieran 'the King' Tierny
string(문자열)도 list이기 때문에, for
문이나 while
문을 통해 값을 차례대로 꺼낼 수 있다.(iterate)
def get_length(word):
counter = 0
for letter in word:
counter += 1
return counter
singer = 'Sinatra'
print(get_length(singer))
string(문자열)을 list로 간주하게 되면, if
문을 활용한 조건문 작성 가능
# 알파벳의 단어 안 존재 여부를 확인하는 함수
def letter_check(word, letter):
for character in word:
if character == letter:
return True
return False
print(letter_check('apple', 'a'))
# Output: True
in
in
연산자를 사용하여 특정 문자열 안에 찾고자하는 문자열이 있는지 확인 가능
# 특정 문자열 안에 찾고자하는 문자열의 존재 여부 체크
def contains(big_string, little_string):
return little_string in big_string
print(contains("watermelon", "melon"))
# Output: True
# 서로 다른 두 문자열 안에 같은 알파벳이 있을 시 해당 알파벳 출력
def common_letters(string_one, string_two):
common = []
for letter in string_one:
if (letter in string_two) and not (letter in common):
common.append(letter)
return common
print(common_letters("banana", "cream"))
# Output: ['a']
마지막 두 챕터인 Strings and Conditionals를 보면, 결국 string도 list와 동일한 취급이라 iterate, 즉 데이터를 순회해서 처리한다고 한다.
그러면 string의 문자 하나하나, 예를 들어 'sinatra'의 s, i, n, a, t, r, a가 하나하나 모두 별도의 문자로 취급을 받아 컴퓨터가 하나하나씩 훑고 간다는 뜻인것인가?
어렵다..
다시 복습을 하다보면, 결국 위에서 배운 String, 즉 문자열의 성질들이 대부분 list와 동일한 듯 하다.
결국 두개가 같은 속성을 가지고 있기에 처리도 동일하게 된다는 것일까?