728x90
반응형
파이썬 최고의 조건문
for 변수 in 리스트(또는 튜플, 문자열):
수행할 문장1
수행할 문장2
...
for문은 다른 조건문보다 기본 구조가 중요한데,
리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 "수행할 문장1", "수행할 문장2" 등이 수행된다.
- 전형적인 for문
- 다양한 for문의 사용
- for문의 응용
1. 전형적인 for문
>>> test_list = ['one', 'two', 'three']
>>> for i in test_list:
... print(i)
...
one
two
three
2. 다양한 for문의 사용
>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
... print(first + last)
...
3
7
11
3. for문의 응용
"총 5명의 학생이 시험을 보았는데 시험 점수가 60점이 넘으면 합격이고 그렇지 않으면 불합격이다. 합격인지 불합격인지 결과를 보여 주시오."
# marks1.py
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number +1
if mark >= 60:
print("%d번 학생은 합격입니다." % number)
else:
print("%d번 학생은 불합격입니다." % number)
for문과 continue
60점 이상인 사람에게는 축하 메시지를 보내고 나머지 사람에게는 아무 메시지도 전하지 않는 프로그램
# marks2.py
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number +1
if mark < 60:
continue
print("%d번 학생 축하합니다. 합격입니다. " % number)
for문과 함께 자주 사용하는 range 함수
>>> a = range(1, 11)
>>> a
range(1, 11)
시작 숫자를 포함 하지않고 끝 숫자만 지정하는 경우 0부터 끝 숫자 미만을,
시작 숫자와 끝 숫자를 지정하면 이 때도 끝 숫자는 포함되지 않는다.
>>> add = 0
>>> for i in range(1, 11):
... add = add + i
...
>>> print(add)
55
#marks3.py
marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
if marks[number] < 60:
continue
print("%d번 학생 축하합니다. 합격입니다." % (number+1))
len 함수는 리스트 안의 요소 개수와 문자열의 길이를 돌려주는 함수이다.
for와 range를 이용한 구구단
>>> for i in range(2,10): # ①번 for문
... for j in range(1, 10): # ②번 for문
... 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
print(i*j, end=" ")에서 매개변수 end를 넣어 준 이유는 해당 결괏값을 출력할 때 다음줄로 넘기지 않고 그 줄에 계속해서 출력하기 위해서이다.
print(' ')는 2단, 3단 등을 구분하기 위해 두 번째 for문이 끝나면 결괏값을 다음 줄부터 출력하게 해주는 문장이다.
리스트 내포 사용하기(List comprehension)
리스트 안에 for문 포함하기
[표현식 for 항목1 in 반복가능객체1 if 조건문1
for 항목2 in 반복가능객체2 if 조건문2
...
for 항목n in 반복가능객체n if 조건문n]
기본구조
>>> a = [1,2,3,4]
>>> result = []
>>> for num in a:
... result.append(num*3)
...
>>> print(result)
[3, 6, 9, 12]
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3, 6, 9, 12]
>>> a = [1,2,3,4]
>>> result = [num * 3 for num in a if num % 2 == 0]
>>> print(result)
[6, 12]
짝수에만 3을 곱하여 담기
>>> result = [x*y for x in range(2,10)
... for y in range(1,10)]
>>> print(result)
[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]
구구단 결과를 리스트에 담기
728x90
반응형
'Programming > Python' 카테고리의 다른 글
[파이썬] 13. 함수 (0) | 2021.02.14 |
---|---|
[파이썬] 조건문 정리 (0) | 2021.02.14 |
[파이썬] 11. while문 (0) | 2021.02.14 |
[파이썬] 10. if문 (0) | 2021.02.14 |
[파이썬] 자료형 정리 (0) | 2021.02.14 |