input()은 문자열을 입력받는다..split()을 사용한다.int() 또는 float()로 형 변환이 필요하다.+를 사용할 수 있지만, 숫자는 반드시 str()로 변환해야 한다.🔹 기본 예시
a, b = map(int, input().split())
print(f"{a} + {b} = {a + b}")
다음 코드를 실행했을 때의 출력 결과를 작성하시오.
(입력값은 2 3이다.)
print("파이썬 입출력에 대한 문제입니다.")
num1, num2 = input().split()
num1 = int(num1)
num2 = int(num2)
print(num1, num2)
print(f"{num1} + {num2} = {num1 + num2}")
✅ 해설
1. input() → "2 3"
2. .split() → ['2', '3']
3. int() 변환 → num1=2, num2=3
4. 출력 흐름:
파이썬 입출력에 대한 문제입니다.
2 3
2 + 3 = 5
type()은 객체의 자료형을 반환한다.int, float, str, tuple, set, dict 등이 주요 자료형이다.isinstance(x, int)는 좀 더 권장되는 방식이다.🔹 예시
type(100) # <class 'int'>
type('100') # <class 'str'>
type(100.0) # <class 'float'>
def func(value):
if type(value) == type(100):
return 100
elif type(value) == type(""):
return len(value)
else:
return 20
a = '100.0'
b = 100.0
c = (100, 200)
print(func(a) + func(b) + func(c))
✅ 해설
| 변수 | 자료형 | 반환값 |
|---|---|---|
'100.0' | str | len('100.0') → 5 |
100.0 | float | 20 |
(100,200) | tuple | 20 |
45
문자열[start:end] → start부터 end-1까지🔹 예시
a = "REMEMBER NOVEMBER"
print(a[:3]) # REM
print(a[12:16]) # EMBE
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)
✅ 해설
a[:3] → "REM"
a[12:16] → "EMBE"
c → "R AND STR"
b + c → "REMEMBE" + "R AND STR" = REMEMBER AND STR
출력:
REMEMBER AND STR
lst[::2] → 짝수 인덱스, lst[1::2] → 홀수 인덱스.🔹 예시
lst = [1,2,3,4,5,6]
print(lst[::2]) # [1,3,5]
print(lst[1::2]) # [2,4,6]
def func(lst):
for i in range(len(lst)//2):
lst[i], lst[-i-1] = lst[-i-1], lst[i]
lst = [1,2,3,4,5,6]
func(lst)
print(sum(lst[::2]) - sum(lst[1::2]))
✅ 해설
리스트 뒤집기 후: [6,5,4,3,2,1]
짝수 인덱스 합: 6 + 4 + 2 = 12
홀수 인덱스 합: 5 + 3 + 1 = 9
결과: 12 - 9 = 3
출력:
3
dict는 {key: value} 형태.& 연산자는 교집합을 구한다.dst = {i: i*2 for i in [1,2,3]} # {1:2, 2:4, 3:6}
s = set(dst.values()) # {2,4,6}
lst = [1,2,3]
dst = {i: i*2 for i in lst}
s = set(dst.values())
dst[2] = 7
s.add(99)
print(len(s & set(dst.values())))
✅ 해설
dst = {1:2, 2:7, 3:6}
s = {2,4,6,99}
교집합 {2,6} → 길이 2
출력:
2
🔹 예시
def add(a, b=10):
return a + b
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
✅ 해설
num1 = 20, num2는 기본값 2 사용
출력:
a= 20 b= 2
lambda는 간단한 익명 함수 정의 방법이다.map()은 리스트 요소 전체에 함수를 적용한다.🔹 예시
nums = [1,2,3]
print(list(map(lambda x: x+10, nums))) # [11,12,13]
TestList = [1,2,3,4,5]
TestList = list(map(lambda num : num + 100, TestList))
print(TestList)
✅ 해설
[101,102,103,104,105]lol = [[1,2,3],[4,5],[6,7,8,9]]
print(lol[0])
print(lol[2][1])
for sub in lol:
for item in sub:
print(item, end = '')
print()
✅ 해설
1. lol[0] → [1, 2, 3]
2. lol[2][1] → 7
3. 반복문 출력:
123
45
6789
def fnCalculation(x,y):
result = 0
for i in range(len(x)):
temp = x[i:i+len(y)]
if temp == y:
result += 1
return result
a = "abdcabcabca"
p1 = "ab"
p2 = "ca"
print(f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}")
✅ 해설
"ab" 3회
"ca" 3회
→ "ab3ca3"
출력:
ab3ca3
(i-1)//2class Node:
def __init__(self, value):
self.value = value
self.children = []
def tree(li):
nodes = [Node(i) for i in li]
for i in range(1, len(li)):
nodes[(i - 1) // 2].children.append(nodes[i])
return nodes[0]
def calc(node, level=0):
if node is None:
return 0
return (node.value if level % 2 == 1 else 0) + sum(calc(n, level + 1) for n in node.children)
li = [3,5,8,12,15,18,21]
root = tree(li)
print(calc(root))
✅ 해설
3
/ \
5 8
/ \ / \
12 15 18 21
13