total_snacks = 120
booths = 8
snacks_per_booth = total_snacks // booths
snacks_left = total_snacks % booths
print("부스당 간식:", snacks_per_booth, "개")
print("남는 간식:", snacks_left, "개")부스당 간식: 15 개
남는 간식: 0 개
먼저 값을 코드에 직접 적어 물품을 나눠 봅니다.
total_snacks = 120
booths = 8
snacks_per_booth = total_snacks // booths
snacks_left = total_snacks % booths
print("부스당 간식:", snacks_per_booth, "개")
print("남는 간식:", snacks_left, "개")부스당 간식: 15 개
남는 간식: 0 개
//는 똑같이 나눈 몫(한 부스당 개수), %는 남는 나머지입니다. 여기까지는 앞서 익힌 내용 그대로입니다.
간식이 125개로 바뀌면 어떻게 할까요? 지금 방식으로는 코드의 120을 직접 125로 고쳐 다시 실행해야 합니다.
total_snacks = 125 # 값을 바꾸려면 코드를 고쳐야 한다
booths = 8
print(total_snacks // booths, total_snacks % booths)15 5
값이 바뀔 때마다 코드를 고치는 것은 번거롭습니다. 그래서 실행할 때 사람이 값을 넣어 주는 방법이 필요합니다.
input()name = input("이름을 입력하세요: ")
print("환영합니다,", name)input()은 실행하면 멈춰 서서 사용자가 값을 치고 Enter를 누르기를 기다립니다. 입력한 값은 변수에 저장됩니다. 계산이 없어도 이렇게 사람과 대화하는 프로그램을 만들 수 있습니다.
flowchart LR
A["사용자 입력<br/>홍길동"] --> B["input()"]
B --> C["name 변수에 저장"]
classDef u fill:#f3e8ff,stroke:#9333ea,color:#3b0764
classDef v fill:#e8f1ff,stroke:#2563eb,color:#172554
class A u
class B,C v
한 가지 주의할 점이 있습니다. input()이 돌려주는 값은 항상 글자(문자열) 입니다.
number_text = input("숫자를 입력하세요: ")
print(number_text + number_text)5를 입력하면 결과는 10이 아니라 55입니다. 글자로 받았기 때문에 +가 이어 붙이기로 동작한 것입니다. 화면에 5로 보여도 이 단계에서는 숫자가 아니라 글자입니다.
int()계산을 하려면 글자를 숫자로 바꿔야 합니다. 정수로 바꿀 때는 int()를 씁니다.
number_text = input("숫자를 입력하세요: ")
number = int(number_text)
print(number + number)이제 5를 입력하면 결과는 10입니다. int()가 글자 "5"를 계산할 수 있는 정수 5로 바꿔 주었기 때문입니다.
flowchart LR
A["'5'<br/>글자"] -->|int| B["5<br/>숫자"]
B -->|+ 5| C["10<br/>계산 결과"]
classDef s fill:#fff4d6,stroke:#d97706,color:#451a03
classDef n fill:#e8f1ff,stroke:#2563eb,color:#172554
class A s
class B,C n
입력과 변환을 한 줄로 붙여 쓰면 다음과 같습니다. 앞으로 자주 쓰는 형태입니다.
booths = int(input("부스 수: "))
print("부스 수:", booths)소수점이 있는 수는 int() 대신 float()로 바꿉니다. 예: weight = float(input("무게(kg): ")). int("여섯")처럼 숫자가 아닌 글자를 변환하려 하면 오류가 납니다. 지금은 숫자 형식으로 바르게 입력합니다.
이제 1단계의 간식 배분 프로그램을, 값을 입력받도록 바꿔 봅니다. 계산 부분(//, %)은 그대로이고, 앞부분만 input()과 int()로 바뀝니다.
# 입력
total_snacks = int(input("전체 간식 수: "))
booths = int(input("부스 수: "))
# 처리
snacks_per_booth = total_snacks // booths
snacks_left = total_snacks % booths
# 출력
print("부스당 간식:", snacks_per_booth, "개")
print("남는 간식:", snacks_left, "개")이제 코드를 고치지 않고도, 실행할 때마다 다른 값을 넣어 결과를 확인할 수 있습니다. # 입력, # 처리, # 출력 세 구역으로 나눈 것은 앞서 익힌 입력–처리–출력 구조 그대로입니다.
처음부터 파이썬 문법을 떠올리기 어렵다면, 먼저 한국어로 순서를 적어 봅니다. 이렇게 사람 말로 적은 절차를 의사코드라고 합니다.
전체 참가자 수를 입력받는다.
팀 수를 입력받는다.
참가자 수를 팀 수로 나눈 몫과 나머지를 구한다.
팀당 인원과 남는 인원을 출력한다.
같은 절차를 순서도로 나타내면 다음과 같습니다.
flowchart TD
A([시작]) --> B[/전체 참가자 수 입력/]
B --> C[/팀 수 입력/]
C --> D["몫과 나머지 계산"]
D --> E[/팀당 인원·남는 인원 출력/]
E --> F([끝])
classDef startend fill:#e8f8ee,stroke:#16a34a,color:#052e16
classDef io fill:#e8f1ff,stroke:#2563eb,color:#172554
classDef process fill:#fff4d6,stroke:#d97706,color:#451a03
class A,F startend
class B,C,E io
class D process
이 절차를 한 줄씩 파이썬으로 옮깁니다.
# 입력
total_people = int(input("전체 참가자 수: "))
teams = int(input("팀 수: "))
# 처리
people_per_team = total_people // teams
people_left = total_people % teams
# 출력
print("팀당 인원:", people_per_team, "명")
print("남는 인원:", people_left, "명")| 의사코드의 한 줄 | 파이썬 표현 |
|---|---|
| 값을 입력받는다 | input() |
| 숫자로 바꾼다 | int() |
| 몫과 나머지를 구한다 | //, % |
| 결과를 출력한다 | print() |
의사코드는 사람의 설명과 파이썬 문법을 잇는 징검다리입니다. 어렵다고 느껴질수록 코드보다 말로 먼저 적어 보는 습관이 도움이 됩니다.
지금까지 익힌 변수·//·%·출력과 입력·형변환·의사코드를 하나로 모읍니다.
행사 이름과 물품 이름을 입력받는다.
전체 수량과 장소 수를 숫자로 입력받는다.
한 곳당 수량과 남는 수량을 계산한다.
행사명·물품명·배분 결과를 출력한다.
# 입력
event_name = input("행사 이름: ")
item_name = input("물품 이름: ")
total_items = int(input("전체 수량: "))
places = int(input("배분할 장소 수: "))
# 처리
items_per_place = total_items // places
items_left = total_items % places
# 출력
print(event_name, "-", item_name, "배분 결과")
print("한 곳당:", items_per_place, "개")
print("남는 수량:", items_left, "개")변수 이름을 특정 물품에 묶지 않고 total_items, places처럼 일반적으로 지었으므로, 간식이든 안내지도든 같은 프로그램으로 나눌 수 있습니다.
input()으로 이름을 받아 name에 저장하고, print("반갑습니다,", name)으로 인사를 출력하세요. 계산은 없습니다. 입력한 값이 그대로 출력에 쓰이는 것을 확인합니다.
전체 참가자 수와 팀 수를 입력받아 팀당 인원과 남는 인원을 구하세요.
int(input(...))으로 받습니다.//, 남는 인원은 %로 계산합니다.# 입력, # 처리, # 출력 주석을 넣습니다.53명을 6팀으로 나누면 팀당 8명, 남는 인원 5명이 나오는지 확인하세요.
동아리 회비를 정산하는 프로그램을 만드세요.
회원 수 × 1인당 회비로 계산해 출력합니다.조건: 의사코드 포함, 변수 세 개 이상, input() 두 번 이상, 계산식 한 개 이상, print()로 결과에 단위(원)를 함께 출력.
한 부스의 순이익(= 전체 매출 − 전체 비용)을 구합니다. 큰 문제를 작은 문제로 나누어 각각 해결한 뒤 합치세요.
순이익 = (음료 매출 + 간식 매출) − 전체 비용을 구합니다.int(input(...))으로 받아 위 순서대로 계산하고, 매출·비용·순이익을 단위와 함께 출력합니다.확인: 음료 120잔×2000원, 간식 80개×1500원, 재료비 150000원, 대여비 50000원이면 매출 360000원, 비용 200000원, 순이익 160000원이 나오는지 확인하세요.