Skip to main content

Command Palette

Search for a command to run...

[Python TIL] Python 기초 복습

print, input, list, for, while

Published
5 min readView as Markdown
K

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).

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

More from this blog

[Python 자료구조] Binary Tree(이진 트리) 개념과 배열

자료구조 중에서도 가장 자주 등장하고, 가장 중요한 트리 중 하나가 바로 이진트리(Binary Tree)이다.만약 자료구조 공부를 처음 시작했다면, 이진트리는 꼭 제대로 이해하고 넘어가야 할 핵심 개념이다. 그렇다면 이진트리는 도대체 어떤 구조이며, 왜 이렇게 중요할까? 🌳 이진트리란? 이진트리(Binary Tree)는 이름 그대로 자식 노드를 최대 두 개까지만 가질 수 있는 트리를 의미한다.자식 노드가 1개거나 0개일 수도 있지만, 최대...

Apr 8, 20253 min read

[Python 자료구조] Tree(트리) 구조

회사 조직도, 가계도, 또는 어떤 계층적인 구조를 표현할 때 자주 등장하는 그림이 있다. 바로 '트리 구조'이다. 그런데 이 구조를 처음 보면, "도대체 어디가 나무야?" 라고 생각할 수 있다. 하지만 나무를 거꾸로(180도 돌려서) 생각해보면 이해가 쉽다. 위쪽에 커다란 줄기(기둥)가 있고, 아래로 가지가 퍼져 나가는 모습과 아주 흡사하기 때문이다. 그래서 우리는 이런 구조를 트리(Tree) 구조라고 부른다. 🧩 트리(Tree)란 무엇인가...

Apr 8, 20253 min read

[Python 자료구조] Stack(스택)

스택 정의, 값 넣기/빼기 프로그래밍을 처음 접할 때 나오는 대표적인 자료구조 중 하나가 바로 스택(Stack) 이다. 이름만 들으면 어렵게 느껴질 수 있지만, 실제로는 우리 일상에서도 쉽게 찾아볼 수 있는 개념이다. 예를 들어 젠가(Jenga) 게임을 떠올려보자. 스택이란? 젠가로 이해하는 Stack의 원리 젠가 블럭을 하나씩 통에 넣고 꺼내는 상황을 상상해보자. 가장 최근에 넣은 블럭은 통의 가장 위에 쌓이게 된다. 그리고 꺼내고자 할 때...

Apr 7, 20253 min read

[Sql] 제약 조건과 무결성

SQL을 공부하다 보면 반드시 만나게 되는 용어들이 있다. 바로 기본키, 외래키, 무결성 제약 조건 같은 개념이다. 이 글에서는 이 용어들을 단순히 암기하는 게 아니라, 예시를 통해 자연스럽게 이해할 수 있도록 정리해보았다. 🎯 제약 조건이란? 제약 조건(Constraint)은 데이터베이스에 저장되는 데이터의 정확성과 신뢰성을 보장하기 위해 설정하는 규칙이다. ✅ 한 줄에 하나씩만 작성해야 하며, 테이블 생성 시 컬럼 옆에 정의하거나 AL...

Apr 7, 20253 min read

[Python TIL] Python에서 False와 True로 평가되는 값들

파이썬에서는 if 조건문이나 while 같은 컨트롤 흐름에서 자동으로 False로 간주되는 값들이 있다. 이걸 "Falsy 값" 또는 "Falsy Object" 라고 부른다. 이걸 알아두면 코드를 훨씬 깔끔하게 쓸 수 있다. 예를 들어, if not my_list: 같은 표현이 빈 리스트를 체크하는 데 쓰이기도 하기 때문이다. ⚠️ 파이썬에서 False로 평가되는 값들 (Falsy 값) 유형예시설명 숫자형0, 0.0, 0j정수, ...

Apr 6, 20252 min read

Code Compass

75 posts