파이썬 기본 문법, 성장을 위한 기록
지난 편에서 파이썬이 어떤 언어인지, 어떤 툴들로 만날 수 있는지 살펴봤었죠.
이제 본격적으로 파이썬의 기본적인 '언어 규칙'을 기록해보려고 합니다.
사실 저도 파이썬을 3일 정도 찍먹해본 수준이라 전문가는 아닌데요. 그래도 그동안 실습해 본 내용들을 기록해 두면 저랑 비슷한 상황의 분들에게 도움이 될 것 같아서 정리해 봤어요.
파이썬 코딩의 첫걸음은 데이터를 이해하고 다루는 것이더라고요. 데이터는 마치 디자인 프로젝트에 필요한 이미지, 텍스트, 색상 같은 '재료'와 비슷한 것 같아요. 이 재료들을 효율적으로 보관하고 관리하는 것이 바로 자료형(Data Type)과 변수(Variable)인데요.
자료형과 변수부터 시작해서 프로그램의 흐름을 제어하는 조건문과 반복문, 그리고 직접 코드를 짜보는 미니 프로젝트 실습까지 기록해보려고 해요.
기본 자료형 (단일 데이터)
복합 자료형 (다수 데이터 저장 구조)
변수는 데이터를 저장하고 재사용할 수 있는 '이름 붙은 공간'이에요. 처음엔 좀 추상적으로 느껴질 수 있는데요, 프로그램에서 값을 담아 재사용할 수 있게 해주는 기본 개념이거든요. 코드를 더 읽기 쉽고, 나중에 수정하기도 편하게 만들어주는 역할을 해요.
변수의 정의: 데이터를 저장하는 공간
변수 사용 목적: 데이터를 저장하고 재사용 가능하게 함
장점: 코드의 가독성과 유지보수가 쉬워짐
기본 사용 형식: 변수명 = 값 (여기서 =는 할당 연산자이며, '같다'는 의미는 ==입니다.)
변수 예제 코드
# 하나의 변수에 하나의 값 할당
a = 1
print(a) # 출력 결과: 1
# 여러 개의 변수에 한 번에 값 할당 (패킹 & 언패킹)
a = b = c = 1
print(a, b, c) # 출력 결과: 1 1 1
# 여러 변수에 각각 다른 값 한 번에 할당
a, b, c = 1, 2, 3
print(a, b, c) # 출력 결과: 1 2 3
변수 이름 작성 규칙
추가 팁: 파이썬 변수명은 일반적으로 소문자 + 언더스코어(snake_case) 방식으로 작성하는데요. 예를 들어 user_age, total_sales처럼 쓰면 됩니다 변수명을 의미 있게 작성하는 게 좋더라고요. (x = 10 보다 user_score = 10이 나중에 코드 볼 때 훨씬 이해하기 쉬워요!)
프로그램은 사용자와 소통하며 데이터를 주고받아야겠죠? 이것이 바로 입출력(Input/Output)입니다.
input(): 사용자로부터 데이터를 입력받을 때 사용해요. (주의! input()으로 입력받는 값은 항상 문자열(str) 형태로 저장됩니다.)
print(): 화면에 데이터를 출력할 때 사용합니다.
기본 입출력 예제
# 키보드 입력 name = input('이름을 입력하세요:')print(name, '님 안녕하세요?') # 실행 예시:
# 이름을 입력하세요: yui
# yui 님 안녕하세요?
숫자 입력 후 계산 처리 시 주의사항
input()으로 숫자를 받아 계산하려면 int()나 float()으로 자료형을 변환해줘야 해요!
age = input("나이를 입력하세요:")
print("내년 나이:", int(age) + 1) # int()로 문자열 'age'를 정수로 변환!
name = input('이름을 입력하세요:')
number = input("방문 횟수를 입력하세요.")
print(f'오늘로 {int(number)+1} 회 방문하셨어요.')
# 실행 예시:
# 이름을 입력하세요: 지수
# 방문 횟수를 입력하세요. 3
# 오늘로 4회 방문하셨어요.
문자열 따옴표 사용법
파이썬에서는 작은따옴표(')와 큰따옴표(") 모두 문자열을 감싸는 데 사용됩니다. 기능상 큰 차이는 없으니, 팀이나 개인 코딩 스타일에 맞춰 통일해서 사용하시면 됩니다.
print("She said, \"I'm fine.\"")
# 출력: She said, "I'm fine."
f-string (출력 형식 지정)
f-string은 문자열 안에 변수 값을 쉽게 삽입하여 출력할 수 있게 해주는 편리한 기능입니다. f는 format(형식)의 약자예요.
name = "쏘피"
print(f"안녕하세요, {name}님!") # 결과 → 안녕하세요, 쏘피님!
# 문자열 안에 {변수}를 직접 넣을 수 있음
a = input('고객 번호를 입력하세요.')
print(f"{a} 번 고객님, 할인 쿠폰이 지급되었습니다!")
모든 프로그램은 다음 3가지 제어 구조를 기반으로 작동합니다.
순차 구조: 명령이 위에서 아래로 순서대로 실행됩니다.
선택 구조 (조건문): 특정 '조건'에 따라 다른 명령을 선택하여 실행합니다. (if, else, elif)
반복 구조 (반복문): 동일한 명령을 '반복'하여 실행합니다. (for, while)
조건문은 마치 디자인에서 '만약 사용자가 이 버튼을 누르면 저 페이지로 이동'과 같은 논리를 코드로 구현하는 것과 같아요.
if 조건식: 뒤에 오는 코드는 반드시 들여쓰기(indentation)를 해야 합니다. (보통 TAB 키 한 번)
n = int(input("숫자를 입력하세요: "))
if n == 5: print("n은 5입니다!") if n != 5:
print("n은 5가 아닙니다!")
# 실습: 255 초과 시 255로 출력 n = int(input("숫자를 입력하세요: ")) res = n + 20 if res > 255: res = 255
print(res) # 출력: 입력값이 240이면 255, 100이면 120
# 실습: 구매 금액에 따른 VIP 혜택
n = int(input("구매 금액을 입력하세요: ")) if n > 120000:
print("VIP 고객 혜택이 적용됩니다.")
if 조건이 참이면 if 블록 실행, 거짓이면 else 블록 실행.
n = int(input("숫자를 입력하세요: "))
if n == 5:
print("n은 5입니다!")
else:
print("n은 5가 아닙니다!")
# 실습: 성인 여부와 성별 구분 (중첩 if)
gender = input("남자면 M, 여자면 F를 입력하세요: ")
age = int(input("나이를 입력하세요: "))
if gender == 'M':
if age >= 18:
print('man')
else:
print('boy')
elif gender == 'F': # else if 대신 elif 사용
if age >= 18:
print('woman')
else:
print('girl')
# 실습: 회원번호 짝수/홀수 구분
member_num = int(input("회원번호를 입력하세요: "))
if member_num % 2 == 0:
print("짝수 회원 특별 할인 쿠폰 지급!")
else:
print("홀수 회원 한정 사은품 제공!")
여러 조건을 순차적으로 검사할 때 사용합니다.
n = int(input("숫자를 입력하세요: "))
if n == 5:
print("n은 5입니다!")
elif n > 5:
print("n은 5보다 큽니다!")
else:
print("n은 5보다 작습니다!")
# 실습: 점수에 따른 학점 부여
score = int(input("점수를 입력하세요: "))
if score >= 90:
print("A")
elif score >= 70:
print("B")
elif score >= 40:
print("C")
else:
print("F")
# 실습: 고객 만족도 피드백
satisfaction = int(input("만족도를 1~5점으로 입력하세요 (5점 최고): "))
if satisfaction == 5:
print("프리미엄 만족 고객! 감사합니다.")
elif satisfaction == 4:
print("만족 고객, 더 노력하겠습니다.")
else:
print("불편을 드려 죄송합니다. 개선하겠습니다.")
반복문은 디자인 작업에서 여러 요소를 복제하거나, 특정 작업을 여러 번 반복할 때와 비슷해요. 파이썬에게 '이거 몇 번 더 해줘!'라고 시키는 거죠.
정해진 횟수만큼 또는 리스트/문자열 등 컬렉션의 각 요소에 대해 반복할 때 사용합니다.
# 1부터 10까지 광고 메시지 발송
for i in range(1, 11):
print(f"{i}번째 광고 메시지를 발송했습니다")
print('✨결제 완료 고객 전환 성공!') # 반복문 종료 후 실행
# 리뷰 개수만큼 보너스 포인트 지급 메시지
review_count = int(input("리뷰 개수를 입력하세요: "))
for i in range(1, review_count + 1):
print(f"{i}번째 리뷰에 대한 보너스 포인트가 지급되었습니다!")
특정 '조건'이 참인 동안 계속 반복할 때 사용합니다. 조건이 거짓이 되면 반복이 멈춰요.
# 목표 클릭 수 달성까지 반복
clicks = 0
while True: # 무한 반복
clicks += int(input("현재 광고 클릭 수 입력:"))
if clicks >= 500:
print("� 목표 클릭 수 달성!")
break # 목표 달성 시 반복문 종료
# 비밀번호 확인
password = '1234'
a = input('비밀번호를 입력하세요.')
while a != password:
print("다시 입력하세요")
a = input('비밀번호를 입력하세요.')
if a == '1234':
print("로그인 성공!")
break
# VIP 고객 할인 적용
while True:
grade = input("고객 등급을 입력하세요. VIP만 할인 적용됩니다. :")
if grade != 'VIP':
print(f"{grade}등급은 할인 대상이 아닙니다")
continue # 다시 등급 입력 받기
print("VIP고객님! 20%할인이 적용됩니다.")
break
이제 배운 내용을 활용해서 간단한 광고 캠페인 요약표를 만들어볼까요?
사용자로부터 캠페인 정보를 입력받아 총 클릭 수, 평균 클릭 수, ROI를 계산하고 출력하는 프로그램입니다.
name = input('캠페인 이름: ')
click_data = []
for i in range(1, 4):
click = int(input(f"{i}일차 클릭 수: ")) # int()로 형변환
click_data.append(click)
conversion = int(input('전환 수: ')) # int()로 형변환 필수
ad_cost = int(input('광고비: ')) # int()로 형변환 필수
revenue = int(input('매출액: ')) # int()로 형변환 필수
total_clicks = sum(click_data)
avg_clicks = total_clicks / len(click_data)
roi = ((revenue - ad_cost) / ad_cost) * 100 print("\n--- 광고 캠페인 요약표 ---")
print(f"캠페인 이름: {name}") print(f"날짜별 클릭 수 (3 days): {click_data}")
print(f"평균 클릭 수: {avg_clicks:.1f}") # 소수점 첫째 자리까지 표시
print(f"전환 수: {conversion} 건")
print(f"광고비: {ad_cost:,} 원") # 콤마로 숫자 포맷팅
print(f"매출액: {revenue:,} 원") # 콤마로 숫자 포맷팅
print(f"총 클릭 수 : {total_clicks}")
print(f"평균 클릭수 : {avg_clicks:.1f}")
print(f"ROI : {roi:.2f} %") # 소수점 둘째 자리까지 표시
캠페인 이름: 블랙프라이데이
1일차 클릭 수: 10
2일차 클릭 수: 20
3일차 클릭 수: 30
전환 수: 40
광고비: 100000
매출액: 300000
--- 광고 캠페인 요약표 ---
캠페인 이름: 블랙프라이데이
날짜별 클릭 수 (3 days): [10, 20, 30]
평균 클릭 수: 20.0
전환 수: 40 건
광고비: 100,000 원
매출액: 300,000 원
총 클릭 수 : 60
평균 클릭수 : 20.0 ROI : 200.00 %
1. 기본 내장 함수 (명령어)
2. 연산자 (계산할 때 사용)
3. 비교 연산자 (조건문에 자주 사용)
오늘은 파이썬의 기본 문법을 익히고 기록해 봤어요!
자료형과 변수로 데이터를 다루는 법부터 조건문과 반복문으로 프로그램의 흐름을 제어하는 방법까지, 파이썬의 핵심 개념들을 실습을 통해 짧게나마 체험해 봤는데요.
코딩 언어를 이해하면서 디자이너로서 시야가 확장되길 기대합니다!