티스토리 뷰
5.1 루프(Loops)
- 루프는 명령어를 반복적으로 실행시키는 경우에 사용한다.
- 예를 들어, print("Progamming is fun!")이라는 명령어를 100번 실행하여야 할 떄, print 명령어를 100번 작성하는 것은 비효율적이다.
- 이런 경우 파이썬에서 제공하는 루프(Loop) 명령문을 이용한다면 100번 작성할 필요가 없다.
* 루프문 예시
count = 0
while count < 10:
print("Progamming is fun!")
count += 1
- 루프(loop)는 count < 10 이 참(true)인지 확인한다.
- 만약 참이라면 루프문 바디(body)안에 있는 명령문들을 반복한다.
- 위 코드에서는 print함수와 count를 1씩 증가시키는 명령을 반복한다.
- 루프문은 count < 10이 거짓(false)가 될 떄까지 루프문 안의 명령문들을 반복한다.
- 루프문이 종료되고 나서야 다음 명령어들이 실행된다.
- 파이썬은 while과 for 형태의 루프문 형태를 제공한다.
- while은 조건기반루프(condition-controlled loop)이며, 참(true)/거짓(false)의 조건에 의해 통제된ㄷ.
- for는 횟수기반루프(count-controlled loop)이며, 사용자가 정한 횟수만큼 반복한다.
5.2 while 문(The while Loop)
-while문은 조건이 참인 동안 명령어를 실행시키는 명령어이다.
*while문 형식
while loop-cotinuation-condition:
#Loop body
statemaent(s)
- 각 반복문에는 부울 표현식(boolean expression)인 조건식(loop-cotinuation-condition)을 가지고 있으며, 이 조건식이 반복문 바디(body)안의 명령어들을 실행시킬지를 결정한다.
- 계산 결과가 참이라면 반복문 바디안의 명령어들을 반복실행시키고, 거짓이라면 반복문을 종결시킨다.
* 1부터 9까지 더하는 프로그램
sum = 0
i = 1
while i < 10:
sum += i
i += 1
print("sum is", sum)
위의 프로그램이 만약 아래와 같이 작성되어 있다면
sum = 0
i = 1
while i < 10:
sum += i
i += 1
print("sum is", sum)
- i += 1은 반복문 바디안에 있지 않기 때문에 반복문은 항상 참이 된다.
-그래서 위의 반복문은 결국 무한반복실행을 하게 된다.
* while문으로 문제정답을 맞출때까지 입력을 받는 프로그램
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
import random
number1 = random.randint(0,9)
number2 = random.randint(0,9)
if number1 < number2:
number1, number2 = number2, number1
answer = eval(input("what is the " + str(number1) + " - " + str(number2)+ " ? "))
while number1 - number2 != answer:
answer =eval(input("Wrong answer. try again. what is the "+ str(number1) + " - " + str(number2)+ " ? "))
print("You got it!") |
cs |
5.3 for 루프(The for Loop)
- for문은 각 시퀀스 값에 따라 반복하는 명령문이다.
- 반복을 얼마나 할 지 정확한(exact) 횟수를 기반으로 구성되는 반복문인다.
- while문과 비교해보자면 아래와 같다.
i = initialValue
while i < endValue :
#Loop body
i += 1
이 while문 코드와 아래의 for문 코드는 동일한 의미이다.
for i in range(initialValue, endValue)
#Loop body
*for 문 형식
for var in sequence
- 변수 var는 각각의 연속된 시퀀스 값을 가진다.
- 차후에 시퀀스 타입에 대해 다룰 예정이다.
- range(a, b) 함수는 각각의 정수 시퀀스를 반환하는 함수이다.
ex) a, a+1 ... b-2, b-1
*range() 예시
for v in range(4,8)
print(v)
....
4
5
6
7
- range() 함수는 두 가지의 버전이 더 존재한다. ex) range(a), range(a, b, k)
- range(a)는 range(0, a)와 같은 의미이다.
- range(a,b,k)에서 k는 각 시퀀스 값에 k만큼 더하면서 반복을 진행하라는 의미를 가지고 있다.
- 즉 range(a,b,k)는 a부터 시작에 b까지 k씩 더하면서 반복문을 실행한다.
- 만약 k가 음수라면 빼면서 진행도 가능하다.
- 시퀀스 값은 반드시 정수이어야 한다.
*range(a,b,k) 예시
for v in range(3, 9, 2)
print(v)
3
5
7
참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다.
※
'파이썬 > 이론' 카테고리의 다른 글
[파이썬]break, continue, 소수 출력(Prime Number), 랜덤워크(Random Walk) (0) | 2017.07.21 |
---|---|
[파이썬]중첩 루프, 최대공약수, 몬테카를로 시뮬레이션 (0) | 2017.07.21 |
[파이썬]조건식,연산자 우선순위와 결합법칙, 객체의 위치파악 (0) | 2017.07.18 |
[파이썬]논리 연산자(or, and, not), 윤년 계산, 복권 프로그램 (0) | 2017.07.18 |
[파이썬]중첩 if문, if-elif-else문, 선택문 오류들 (0) | 2017.07.18 |
- Total
- Today
- Yesterday
- 자바
- 자바스크립트 자료구조
- 파이썬 리스트
- 파이썬 진수 변환
- 파이썬 for
- 파이썬 객체
- 자바스크립트 그래프
- 파이썬 문자열
- css
- 파이썬 예제
- 백준 10451
- 파이썬 단계적 개선
- 파이썬 선택문
- 자바 에센셜 실습문제
- 웹
- 버츄어박스
- 파이썬 클래스
- 백준 1874
- css 박스
- 파이썬 연산자
- 파이썬 while
- 파이썬 함수
- 백준
- 파이썬 터틀
- 파이썬
- 파이썬 if문
- 명품 c++ 실습
- css 그리드
- 자료구조
- 백준 11501
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |