| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 랭그래프
- 소프트웨어 개발
- 객체지향
- dementional reduction
- 기초
- python기초
- 정보처리기사
- 머신러닝
- python 기초
- 힙정렬
- 딥러닝
- 캐글
- CNN
- 알고리즘
- Python
- 생성형 인공지능
- TTS
- 데이터 시각화
- ASR
- CLIP
- 자연어처리
- 트랜스포머
- RNN
- Transformer
- RDBMS
- 데이터엔지니어
- SQL
- LangGraph
- UMAP
- 에이전트
- Today
- Total
수달이네 기술 블로그
3. 반복문 본문
🔍파이썬의 디버깅
파이참에서 디버깅은 shift + f9로 시작하고, 다음줄로 넘기는 것은 f7을 이용한다.
🔍for문
파이썬에서 for문은 두가지 형태가 있는데,
정해진 횟수(range)만큼 반복하는 방법과 리스트를 반복하는(c에선 포인터로 직접 리스트를 반복하는 형식)이 있다.
😎정해진 횟수만큼 반복
range()함수를 사용하여 정수 리스트를 반환시켜 정해진 횟수만큼 반복할 수 있다.
range(n): 0~n-1까지의 정수 리스트를 반환
summary = 0
for i in range(100):
summary += i
print(summary) #4950(0~99까지 더함)
range(start,stop): start~stop-1까지 정수 생성
summary = 0
for i in range(50,100):
summary += i
print(summary) #3725(50~99까지 더함)
range(start,stop,step): start~stop-1까지 step의 간격으로 정수생성
summary = 0
for i in range(50,100,2):
summary += i
print(summary) #1850 (50~99까지 2스탭씩 더함)
위에서 말했듯이 range()함수는 list를 만들어서 return 해준다(파이썬 3버전 이전)
💡3버전이상부터는 generator를 반환!
그 이유는 해당 방식의 경우 range가 만들어내는 list가 길면 길경우 그만큼의 메모리를 모두 사용해야하여 비효율적이다.
이때문에 파이썬 3버전 이상부터는 generator라는 객체로 리턴하는데
해당 generator를 실행하면, 루프를 하나하나 돌때마다 하나의 값만 리턴하며, next로 다음 값이 있다면 불러오는 방식이다.
😎리스트에 대한 반복
문자열이나 리스트같은 시퀀스를 처음부터 훑으며 반복할 수 있다.
names = ['james','johnson', 'kael', 'helen']
for name in names:
print(name)
이런 방식으로 리스트 반복을 하여 리스트를 순서대로 출력할 수 있다.
문자열또한
message = "Hello World!"
for l in message:
print(l)
위와 같이 반복하여 문자열을 하나하나 출력해낼 수 있다.
😎아래는 반복문을 이용한 간단한 예제이다.
팩토리얼
factorial = 1
num = int(input("Enter a number: "))
for i in range(1, num + 1):
factorial = factorial * i
print(factorial)
피보나치
before_fibo = 0
fibo = 1
num = int(input())
for i in range(num):
if fibo < num:
print(fibo)
else:
break
tmp = fibo
fibo = before_fibo + fibo
before_fibo = tmp
🔍while문
python은 c언어와 다르게 do-while문은 사용하지 않고, while문만 사용한다.
i = 0
while i < 5:
print(i,"번 반복함")
i += 1
print("반복 종료")
위와 같은 형식으로 조건문과 같이 ':(콜론)'을 사용하여 반복한다.
while 문의 경우 무한루프에 갇힐 수 있으므로 무한루프를 해결 할 수 있는 식을 반드시 기술해야 한다.
i = 0
while i < 5:
print(i,"번 반복함")
i += 1
print("반복 종료")
😎보초값(sentinel)
입력될 데이터의 개수가 미리 알려지지 않거나 데이터가 너무 많아서 개수를 알기가 힘들 경우에
데이터의 끝에 끝을 알리는 특수한 데이터를 놓고, 데이터를 입력하다가 특수한 데이터가 입력되면 입력을 중단한다.
이처럼 데이터의 끝을 알리는데 사용되는 값을 보초값이라 한다.
n = 0
total = 0
score = 0
print("종료를 원하면 음수를 입력") #보초값
while score >= 0:
score = int(input("성적을 입력"))
if score > 0:
total += score
n = n + 1
if n > 0:
avg = total / n
else:
avg = 0
print("성적의 평균은 %s입니다" % avg)
위에서는 음수가 보초값인데,
보초값은 일반적인 데이터값에서 절대 나타날 수 없는 값으로 선택한다!
'언어 > Python' 카테고리의 다른 글
| 5. 함수 (0) | 2025.08.23 |
|---|---|
| 4. 자주 쓰이던 함수 (0) | 2025.08.22 |
| 2. 조건문 (2) | 2025.08.21 |
| 1. 파이썬의 기본 타입, 규칙 등... (2) | 2025.08.20 |
| 0. 파이썬의 기초 (1) | 2025.08.19 |