[Python] 06.반복문

■ for

시퀀스의 모든 요소가 처음부터 마지막 수행될때까지 계속 반복힙ㄴ;/

 

▶︎ 사용방법

for <루프변수> in <튜플, 리스트등의 시퀀스>:

    <do job>

 

▶︎ 예제 코드

예제 1 : 시퀀스의 부분을 순서대로 실행합니다. range안의 인덱스(숫자) 0번부터 시작됩니다.

코드 :
for i in range(4):
     print("반복", i)

결과 :
반복 0
반복 1
반복 2
반복 3

 

예제 2 : 문자열이 자동으로 익덱싱되어 순서대로 출력됩니다.

코드 :
for ch in "You Raise me up.":
    print("문자:", ch)

결과 :
문자: Y
문자: o
문자: u
문자:  
문자: R
문자: a
문자: i
문자: s
문자: e
문자:  
문자: m
문자: e
문자:  
문자: u
문자: p
문자: .

 

예제 3 : in 있는게 아니라 not in 있습니다. print문으로 바로 사용시 Boolean값이 리턴됩니다.

코드 :
str = "Home Coming Day"
print("Home" in str, "\n")
print("come" not in str)

결과 :
true

false

참고 : 
\n (new line)때문에 한칸이 더 띄워집니다.

 

예제 3 : 기타 코드 예제

참고로 아래와 같은 방법으로 프로그래밍이 가능합니다. 하지만 아래와 같은 문법은 연산과정을 늘리고 쓸데없는 자원을 소비하게 됩니다.

코드 :
str1 = "You Raise me up."
str_size = len(str1)
for i in range(str_size) :  # 위와 같이 한번의 문법으로 처리가 가능합니다.
    print("문자:", str1[i])

 

 

■ range

연속되는 숫자를 만듭니다. 조건에 따른 연속된 숫자도 만들 있습니다.

 

▶︎ 사용방법

range 첫번째 파라미터는 시작, 두번째는 마지막, 세번째는 증가값 입니다.

range(x,x,x) 같은 방법으로 사용합니다.

 

▶︎ 예제코드

예제 1 : 

단순히 숫자 하나(단일값)만 있다면 마지막 값.

입력 : range(10)
결과 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

예제 2 :

첫번째 파라미터는 시작, 두번째는 마지막, 세번째는 증가값 입니다.

입력 : range(2,8,2)
결과 : 2,4,6

입력 : range(2,9,2)
결과 2,4,6,8

 

증가값이 음수로 사용시 뒤부터 시작됩니다.

입력 : range(6,2,-1)
결과 : 6,5,4,3

 

예제 3 : 참고 예제

3개가 같습니다.

range(5)=range(0,5)=range(0,5,1)

 

결과 확인방법

spyder안에서 결과확인 방법은 다음과 같습니다.

print(list(range(10)))
print(list(range(2,8,2)))
print(list(range(2,9,2)))
print(list(ange(6,2,-1)))

 

 

■ while

특정 조건이 만족할때까지 계속 반복하여 수행합니다.

 

▶︎ 사용방법

while <조건문>

 

▶︎ 예제 코드

예제 1 : 특정단어가 맞춰질때까지 계속적으로 반복합니다.

코드 : 
answer = "code"
question = input("단어를 입력하세요: ")
retry = 1
while question != answer :
    print("지금까지 ", retry, "번 추측에 실패했씁니다.")
    question = input("다른 단어를 추측해 보세요: ")
    retry += 1
print("정답입니다. 수고하였습니다.!")

결과 :
단어를 입력하세요: 1
지금까지  1 번 추측에 실패했씁니다.

다른 단어를 추측해 보세요: 2
지금까지  2 번 추측에 실패했씁니다.

다른 단어를 추측해 보세요: code
정답입니다. 수고하였습니다.!

 

 

■ while ~ break

반목문 수행중 반복문을 빠져나가기를 원할 사용됩니다.

 

▶︎ 사용방법

while 조건문

.....

break

 

▶︎ 예제 코드

예제 : 루프 탈출

코드 :
secret = "code"
max_tries = 100
guess = input("단어를 추측해 보세요.: ")
tries = 3
while guess != secret:
    print("지금까지 ", tries, "번 추측에 실패했습니다.")
    if tries == max_tries:
        print("추측할 수 있는 기회를 다 써습니다.")
        break
    guess = input("다른 단어를 추측해 보세요: ")
    tries+=1
if tries <= max_tries and guess == secret:
    print("맞추셨습니다.")

결과 : 5번 기회 틀리기
단어를 추측해 보세요.: 1
지금까지  1 번 추측에 실패했습니다.

다른 단어를 추측해 보세요: 2
지금까지  2 번 추측에 실패했습니다.

다른 단어를 추측해 보세요: 3
지금까지  3 번 추측에 실패했습니다.

다른 단어를 추측해 보세요: 4
지금까지  4 번 추측에 실패했습니다.

다른 단어를 추측해 보세요: 5
지금까지  5 번 추측에 실패했습니다.
추측할 수 있는 기회를 다 써습니다.

결과 : 5번 기회중 맞추기
단어를 추측해 보세요.: 1
지금까지  1 번 추측에 실패했습니다.

다른 단어를 추측해 보세요: code
맞추셨습니다.

 

 

 

■ continue

조건절로 돌아가서 루프를 진행하거나 종료하고 싶은 경우. 아래 예제는 조건이 안맞으면 맨위 for문으로 되돌아갑니다.

 

▶︎ 사용방법

for 조건문

...

continue

...

 

▶︎ 예제 코드

코드 :
x = 0
for x in range(100):
    print("x는", x)
    if x <=5:
        continue
    print("x가 5보다 큽니다.")
    if x%10 == 0:
        continue
    print("x를 10으로 나눌 수 없습니다.")
    if x!=2 and x!=4 and x!=16 and x!=32 and x!=64:
        continue
    print("x는 2의 거듭제곱 수입니다.")

결과 :
x는 0
x는 1
x는 2
x는 3
x는 4
x는 5
x는 6  <- 5보다 크기 때문에 for문으로 돌아가지 못하고 계속 진행됩니다.
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 7
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 8
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 9
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 10
x가 5보다 큽니다.  <- 10으로 나누어지기 때문에 for문으로 돌아갑니다.
x는 11
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 12
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 13
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 14
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 15
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 16
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 2의 거듭제곱 수입니다.  <- x가 16이 아니기 때문에 for문으로 돌아기지 못하고 수행됩니다.
x는 17
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 18
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 19
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 20
x가 5보다 큽니다.
x는 21
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 22
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 23
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 24
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 25
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 26
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 27
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 28
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 29
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 30
x가 5보다 큽니다.
x는 31
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 32
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 2의 거듭제곱 수입니다.  <- x가 32가 아니기 때문에 for문으로 돌아기지 못하고 수행됩니다.
x는 33
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 34
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 35
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 36
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 37
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 38
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 39
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 40
x가 5보다 큽니다.
x는 41
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 42
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 43
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 44
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 45
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 46
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 47
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 48
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 49
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 50
x가 5보다 큽니다.
x는 51
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 52
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 53
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 54
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 55
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 56
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 57
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 58
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 59
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 60
x가 5보다 큽니다.
x는 61
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 62
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 63
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 64
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 2의 거듭제곱 수입니다.  <- x가 64가 아니기 때문에 for문으로 돌아기지 못하고 수행됩니다.
x는 65
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 66
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 67
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 68
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 69
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 70
x가 5보다 큽니다.
x는 71
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 72
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 73
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 74
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 75
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 76
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 77
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 78
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 79
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 80
x가 5보다 큽니다.
x는 81
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 82
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 83
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 84
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 85
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 86
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 87
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 88
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 89
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 90
x가 5보다 큽니다.
x는 91
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 92
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 93
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 94
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 95
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 96
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 97
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 98
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.
x는 99
x가 5보다 큽니다.
x를 10으로 나눌 수 없습니다.

 

 

■ 파이선 다른 회차

[Python] Intro : Very Quick Python : https://myinfrabox.tistory.com/169

 

[Python] Intro : Very Quick Python

개인적으로 공부하면서 정리해 놓은 파이선 자료를 업로드합니다. 여기의 내용은 문법에 대한 자세한 설명은 생략합니다. 개발 경험이 있는 분들에게 굳이 문법에 대한 자세한 설명은 필요없으

myinfrabox.tistory.com

[Python] 01.Python 준비 : https://myinfrabox.tistory.com/170

 

[Python] 01.Python 준비

파이선을 처음 접할때 콘솔로 프로그래밍하기 보다는 편리한 IDE툴을 이용해서 접해보기를 권합니다. 보통 프로그래밍을 처음 배울때 날(raw)코딩으로 처음 접하기를 권하고 저또한 마찬가지이

myinfrabox.tistory.com

[Python] 02.Python 스크립트 작성 방법 : https://myinfrabox.tistory.com/171

 

[Python] 02.Python 스크립트 작성 방법

리눅스, 유닉스에서 파이선을 실행시 맨위에 스크립트 종류를 선언합니다. 물론 선언하지 않고도 수행은 가능합니다. 그러나 리눅스, 유닉스에서 실행되는 대부분의 스크립트는 맨위에 특정 스

myinfrabox.tistory.com

[Python] 03.변수 선언 할당 : https://myinfrabox.tistory.com/172

 

[Python] 03.변수 선언 및 할당

1. 변수 할당 파이선에서 변수할당은 다른 스크립트 언어(php, shell script)처럼 특정 스트링을 입력 후 값을 할당합니다. 좌측은 변수명, 우측은 값을 입력합니다. 또한 변수명은 숫자로 시작할 수

myinfrabox.tistory.com

[Python] 04.문자열 처리 : https://myinfrabox.tistory.com/173

 

[Python] 04.문자열 처리

■ 문자열 인덱스 스트링으로 값을 받을때는 자동으로 인덱스 처리가 됩니다. 스트링 인덱스는 0부터 시작되며 끝에서 읽어올 시 -1부터 시작합니다. ▶︎ 사용방법 변수명[1] : 특정 인덱스에 값

myinfrabox.tistory.com

[Python] 05.조건문 : https://myinfrabox.tistory.com/174

 

[Python] 05.조건문

■ 조건문이 참 혹은 거짓일경우. 조건문의 True, False에 따라 그에 맞는 분기를 실행합니다. ▶︎ 사용방법 if 조건문: ▶︎ 예제 코드 코드 : num_a = 2 if num_a > 0: print("num_a가 0보다 큽니다") else: pr..

myinfrabox.tistory.com

[Python] 07.튜플(Tuple) : https://myinfrabox.tistory.com/176

 

[Python] 07.튜플(Tuple)

■ 튜플 뒤에서 배울 리스트와 비슷합니다. 데이터를 열거하는 식으로 만듭니다. ()안에 데이터를 열거합니다. 튜플의 특징은 tuple = (1,)처럼 단지 1개의 요소만을 가질 때는 요소 뒤에 콤마(,)를

myinfrabox.tistory.com

[Python] 08.리스트(List) : https://myinfrabox.tistory.com/177

 

[Python] 08.리스트(List)

■ 리스트 선언 리스트를 선언하는 방법입니다. ▶︎ 사용방법 기본적으로 []를 사용해서 선언합니다. ["리스트요소","리스트요소","리스트요소","리스트요소"] ▶︎ 예제 코드 strlist = ["TV","냉장

myinfrabox.tistory.com

[Python] 09.사전(Dictionary) : https://myinfrabox.tistory.com/178

 

[Python] 09.사전(Dictionary)

■ 사전 선언 방법 - 1 컬렉션중 사전을 만드는 방법입니다. 사전은 키:값 방식의 선언 방법입니다. {}(중괄호)문으로 시작합니다. 그리고 key:value방식으로 항목을 만듭니다. ▶︎ 사용방법 사전명

myinfrabox.tistory.com

[Pytho] 10.set : https://myinfrabox.tistory.com/179

 

[Pytho] 10.set

□ set이란? 키만 활용하는 데이터 구조로 이해합니다. 수학에서 집합과 동일한 개념입니다. ■ set 선언 방법 set을 선언하는 방법입니다. ▶︎ 사용방법 set변수 = {항목1, 항목2, ....} ▶︎ 예제 코

myinfrabox.tistory.com

[Python] 11.함수(Function) : https://myinfrabox.tistory.com/180

 

[Python] 11.함수(Function)

□ 사전 습득 지식 : 독 스트링(주석 묶기) 함수에는 보통 함수 명세서라 부르는 주석이 있습니다. 이곳에는 함수의 사용방법, 파라미터등을 설명합니다. 의무는 아니지만 팀으로 개발하는 소스

myinfrabox.tistory.com

[Python] 12.클래스(Class) : https://myinfrabox.tistory.com/181

 

[Python] 12.클래스(Class)

□ 클래스 파이선을 이용하여 클래스를 만들 수 있습니다. 다른 객체지향 언어와 거의 비슷합니다. 클래스를 만들고 객체로 선언하여 사용합니다. 그리고 객체의 메소드를 호출해서 사용합니다

myinfrabox.tistory.com

[Python] 13.외부 클래스 사용하기 : https://myinfrabox.tistory.com/182

 

[Python] 13.외부 클래스 사용하기

□ 외부 클래스 사용하기 파이선에도 여러가지 유용한 클래스를 제공합니다. 수학, 스트링, 랜덤수, 시간등등 여러가지 외부에서 임포트해서 유용하게 사용할 수 있는 여러 클래스를 제공합니

myinfrabox.tistory.com

[Python] 14.파일처리 : https://myinfrabox.tistory.com/183

 

[Python] 14.파일처리

□ 파일처리 파일을 생성, 수정, 읽기를 하는 방법을 알아봅니다. ■ 파일 생성. 신규 파일을 생성합니다. 만약 기존 파일이 있을시 덮어씁니다. 파일을 생성하고 그 파일안에 내용을 작성할 수

myinfrabox.tistory.com

[Python] 15.MySQL Database : https://myinfrabox.tistory.com/184

 

[Python] 15.MySQL Database

□ MySQL데이터베이스 사용방법 MySQL 데이터베이스에 대해 사용방법을 알아봅니다. DB생성, 테이블 생성-삭제, DML문법을 알아봅니다. ■ 데이터 베이스 사용을 위한 환경설정. 파이선에서 MySQL데이

myinfrabox.tistory.com

 

'Develop > Python' 카테고리의 다른 글

[Python] 08.리스트(List)  (0) 2020.12.30
[Python] 07.튜플(Tuple)  (0) 2020.12.30
[Python] 05.조건문  (0) 2020.12.29
[Python] 04.문자열 처리  (0) 2020.12.29
[Python] 03.변수 선언 및 할당  (0) 2020.12.29

Designed by JB FACTORY