3장 for문

Kiyong Lee·2021년 4월 11일
0

파이썬

목록 보기
7/21
post-custom-banner

for문

for문의 기본구조

for 변수 in 리스트or튜플or문자열
수행할문장..

예제를 통해 for문 이해하기

test_list = ['one','two','three']

for i in test_list :
print(i)

다양한 for문들의 사용

a=[(1,2), (3,4), (5,6)]

for (first, last) in a :
print(first,last)
print(first+last)
print("\n")

a 리스트의 요솟값이 튜플이기 때문에, 자동으로 first, last변수에 대입된다된다

for문의 응용

Q. 5명의 학생점수는 98,72,53,61,88 이고, 70점이 못 넘으면 불합격이다.
불합격 학생의 번호는? (앞에서부터 1번임)

score=[98,72,53,61,88]
number = 1

for i in score :
if(i>70) :
print("%s번은 합격" %number)
else :
print("%s번은 불합격" %number)
number+=1

하면 3, 4번이 불합격학생의 번호이다

for문과 continue

while문과 마찬가지로 continue를 쓰면 for문 처음으로 돌아간다

불합격학생에게 재시험을 본다고 문자를 주기 위해 코드를 작성하면코드를 작성하면

score=[98,72,53,61,88]
number = 0

for i in score :
number +=1

if(i>70) :
continue
else :
print("%s번째는 불합격 재시험ㄱㄱ" %number)

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

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

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

b=range(2,13)
print(b) = range(2,13)

끝숫자는 포함되지 않음, 리스트 슬라이싱과 똑같은 이상~미만

range 함수의 예시 살펴보기

add = 0
for i in range(1,11) :
add+=i

print(add)

i는 1부터 값이 들어갈테고

i=1
add=add+i에서 add+i=0+1=1이 된다
이렇게 add는 1,2,... 이렇게 되고 최종 add의 값은 55가 돼서 print(add)하면 55출력

앞서 70점이상이면 합격 예제를 만들었는데

score=[98,72,53,61,88]

for num in range(len(score)) :

if score[num] > 70 : continue
else : print("%s번쨰는불합격ㅜ" %(num+1))

num이라는 변수의 길이는 score의 길이인 5가 된다

즉, 5번의 루프가 돌아가게됨

for와 range를 이용한 구구단

for i in range(2,10) :
for j in range(1,10) :
print(i*j, end=" ")
print('')

가 된다

for i in range(2,10) :
for j in range(1,10) :
print(i*j)

이렇게하면
2
4
6
..
이렇게 나오게 돼서 end를 붙인건데
end는 열전개를 행전개로 바꿔준다

두 번째 for문이 끝나면 첫 번째 for문에서 i가 2->3으로 바뀌는데
3단부터는 다음행에 표기해줘야 하므로 print를 추가해서 행을 넘김넘김

그러면 2단 마지막에 2x9가 끝나고 print('')로 인해 한 칸 넘어감
print("\n")을 해도 되는데, print와 \n을 하면 두칸을 띄어쓰기 하게 되므로 print('')를 사용

리스트 내포하기

리스트 안에 for문을 포함하는 리스트 내포를 사용하면 더 편리하다고.....한다..

a=[1,2,3,4]
result=[]
for num in a :
result.append(num*3)

print(result)

이렇게 해서 result라는 리스트에 값을 넣을 수 있다

이걸 리스트내포를 이용해 간단히 한다면

a=[1,2,3,4]

result = [num * 3 for num in a]
print(result)

여기서 짝수만 담고 싶다면

a=[1,2,3,4]

result = [num * 3 for num in a if num%2==0]
print(result)

기본적인 문법은 [표현식(넣으려는 값) for ? in 객체 if 조건문] 이다

for문을 여러개 사용하는 것도 가능하다

[표현식 for ? in 객체 if 조건문
for .... if
for...if
]

이렇게;;

profile
ISTJ인 K-개발자
post-custom-banner

0개의 댓글