[Python] 06.반복문
- Develop/Python
- 2020. 12. 30.
■ 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] 01.Python 준비 : https://myinfrabox.tistory.com/170
[Python] 02.Python 스크립트 작성 방법 : https://myinfrabox.tistory.com/171
[Python] 03.변수 선언 및 할당 : https://myinfrabox.tistory.com/172
[Python] 04.문자열 처리 : https://myinfrabox.tistory.com/173
[Python] 05.조건문 : https://myinfrabox.tistory.com/174
[Python] 07.튜플(Tuple) : https://myinfrabox.tistory.com/176
[Python] 08.리스트(List) : https://myinfrabox.tistory.com/177
[Python] 09.사전(Dictionary) : https://myinfrabox.tistory.com/178
[Pytho] 10.set : https://myinfrabox.tistory.com/179
[Python] 11.함수(Function) : https://myinfrabox.tistory.com/180
[Python] 12.클래스(Class) : https://myinfrabox.tistory.com/181
[Python] 13.외부 클래스 사용하기 : https://myinfrabox.tistory.com/182
[Python] 14.파일처리 : https://myinfrabox.tistory.com/183
[Python] 15.MySQL Database : https://myinfrabox.tistory.com/184
'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 |