🌱
기초 (Basic)
산술/비교/논리 · input · print · f-string
3주차 — 연산자와 입출력
산술·비교·논리 연산자, input() 으로 사용자 입력 받기, print() 와 f-string 으로 보기 좋게 출력하기, 그리고 입력받은 문자열을 숫자로 변환해 계산하는 패턴을 익힙니다.
연산자inputprintf-string
소요 시간
⏱ 2시간
난이도
📊 완전 초보
선수 조건
🎯 2주차
결과물
사용자 입력을 받아 계산하고 깔끔히 포매팅해 출력
이 강의에서 배우는 것
- 1산술·비교·논리 연산자를 사용한다
- 2input() 으로 사용자 입력을 받는다
- 3print() 와 f-string으로 보기 좋게 출력한다
- 4입력받은 문자열을 숫자로 변환해 계산한다
1. 산술 연산자
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
| + | 더하기 | 5 + 3 | 8 |
| - | 빼기 | 5 - 3 | 2 |
| * | 곱하기 | 5 * 3 | 15 |
| / | 나누기 (실수) | 7 / 2 | 3.5 |
| // | 나누기 (몫) | 7 // 2 | 3 |
| % | 나머지 | 7 % 2 | 1 |
| ** | 거듭제곱 | 2 ** 10 | 1024 |
2. 비교 연산자와 논리 연산자
python
print(5 > 3) # True
print(5 == 5) # True (같다)
print(5 != 3) # True (다르다)
print(True and False) # False
print(True or False) # True
print(not True) # False3. 대입 연산자
python
x = 10
x += 5 # x = x + 5 → 15
x -= 3 # 12
x *= 2 # 24
x //= 5 # 44. input() 으로 입력 받기
python
name = input("이름을 입력하세요: ")
print("환영합니다,", name)⚠️
input() 은 항상 문자열을 반환합니다. 숫자를 받으려면 형 변환:
python
age = int(input("나이: "))5. f-string 으로 포맷팅
python
name = "홍길동"
score = 95
print(f"{name}님의 점수는 {score}점입니다")
# 자릿수 / 소수점 / 정렬
price = 12345
print(f"가격: {price:,}원") # 가격: 12,345원
print(f"원주율: {3.141592:.2f}") # 원주율: 3.14
print(f"{name:>10}") # 우측 정렬 폭 106. 자주 하는 실수
1) input() 결과를 그대로 계산
python
a = input("수: ") # 문자열
print(a + 10) # TypeError→ a = int(input("수: "))
2) / 와 // 혼동
/ 는 항상 실수, // 는 몫(정수). 5/2 = 2.5, 5//2 = 2.
3) f-string 앞에 f 빠뜨림
python
print("{name}님") # 그냥 "{name}님" 출력
print(f"{name}님") # 변수 치환됨4) == 대신 = 사용
= 은 할당, == 은 비교. 조건문에서 자주 헷갈림.
7. FAQ
Q1. print() 끝에 줄바꿈이 자동인데 안 되게 하려면?
print("hi", end="") 로 줄바꿈 제거. end="-" 처럼 다른 문자도 가능.
Q2. 여러 변수를 한 번에 출력하려면?
print(a, b, c) 처럼 콤마로 구분하면 공백으로 연결. sep="-" 로 구분자 변경 가능.
Q3. 입력을 한 줄에 여러 개 받으려면?
a, b = input("두 수: ").split() — 공백으로 분리. 여전히 문자열이므로 형 변환 필요.
💻 예제 (examples)
실제로 실행해 결과를 확인할 수 있는 예제 코드입니다.
01_arithmetic.py— 산술 연산자 모음 + 우선순위
CODE
print(5 + 3) # 8
print(7 - 2) # 5
print(4 * 6) # 24
print(7 / 2) # 3.5 (실수 나눗셈)
print(7 // 2) # 3 (몫)
print(7 % 2) # 1 (나머지)
print(2 ** 10) # 1024 (2의 10제곱)
# 우선순위 (수학과 동일)
print(2 + 3 * 4) # 14
print((2 + 3) * 4) # 20
▶ 실행 결과
8
5
24
3.5
3
1
1024
14
2002_input.py— input() 기초
CODE
name = input("이름을 입력하세요: ")
print("환영합니다,", name)
print(f"{name}님, 반갑습니다!")
▶ 실행 결과
이름을 입력하세요: 홍길동
환영합니다, 홍길동
홍길동님, 반갑습니다!03_fstring.py— f-string 포맷팅 — 천 단위, 소수점, 정렬
CODE
name = "홍길동"
score = 95
price = 12345
print(f"{name}님의 점수는 {score}점입니다")
print(f"가격: {price:,}원") # 12,345원
print(f"원주율: {3.141592:.2f}") # 3.14
print(f"이름: {name:>10}") # 우측정렬 폭 10
print(f"이름: {name:<10}|") # 좌측정렬
print(f"이름: {name:^10}|") # 가운데정렬
▶ 실행 결과
홍길동님의 점수는 95점입니다
가격: 12,345원
원주율: 3.14
이름: 홍길동
이름: 홍길동 |
이름: 홍길동 |04_calc_input.py— 입력값을 숫자로 변환해 계산
CODE
a = int(input("첫 번째 수: "))
b = int(input("두 번째 수: "))
print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a - b}")
print(f"{a} * {b} = {a * b}")
print(f"{a} / {b} = {a / b:.2f}")
▶ 실행 결과
첫 번째 수: 10
두 번째 수: 3
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.33📝 과제 (exercises)
직접 풀어보고, 막힐 때 정답을 펼쳐 비교해보세요.
과제 1
BMI 계산기
목표: 키와 몸무게를 입력받아 BMI 를 계산해서 출력한다.
요구사항
- 키는 cm 단위로 입력 (예: 175)
- 몸무게는 kg 단위
- 공식: BMI = 몸무게(kg) / (키(m))²
- 결과는 소수점 둘째 자리까지
입출력 예시
$ python bmi.py
키(cm): 175
몸무게(kg): 70
당신의 BMI는 22.86 입니다.▶정답 코드 펼치기 / 접기
SOLUTION
height_cm = float(input("키(cm): "))
weight_kg = float(input("몸무게(kg): "))
height_m = height_cm / 100
bmi = weight_kg / (height_m ** 2)
print(f"당신의 BMI는 {bmi:.2f} 입니다.")
▶ 실행 결과
키(cm): 175
몸무게(kg): 70
당신의 BMI는 22.86 입니다.과제 2
거스름돈 계산기
목표: 결제 금액과 받은 금액을 입력받아 거스름돈을 출력한다.
요구사항
- 두 값 모두 정수로 입력 (원 단위)
- 거스름돈 = 받은 금액 - 결제 금액
- 천 단위 콤마 표시 (f"{value:,}")
입출력 예시
결제 금액: 7800
받은 금액: 10000
거스름돈: 2,200원▶정답 코드 펼치기 / 접기
SOLUTION
paid = int(input("결제 금액: "))
received = int(input("받은 금액: "))
change = received - paid
print(f"거스름돈: {change:,}원")
▶ 실행 결과
결제 금액: 7800
받은 금액: 10000
거스름돈: 2,200원과제 3
환율 변환기 (KRW ↔ USD)
목표: 원화(KRW)를 달러(USD)로, 달러를 원화로 한 번에 변환한다.
요구사항
- 환율은 코드에 상수로 (예: RATE = 1300)
- 입력값은 정수 또는 실수
- 결과는 소수점 둘째 자리
입출력 예시
원화: 130000
달러: $100.00▶정답 코드 펼치기 / 접기
SOLUTION
RATE = 1300
krw = float(input("원화: "))
usd = krw / RATE
print(f"달러: ${usd:.2f}")
# 도전: 거꾸로도
print(f"${usd:.2f} → {usd * RATE:,.0f}원")
▶ 실행 결과
원화: 130000
달러: $100.00
$100.00 → 130,000원