[Python 기초] 반복문

MINJEE·2023년 8월 20일

SMHRD_1_Python기초

목록 보기
6/7
post-thumbnail

반복문

: 똑같은 명령을 일정 횟수만큼 반복수행하도록 제어하는 명령문

종류

  • while : 반복횟수가 명확하지 않을 때
  • for : 반복횟수가 명확할 때
# while 문
while 조건식: # 조건식이 참일동안 실행문 반복
	실행문

# for 문
for 변수 in 리스트/튜플/문자열: # 리스트/튜플/문자열의 요소를 하나씩 반복하여 실행문 실행
	실행문

관련 명령어

  • break : 반복문을 빠져나가는 명령
  • continue : 반복문의 시작으로 돌아가는 명령

for문 한 줄로 작성하기

변수명 = [값 for 변수명2 in 리스트 if 조건식]

  • 리스트의 요소를 하나씩 변수명2에 넣어서 if문 조건식을 만족하면 값을 새로운 리스트에 넣기

while문 예시

# 예시 : 두 정수를 입력받아 합 구하기 (단, 두 정수 모두 0이면 프로그램 종료)
while True:
    num1 = int(input('첫 번째 정수 입력 >> '))
    num2 = int(input('두 번째 정수 입력 >> '))
    
    if num1 ==0 and num2 == 0 :
        print('프로그램이 종료되었습니다.')
        break
        
    print('두 정수의 합 :', num1+num2)
# 예시 : 1부터 50사이의 숫자 중 하나를 맞추는 게임
import random
num = random.randint(1,50)

while True:
    n = int(input('숫자를 입력하세요 >> '))
    if n < num :
        print(f'{n}보다 큰 수 입니다.')
    elif n > num :
        print(f'{n}보다 작은 수 입니다.')
    else:
        print('정답을 맞추셨습니다.')
        break

for문 예시

  • range() 함수 : 필요한 만큼의 숫자를 만들어줌
    • range(시작할 숫자, 종료할 숫자, 증감량) : default는 range([0,] 종료할 숫자[, 1])
      • range(1,100,3) : 1부터 99까지 3씩 증가
      • range(3,10) : 3부터 9까지 1씩 증가 (숫자 2개 넣으면 시작값과 종료값)
      • range(10) : 0부터 9까지 1씩 증가 (숫자 1개 넣으면 종료값)
  • print() 함수
    • print(출력할 내용, seq = ‘ ‘, end = ‘\n’)
# 예시 : 파이썬 점수를 보고 등급 반환
python_score = [57,86,63,92,35,79]
num=1
for score in python_score:
    if score >= 80:
        grade = 'A'
    elif score >= 60:
        grade = 'B'
    else:
        grade = 'C'
    print(f'{num}번은 {score}점 이며, {grade}등급 입니다.')
    num += 1
# 예시 : 97부터 77까지 -1씩 감소
for i in range(97,76,-1):
    print(i, end=' ')
# 예시 : 3의 배수
for i in range(3,100,3):
    print(i,end=' ')
# 예시 : 문자열 거꾸로 출력
s = ".nohtyp deen uoY ,trohs oot si efiL"
for i in range(len(s)):
    print(s[-i-1], end='')
# 예시 : 구구단
for j in range(1,10):
    for i in range(2,10):
        print(f'{i}*{j}={i*j}', end='\t')
    print('')
# 예시 : ox문제 (처음에 정답이면 1점, 틀리면 0점, 이후 연속으로 정답이면 1씩 증가한 점수, 중간에 틀리면 0점으로 다시 시작)
ox = input('OX입력 >> ')
score = 0 # 총 점수
n = 0 # 연속 정답 수 = 해당 문제 점수
for i in range(len(ox)):
    if ox[i]=='O':
        n += 1
        score += n
    else:
        n = 0
print(f'{score}점')
profile
개발, 분석 배운 내용 정리하기!

0개의 댓글