input()과 split()입력값을 특정 기준으로 나누려면 어떻게 해야 할까?
input()은 문자열을 입력받고, split()은 문자열을 나눈다.
a, b = input().split()
m, d, y = input().split('-')
input() # 문자열 입력
.split() # 공백 기준 분리
.split('-') # '-' 기준 분리
a, b = input().split()은 어떻게 동작할까?
split()으로 나눈 값을 각각의 변수에 저장할 수 있다.
a, b = input().split()
입력이
10 20
이면
a = '10'
b = '20'
변수 개수와 나눠진 값의 개수가 같아야 한다.
map()과 list()왜 아래 코드는 잘못된 걸까?
arr = [map(int, input().split())]
[map(...)]은 map 객체 하나를 담은 리스트다.
숫자들을 리스트로 만들려면:
arr = list(map(int, input().split()))
input()
→ split()
→ map(int, ...)
→ list(...)
예:
10 20 30
arr = [10, 20, 30]
[map(...)] # map 객체 하나를 리스트에 저장
list(map(...)) # map의 결과를 리스트로 변환
입력받은 숫자로 계산하려면?
input()의 결과는 기본적으로 문자열이다.
a = int(input())
여러 개라면:
a, b = map(int, input().split())
리스트라면:
arr = list(map(int, input().split()))
int() # 정수 변환
float() # 실수 변환
str() # 문자열 변환
list() # 리스트 변환
arr = [10, 20, 30]
sum(arr) # 60
len(arr) # 3
max(arr) # 30
min(arr) # 10
평균:
sum(arr) / len(arr)
len()은 마지막 인덱스가 아니라 원소 개수를 반환한다.
/, //, %평균을 버림 처리하려면?
7 / 3
# 2.333...
7 // 3
# 2
7 % 3
# 1
/ : 일반 나눗셈
// : 몫
% : 나머지
:.0f는 버림일까?
아니다. :.0f는 반올림해서 소수점 0자리까지 출력한다.
x = 3.8
print(f'{x:.0f}')
# 4
print(f'{x:.1f}')
# 3.8
출력 자릿수 지정과 버림은 다르다.
sep과 endprint()에서 값 사이의 공백을 없애려면?
print(a, b, sep='')
sep은 값 사이, end는 출력 마지막을 설정한다.
print('A', 'B', sep='')
# AB
print('A', end='')
print('B')
# AB
sep : 출력값 사이
end : 출력 마지막
arr = list(map(int, input().split()))
이 코드는 반드시 각 단계를 설명할 수 있어야 한다.
input()
→ 문자열 입력
split()
→ 문자열 분리
map(int, ...)
→ 각 값을 정수로 변환
list(...)
→ 리스트로 변환
Python 기초에서는 우선 입력 → 자료형 변환 → 리스트 저장 → 계산 → 출력 흐름에 익숙해지는 것이 중요하다.