나 개발자 진짜 되냐?

3일차 파이썬 프로그래밍 구조_for문편 본문

파이썬을 시작했어요!

3일차 파이썬 프로그래밍 구조_for문편

Snow Rabbit 2022. 12. 14. 22:44

for문 바로 보겠습니다.

기본 구조부터 볼까유?!

 

for 변수 in 리스트(또는 튜플, 문자열) :

    문장 1

    문장 2

 

print 해주면서 계속 도는 것이다.

 

이렇게 사용한다고 한다.

 

리스트일 경우 리스트 이름을 맨 뒤에 써주고

리스트 부분 부분을 따로 변수로 만들어 준 모습이다. 

 

for문 앞에 있는 변수는 내가 만들어주는 새로운 변수인 것을 잊지 말자!!

 

for문 문제를 하나 풀어보면서 익혀보자

 

 

 

5명의 시험 성적을 담을 test라는 리스트를 만들어준다. 

 

test = [ 22, 28, 82, 80, 88 ]

 

그다음 for문에 넣어준다.

넣을 땐? 

 

for (새로운변수)i in test :                        # 여기서 i는 for문 안에서만 쓰는 변수이다. for문을 나오면 i는 사라진다.

                                                                              예시 ) test안에 있는 변수들을 새로운 변수 i로 부른다. 

    

    num = num +1                                      # 넣어주는 이유는 인덱스를 모르기 때문에 더해준다. 

    if test >= 60 :

          print("% d 학생 합격" % num)

    else :

          print("%d 학생 불합격" % num)

 

로 완성할 수 있게 된다.

 

for문도 처음으로 돌아가고 싶은 마음이 들 수 도 있잖아요?

 

continue를 사용합니다.

 

위의 식에 예시를 들어서 불합격자는 넘기고 합격자만 적고 싶다면 어떻게 해야 할까?

 

if test < 60 :

     continue

print("% d 학생 합격" % num)

 

으로 쓸 수 있다. 

이렇게 쓰게 되면 continue에 의해 다시 for문 아래로 가고 

if 문에서 빠져나오게 된 경우, 즉 60점 이상일 경우 print가 출력되게 된다.

 

 

range

for문과 자주 쓰인다는 range에 대해 알아보려고 한다.

 

range는 숫자 리스트를 자동으로 만들어주는 함수라고 한다!

 

a = range(8)

a      →      range(0,8)이 된다.

 

range(8)은 0부터 8 미만 7까지 만들어준다.

총 8개가 되겠네..8개를 만든다는 뜻이 되겠다.

range(시작 숫자, 끝 숫자)인데 끝 숫자는 포함하지 않는다.

 

시작 숫자를 쓰지 않고 끝 숫자만 쓰면 자동으로 0부터!!

 

자 그러면 이것을 for문에 어떻게 활용하게 될까?!

 

for a in range(len(b)):

 

 이런 식은 어떻게 해석하냐, range로 만드는데

b의 len 즉 길이만큼(개수만큼) 생성한다는 뜻이다.

 

이 range를 알면 구구단을 만들 수 있다고 한다.

 

한 번 해보자!!!!!!!!!

 

for fnum in range(2,10) :

   for bnum in range(1, 10) :

        snum = (fnum * bnum)

        print(sum, end="")

 

이 세줄이 끝이라고 한다........

정말 간단하다. 

 

for문은 자동으로 다음으로 올라간다는 것을 잊지 말자!

 

end = ""를 쓴 이유가 뭐냐 싶을 텐데

쉽게

원래 print() 안에는 

print(end(\n))이 생략되어있다고 한다.

파이썬에서 print는 자동으로 엔터가 들어가 있는데..

우리는 엔터가 아니라 스페이스로 구분하기 위해서

end값을 공백으로 따로 적어둔 것이다!!!!

 

 

List comprehension

리스트 컨프리헨션이라고 하는 이 친구는 직관적 프로그램을 위해 사용된다.

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

 

이 문제는 a안에 있는 값을 num에 넣어 준 후그 값을 3 곱한 값을 append (리스트 뒤에 추가)

 

 

 

 

 리스트 컨프리헨션을 해주면

이렇게 된다. 

순서는 for문 _>  num*3 _>  result 

 

 

만약에 홀수에만 5를 곱하고 싶을 땐

 result = [ num * 5 for num in a if num % 2 == 1 ]

로 나타낼 수 있다.

 

for문이 두 개인 구구단은 어떻게 만들까?

result = [ x*y for i in range(2,10) for j in range(1,10)]

로 나타낼 수 있다.

 

끄으읏