예시)
for i in range(5):
print('Hello~')
예시)
for i in range(5):
pass
range() 함수 기본 사용 방법
단계 매개변수를 생략할 수 있는 경우는 단계가 1일 때 가능하다.
예시)
for i in range(1,11):
print(i)
예시)
for i in range(11):
print(i)
예시)
endNum = 10
n = 0
while n <= endNum:
print(n)
n += 1
예시)
while n > 10:
pass
for 문이 적합한 경우 → 횟수에 의한 반복
while 문이 적합한 경우 → 조건에 의한 반복
다음 반복 실행을 위해서 for문과 while문 중 가장 적합한 구문을 이용해서 프로그램을 만들어 보자.
자동차 바퀴가 한번 구를 때마다 0.15mm씩 마모된다고 한다.
현재의 바퀴 두께가 30mm이고 최소 운행 가능 바퀴 두께가 20mm라고 할 때 앞으로 구를 수 있는 횟수를 구해보자.
currentThickness = 30
rotationCnt = 0
removeThickness = 0.15
while currentThickness >= 20:
rotationCnt += 1
currentThickness -= removeThickness
safeRotationCnt = rotationCnt - 1
# 위 while 문에서 나온 rotationCnt 는 최소 운행 바퀴 두께를 한 번 더 넘었기에
# rotationCnt에서 1을 빼 구를 수 있는 최대 횟수를 구해야 한다.
print('운행 가능 횟수 : {}'.format(safeRotationCnt))
반복문을 빠져나올 수 없는 경우
while 문에서 조건식의 결과가 항상 True인 경우
예시)
n = 1
while n < 10:
print('Hello')
조건식에 논리형 데이터를 사용한 경우
예시)
flag = True
num = 0
sum = 0
while flag:
num += 1
sum += num
print('{}까지의 합은 {}입니다.'.format(num, sum))
하루에 독감으로 병원에 내방하는 환자 수가 50명에서 100명 사이일 때, 누적 독감 환자 수가 최초 10,000명을 넘는 날짜를 구해보자.
import random
sum = 0
date = 1
flag = True
while flag:
patientCnt = random.randint(50,100)
sum += patientCnt
date += 1
print('날짜 : {},\t오늘 환자 수 :{},\t누적 환자 수 : {}'.format(date, patientCnt, sum))
if sum >= 10000:
flag = False
예시)
for i in range(1, 100):
if i % 7 != 0:
continue
print('{}은 7의 배수입니다.'.format(i))
예시)
cnt = 0
for i in range(1, 100):
if i % 7 != 0:
continue
print('{}은 7의 배수입니다.'.format(i))
cnt += 1
else:
print('99까지의 정수 중 7의 배수는 {}개입니다.'.format(cnt))
1부터 100까지의 정수 중 3과 7의 공배수와 최소 공배수를 출력하자.
minNum = 0
for i in range(1,101):
if i % 3 != 0 or i % 7 != 0:
continue
print('공배수 : {}'.format(i))
if minNum == 0:
minNum = i
else:
print('최소 공배수 : {}'.format(minNum))
예시) 1부터 100까지 정수를 더할 때, 합계가 100이 넘는 최초의 정수 찾기
sum = 0
searchNum = 0
for i in range(100):
sum += i
if sum > 100:
searchNum = i
break
print('searchNum : {}'.format(searchNum))
10의 팩토리얼(10!)을 계산하는 과정에서 결과값이 50을 넘을 때의 숫자를 구하자.
result = 1
num = 0
for i in range(1, 11):
result *= i
if result > 50:
num = i
break
print('num : {}, result : {}'.format(num, result))
새끼 강아지 체중이 2.2kg가 넘으면 이유식을 중단하려고 한다. 한번 이유식을 먹을 때 체중이70g 증가한다고 할 때, 예상되는 이유식 날짜를 구하자. (현재 체중은 800g이다.)
limitWeight = 2200
currentWeight = 800
date = 1
while True:
if currentWeight >= 2200:
break
date += 1
currentWeight += 70
print('이유식 중단 날짜 : {}일'.format(date))
예시)
for i in range(1, 10):
for j in range(i):
print('*', end='')
# i = 1일 때 : j = 0
# i = 2일 때 : j = 0, 1
# i = 3일 떼 : j = 0, 1, 2
# i = 4일 때 : j = 0, 1, 2, 3
# .
# .
# .
print()
아래의 모양이 출력되도록 코드를 작성하자:
for i in range(10, 0, -1):
for j in range(i):
print('*', end='')
print()
구구단 전체를 출력하자.
for i in range(1,10):
for j in range(2, 10):
result = j * i
print('{} * {} = {}\t'.format(j, i, result), end ='')
print()
이상 데이터 취업 스쿨 Chpt.1 파이썬 기초의 저번 진도 이후의 스터디노트이다.
드디어 어느 정도 주어진 스케줄에 맞추어 정상화가 가까워졌다.
이번 강의들이 제일 복습이 많이 필요한 것들임을 다시 한 번 느꼈다.
강의를 들으면서 실습 문제를 풀고, 또 다시 설명을 들으면서 중요한 부분들을 노트하며 공부했지만, 그래도 만약 이 문제들을 혼자서 풀라고 하면 과연 자신있게 풀 수 있을까라는 의문이 머리 속에서 떠나지 않는다.
계속 정진하는 수 밖에 없을 것 같다.
현재 아침 8시다.
오늘 To-Do 리스트의 첫 번째로는 맥모닝이다.
다녀온 후 기초 문제 풀이를 진행할 예정이다.
오늘도 '열심히'가 아닌,
'그냥' 하는 것을 목표로.
이미지 출처: @waterglasstoon, 제로베이스 강의 일부