1. 🔤 출력과 입력의 기초
✅ print() 함수
print()는 출력하고 싶은 값을 화면에 보여주는 함수이다. 인자로 문자열, 숫자, 리스트, 변수 등 다양한 자료형을 넣을 수 있다.
호출할 때마다 기본적으로 줄바꿈(\n)이 함께 이루어진다.
print("Hello, Python!")
print(3 + 4) # +는 숫자 뿐만 아니라 문자도 연산이 가능하다 (문자열을 이을 때 사용)
실행 결과
Hello, Python!
7
줄바꿈 없이 출력하고 싶다면 end="" 옵션을 사용한다.
print("A", end="")
print("B")
결과
AB
✅ f-string을 이용한 출력
f-string은 문자열 안에 변수나 표현식을 직접 넣어 출력할 수 있는 방식이다. 문자열 앞에 f를 붙이고 중괄호 {} 안에 변수명을 넣는다.
name = "Alice"
age = 25
print(f"{name}의 나이는 {age}살입니다.")
결과
Alice의 나이는 25살입니다.
복잡한 수식도 중괄호 안에 넣을 수 있다.
print(f"내년이면 {age + 1}살이 됩니다.")
✅ 역슬래시 출력
문자열 안에서 \는 특수문자(이스케이프 문자)로 인식된다. 예를 들어 \n은 줄바꿈, \t는 탭이다.
그래서 일반 \를 출력하고 싶다면 두 번 써야 한다.
print("C:\\Users\\Alice\\Documents")
결과
C:\Users\Alice\Documents
✅ input() 함수
input()은 사용자의 입력을 문자열 형태로 받아오는 함수이다.
name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
입력
이름을 입력하세요: Alice
출력
안녕하세요, Alice님!
✅ 여러 개 입력받기
a, b, c = input("세 개의 숫자를 입력하세요: ").split()
print(a, b, c)
입력
100 200 300
출력
100 200 300
split()은 공백 기준으로 문자열을 나눠 리스트로 만들고, 각각의 변수에 할당해준다.
✅ sys.stdin.readline() (빠른 입력)
기본 input() 함수보다 더 빠른 입력이 필요한 경우 sys.stdin.readline()을 사용할 수 있다.
파일에서 데이터를 읽어오거나 반복적으로 많은 입력을 받아야 할 때 유용하다.
import sys
data = sys.stdin.readline().strip()
print(data)
strip()을 붙이는 이유는 입력 끝에 자동으로 붙는 \n을 제거하기 위함이다.
2. 🎲 random 함수 소개
파이썬에서 랜덤한 값을 만들고 싶을 때는 random 모듈을 사용한다.
import random
✅ random.randint(a, b)
a 이상 b 이하의 정수 중 하나를 무작위로 반환한다.
print(random.randint(1, 6)) # 주사위
✅ random.choice(seq)
시퀀스(리스트, 문자열 등)에서 무작위로 하나의 요소를 선택한다.
colors = ["red", "green", "blue"]
print(random.choice(colors))
✅ random.shuffle(list)
리스트의 요소들을 제자리에서 무작위로 섞는다. 반환값은 없고 원본 리스트가 변경된다.
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
✅ 작은 예제: 주사위 시뮬레이터
import random
print(f"주사위 결과: {random.randint(1, 6)}")
3. 🔁 반복문 함수
✅ range(n)
0부터 n-1까지의 숫자를 생성하는 내장 함수이다. 반복문에서 자주 사용된다.
for i in range(5):
print(i)
결과
0
1
2
3
4
✅ while문
while은 주어진 조건이 True인 동안 반복 실행된다.
count = 3
while count > 0:
print(count)
count -= 1
결과
3
2
1
✅ 무한 루프와 break
조건을 True로 고정하면 무한 루프가 되며, 이를 break로 탈출할 수 있다.
while True:
text = input("종료하려면 'exit' 입력: ")
if text == "exit":
break
✅ for문에서 인덱스 안 쓸 때
변수 _를 쓰면 변수를 쓰지 않고 반복만 하라는 의미가 된다.
for _ in range(3):
print("반복 중!")
✅ continue: 다음 반복으로 건너뛰기
for i in range(5):
if i == 2:
continue
print(i)
결과
0
1
3
4
4. ✂️ 문자열 메서드 정리
문자열은 불변(immutable) 자료형이지만 다양한 메서드로 복사본을 만들 수 있다.
✅ .upper() – 모두 대문자로
s = "python"
print(s.upper()) # 'PYTHON'
✅ .lower() – 모두 소문자로
s = "PyTHon"
print(s.lower()) # 'python'
✅ .capitalize() – 첫 글자만 대문자로
s = "python programming"
print(s.capitalize()) # 'Python programming'
✅ .replace(old, new) – 특정 문자열 바꾸기
s = "I like apple"
print(s.replace("apple", "banana")) # 'I like banana'
✅ .strip() – 문자열 앞뒤 공백 제거
s = " hello world "
print(s.strip()) # 'hello world'
✅ .split() – 구분자 기준으로 나누기
s = "one,two,three"
print(s.split(",")) # ['one', 'two', 'three']
✅ .join() – 리스트를 문자열로 합치기
words = ['one', 'two', 'three']
print("-".join(words)) # 'one-two-three'
5. 📚 리스트 주요 메서드
| 메서드 | 정의 | 인자 | 반환값 | 예시 | 결과 |
.append(x) | 리스트 끝에 항목 x 추가 | x: 추가할 값 | 없음 (None) | fruits.append("grape") | ['apple', 'banana', 'grape'] |
.insert(i, x) | 인덱스 i 위치에 항목 x 삽입 | i: 위치, x: 값 | 없음 (None) | fruits.insert(1, "kiwi") | ['apple', 'kiwi', 'banana'] |
.remove(x) | 리스트에서 첫 번째로 나오는 항목 x 삭제 | x: 삭제할 값 | 없음 (None) | fruits.remove("apple") | ['banana', 'apple'] |
.pop(i) | 인덱스 i에 있는 항목 삭제하고 반환 | i (선택): 삭제할 위치 (기본은 마지막) | 삭제된 값 | fruits.pop(1) | 'banana' |
.sort() | 리스트를 제자리에서 정렬 | 없음 | 없음 (None) | numbers.sort() | [1, 2, 3, 4] |
.reverse() | 리스트를 거꾸로 뒤집음 | 없음 | 없음 (None) | numbers.reverse() | [4, 3, 2, 1] |
.count(x) | 리스트에서 항목 x의 개수 반환 | x: 검색할 값 | 정수 | fruits.count("apple") | 2 |
.index(x) | 항목 x가 처음 나오는 인덱스 반환 | x: 검색할 값 | 정수 | fruits.index("banana") | 1 |
.clear() | 모든 항목 제거 | 없음 | 없음 (None) | fruits.clear() | [] |
.copy() | 리스트 복사본 생성 | 없음 | 새로운 리스트 | copy_list = fruits.copy() | copy_list == fruits |