[파이썬] 반복문(while문, for문)

Dragony·2020년 4월 1일
0

파이썬

목록 보기
12/14

while 문의 기본 구조

while 조건문:
수행할 문장1
수행할 문장2
수행할 문장3

break, continue 문 다 사용 가능.

무한루프의 경우 while True: 로 사용

for 문의 기본 구조

for 변수 in 리스트(또는 튜플,문자열):
수행할 문장1
수행할 문장2


>>> a=[(1,2),(2,3),(3,4)]
>>> for (first,last) in a:
...     print(first+last)
...
3
5
7

for문과 함께 자주 사용하는 range 함수

for문은 숫자 리스트를 자동으로 만들어 주는 range라는 함수와 함께 사용되는 경우가 많다.


>>> a=range(10)
>>> a
range(0, 10)

range(0,10)은 0부터 10미만의 숫자를 포함하는 range 객체를 만들어 준다.
시작 숫자와 끝 숫자를 지정하려면 range(시작 숫자, 끝 숫자) 형태를 사용하는데 이때 끝 숫자는 포함되지 않는다.


>>> mark=[90,25,67,45,80]
>>> for number in range(len(mark)):
...     if mark[number] < 60: continue
...     print("%d번 학생 합격입니다." %(number+1))
...
1번 학생 합격입니다.
3번 학생 합격입니다.
5번 학생 합격입니다.

구구단 만들기


>>> 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

입력 인수 end를 넣어준 이유는?

end=" "를 넣어준 이유는 해당 결과 값을 출력할 때 마다 다음줄로 넘기지 않고, 그 줄에 계속해서 출력하기 위해서이다.

리스트 안에 for문 포함하기

리스트 안에 for문을 포함하는 리스트 내포(List comprehension)을 이용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있다.

아래 예제는 a 라는 리스트의 각 항목에 3을 곱한 결과를 result라는 리스트에 담는 예제이다.


>>> a=[1,2,3,4]
>>> result=[]
>>> for num in a:
...     result.append(num*3)
...
>>> print(result)
[3, 6, 9, 12]

이것을 리스트 내포를 이용하면 아래와 같이 간단하게 해결할 수 있다.


>>> result=[num*3 for num in a]
>>> result
[3, 6, 9, 12]

만약 짝수에만 3을 곱하여 담고 싶다면 다음과 같이 'if 문'을 사용할 수 있다.


>>> result=[num*3 for num in a if num %2==0]
>>> result
[6, 12]

리스트 내포의 일반적인 문법은 다음과 같다.

[표현식 for 항목 in 반복 가능 객체 if 조건]

여러개의 for문을 2개 이상 사용하는 것도 가능하다.


>>> result=[x*y for x in range(2,10)
...                     for y in range(1,10)]
>>> 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]
profile
안녕하세요 :) 제 개인 공부 정리 블로그입니다. 틀린 내용 수정, 피드백 환영합니다.

0개의 댓글