[코드트리 조별과제] #09. 문자열 입력받아 출력하기, 문자열 리스트 관리

1. 공백없는 문자열 입력받아 출력하기

공백이 들어 있지 않은 문자열의 경우에는, input()함수를 이용하면 쉽게 입력을 받을 수 있음

given_input = input()
print(given_input)

# 입력
>> hello

# 출력
hello

 

  • 문자열은 마치 1차원 배열과 같음
  • 첫 번째 문자를 참조하기 위해서는 0번지를, 두 번째 문자를 참조하기 위해서는 1번지를 참조해야 함
given_input = "banana"

print(given_input[0])   # b <- 문자열의 첫 번째 문자
print(given_input[1])   # a <- 문자열의 두 번째 문자
print(given_input[2])   # n <- 문자열의 세 번째 문자

 

  • 문자열의 경우에는 for loop 없이 print 함수만을 이용하여 문자열을 출력할 수 있음
given_input = "banana"
print(given_input)

>> banana

 

  • 하지만 일반 리스트의 경우 리스트를 그대로 출력하면 리스트 type 형태로 나오게 되기 때문에 꼭 for loop을 이용해 각 원소를 포맷에 맞춰 출력해줘야 함
arr = [1, 2, 3]
print(arr)                   # [1, 2, 3] 그 자체로 출력됨

for elem in arr:             # 1 2 3 이렇게 출력됨
    print(elem, end=" ")

 

 

2. 문자열의 길이

입력으로 주어진 문자열의 길이는, len() 함수를 이용하면 쉽게 구할 수 있음

given_input = input()
print(len(given_input))

# 입력
>> hello

# 출력
5

 

 

3. 공백이 포함된 문자열 입력받아 출력하기

공백이 포함된 문자열의 경우라도 python3의 경우 항상 한 줄 단위로 입력을 받기 때문에, 기존과 동일하게 input()함수를 이용하면 쉽게 입력을 받을 수 있음

given_input = input()
print(given_input)

# 입력
>> hello world

# 출력
hello world

 

  • 위의 예시처럼 hello world가 입력으로 들어온 경우라면, 6번째 문자인 given_input[5]를 출력했을 때는 공백이 나옴
  • given_input 문자열의 길이를 len() 함수를 이용해 구하게 된다면, 공백을 포함한 총 길이가 출력됨
given_input = "hello world"
print(given_input[5])
print(len(given_input))

>>     (공백)
     11

 

 

4. 문자열 리스트 관리

  • 문자열들의 목록을 관리하기 위해서는, 각 문자열들을 원소로 갖는 리스트를 정의하면 됨
  • 하나의 문자열의 쓰임은 마치 1차원 배열과 같고, 문자열 리스트의 경우에는 마치 2차원 배열과 같이 동작함
arr = ["banana", "apple", "pizza"]

print(arr[0])      # banana <- 첫 번째 문자열
print(len(arr[0])) # 6      <- 첫 번째 문자열의 길이

print(arr[0][0])   # b <- 첫 번째 문자열의 첫 번째 문자
print(arr[0][1])   # a <- 첫 번째 문자열의 두 번째 문자
print(arr[0][2])   # n <- 첫 번째 문자열의 세 번째 문자

 

 

5. 문자열 리스트 활용

문자열이 한 줄에 하나씩 총 n개 주어졌을 때, 끝에 있는 3개의 문자열만 순서대로 출력하는 방법

 

1. 입력받은 n개의 문자열을 저장한 뒤, 그 중 끝에 있는 3개의 문자열을 출력

n = 5
arr = []

for _ in range(n):
    given_str = input()
    arr.append(given_str)

for string in arr[-3:]:
    print(string)

 

 

2. list comprehension

문자열 리스트를 만드는 과정은 배열을 선언하고 for loop을 돌며 append하는 과정

n = 5
arr = [
    input()
    for _ in range(n)
]

for string in arr[-3:]:
    print(string)

 

 

6. 공백 단위로 문자열 입력받기

공백을 사이에 두고 문자열들이 주어졌을 때, 문자열 리스트 만드는 방법

 

  • python에서는 한 줄 단위로만 입력받을 수 있기 때문에, 통째로 입력을 받은 뒤 공백 단위로 잘라서 리스트를 만들어야 함
  • split() 함수를 이용하면 공백 단위로 쪼개져 리스트가 만들어지므로, 이를 이용하여 간단히 문자열 리스트를 만들 수 있음
arr = input().split()
print(arr)
# 출력
>> apple banana candy
['apple', 'banana', 'candy']

 

 

여기서의 arr는 1차원 리스트이기 때문에, len(arr)를 출력하면 문자열의 개수가 나옴

arr = input().split()
print(len(arr))

>> apple banana candy
3

 

 

공백 단위로 정확히 2개의 문자열을 입력 받을때는 굳이 map 함수를 사용하지 않고 tuple만 사용하여 쉽게 구현이 가능함

(map 함수의 역할이 해당 원소들을 전부 원하는 type으로 변경하는 것이기 때문)

a, b = tuple(input().split())
print(a)
print(b)

>> banana apple
banana
apple