일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- PyQt
- 함수
- MS-SQL
- port
- sqlite
- ubuntu
- python
- Excel
- javascript
- swift
- 라즈베리파이
- 날짜
- 리눅스
- GIT
- Linux
- mssql
- 다이어트
- tensorflow
- flutter
- PER
- 유니티
- ASP
- 맛집
- MySQL
- PyQt5
- Unity
- IOS
- pandas
- node.js
- urllib
아미(아름다운미소)
for와 함께 자주 사용하는 range함수 본문
for와 함께 자주 사용하는 range함수
for문은 숫자 리스트를 자동으로 만들어 주는 range라는 함수와 함께 사용되는 경우가 많다. 다음은 range 함수의 간단한 사용법이다.
>>> a = range(10)
>>> a
range(0, 10)
range(10)은 0부터 10 미만의 숫자를 포함하는 range 객체를 만들어 준다.
시작 숫자와 끝 숫자를 지정하려면 range(시작 숫자, 끝 숫자) 형태를 사용하는데, 이때 끝 숫자는 포함되지 않는다.
>>> a = range(1, 11)
>>> a
range(1, 11)
range 함수의 예시 살펴보기
for와 range 함수를 이용하면 1부터 10까지 더하는 것을 다음과 같이 쉽게 구현할 수 있다.
>>> sum = 0
>>> for i in range(1, 11):
... sum = sum + i
...
>>> print(sum)
55
range(1, 11)은 숫자 1부터 10까지(1 이상 11 미만)의 숫자를 데이터로 갖는 객체이다. 따라서 위의 예에서 i 변수에 리스트의 숫자들이 1부터 10까지 하나씩 차례로 대입되면서 sum = sum + i라는 문장을 반복적으로 수행하고 sum은 최종적으로 55가 된다.
또한 우리가 앞서 살펴보았던 60점 이상이면 합격이라는 문장을 출력하는 예제도 range 함수를 이용해서 바꿀 수 있다. 다음을 보자.
#marks3.py
marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
if marks[number] < 60: continue
print("%d번 학생 축하합니다. 합격입니다." % (number+1))
여기서 len이라는 함수가 처음 나왔다. len 함수는 리스트 내 요소의 개수를 돌려주는 함수이다. 따라서 len(marks)는 5가 될 것이고 range(len(marks))는 range(5)가 될 것이다. number 변수에는 차례로 0부터 4까지의 숫자가 대입될 것이고, marks[number]는 차례대로 90, 25, 67, 45, 80이라는 값을 갖게 된다. 결과는 marks2.py 예제와 동일하다.
for와 range를 이용한 구구단
for와 range 함수를 이용하면 소스 코드 단 4줄만으로 구구단을 출력할 수 있다. 들여쓰기에 주의하며 입력해 보자.
>>> for i in range(2,10):
... for j in range(1, 10):
... print(i*j, end=" ")
... print('')
...
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
위의 예를 보면 for문이 두 번 사용되었다. ①번 for문에서 2부터 9까지의 숫자(range(2, 10))가 차례로 i에 대입된다. i가 처음 2일 때 ②번 for문을 만나게 된다. ②번 for문에서 1부터 9까지의 숫자(range(1, 10))가 j에 대입되고 그 다음 문장인 print(i*j)
를 수행한다.
따라서 i가 2일 때 2*1, 2*2, 2*3, … 2*9
까지 차례로 수행되며 그 값을 출력하게 된다. 그 다음으로 i가 3일 때 역시 2일 때와 마찬가지로 수행될 것이고 i가 9일 때까지 계속 반복된다.
'랭귀지 > python' 카테고리의 다른 글
python 주식 호가로 구매하기 위해 코스닥 코스피 함수 (0) | 2018.11.02 |
---|---|
python 문자열 앞 0으로 채우기 zfill() (0) | 2018.11.01 |
python null 처리방법 (0) | 2018.10.29 |
[Python] 어제 날짜 구하기 (0) | 2018.10.26 |
python py2exe를 이용한 파이썬 실행파일 만들기 (0) | 2018.10.25 |