IT/프로그래밍

[파이썬] 파이썬 반복문 [패스트 캠퍼스 챌린지 7일차]

뜻밖의 행복 2022. 1. 30. 23:12
반응형

안녕하세요? 뜻밖의 행운입니다.

어느덧 패스트 캠퍼스 챌린지도 7일차 

일주일째에 접어 들고 있네요 계속 여러 일들이 있어

지키지 못하는거 아닌가 조마 조마 했는데 

다 극복하고 아직 까지는 꾸준히 하루 1개씩 듣고 있습니다. 

 

오늘은 조건문 만큼이나 매우매우 중요한 반복문에 대해서 배웠습니다.

 

몰랐는데 학습 통계라는 기능도 있네요 수강률 100%를 향해서 가겠습니다. 고고 

 

조건문과 반복문 2 가지만 정복하면 일상에 필요한 개발은 다 할 수 있지 않을까 감히 생각해 봅니다. 

우리가 프로그램을 개발하는 가장 큰이유가 일상의 문제를 해결하기 위해서고 

그 중에 컴퓨터가 우리 대신 잘하는 일은 반복해서 하는 일이죠 

그 반복을 시키기 위해 우리는 반복문을 배워야 하구요 

 

오늘 배운 반복문은 크게 2가지였습니다. 

 

for 와 while

 

진짜 이러니까 영어 문법 시간 같네요?

 

for 와 while 둘다 모두 반복을 위한 기능인데 똑같은 반복이면 굳이 헷갈리게 두 가지를 만들어 둘 필요가 없겠지요? 

분명히 차이가 있으니 따로 만들어놨을 것입니다. 

 

우선 일반적으로 알려진 가장 큰 차이는 아래와 같습니다. 

 

for : 반복횟수가 정해져 있고 

while : 반복횟수 제한이 없다. 

 

가 가장 큰 차이라고 합니다. 

실제로 그런지는 사실 사용법을 보면 단번에 이해하게 됩니다. 

 

우선 for 사용법에 대해서 간략하게 보겠습니다.

 

# 리스트 사용 
number = [1, 2, 3]

for i in number:
    print(i)

 

파이썬 for 문 리스트 사용

for i in number: 하나씩 뜯어 보면 

forfor 문을 쓰겠다는 선언 같은것이라 for를 쓰고 i는 변수입니다. 

i 말고 다른 것을 써도 되는데 프로그래밍에서 보면 for는 꼭 i를 쓰더라구요

저도 대세를 따랐습니다. 

그리고 in 은 변수 i 에 무엇을 넣을지를 말하는 것이고 뒤에 number는 딱봐도 리스트죠

이렇게 되면 number 라는 리스트에 있는 1, 2, 3이 차례로 할당이 됩니다. 

끝에는 : 을 찍는 것을 잊지 말아야 하구요 ㅎ

 

실제로 그런지는 밑에 print(i) 를 함으로써 i 에 1, 2, 3이 할당 되는지 확인 하는 것입니다.

돌려보면 실제 결과가 1, 2, 3 출력 되는 것을 볼 수 있습니다.

 

for에는 문자열, range 객체도 사용할 수 있는데 바로 예시 보겠습니다.

 

# 문자열 사용 
str = "이것은 그냥 자료가 아니다. 문자형이다."

for i in str:
    print(i)

 

for 문에 문자형 자료 사용

보시면 str 변수에 문자형 자료를 저장하고 

for 변수명 in 문자형 자료를 하니까 

한글자씩 출력되는 결과를 확인 할 수 있습니다. 

 

그리고 range 객체 이렇게 문법을 배워갈때마다 새로운 것들을 추가로 배우는 재미가 있네요 

사실 for에 튜플과 딕셔너리도 할당이 가능한데 이것은 지금 바로 배우기 복잡하여 

다음시간에 배운다고 합니다. 

 

 

 
 

 

우선은 range만 살펴 보도록 하겠습니다. 

range는 단어 그 뜻대로 범위를 나타내고 여기서 사용자가 지정한 범위내의 숫자를 만들어 준다는 특징이 있습니다. 

말은 어렵지만 또 바로 예시를 보면 느낌이 옵니다.

range(10) 을 한다면 0~9 까지 10개의 숫자를 만들어 줍니다. 

range(1, 10) 을 한다면 1 ~ 9 까지 만들어 줍니다. 즉 시작수, 끝수 + 1 패턴입니다. 

range(1, 10, 2) 을 한다면 1, 3, 5, 7, 9 가 만들어 집니다. 즉 시작수에 2씩 증가해서 만들어 지지요 

 

# range() 어떻게 사용할까?

#range(숫자)
for i in range(10):
    print(i)

#range(시작수, 끝수 + 1)
for i in range(1, 10):
    print(i)

#range(시작수, 끝수 + 1, 증가하는 수)
for i in range(1, 10, 2):
    print(i)

위 예제들의 결과를 바로 아래로 확인 해보겠습니다.

 

range 느낌이 옵니다. 간단하지만 강력한 기능으로 응용 할 수 있다고

 

그리고 for 문을 처음 배우면 제일 먼저 받는 과제가 사실 구구단 프로그램 만드는 법입니다.

한번 만들어 볼까요?

 

문제 : 구구단 출력 프로그램을 만들어보자. 프로그램 사용자로부터 출력할 단을 입력 받고, 해당 구구단을 출력하는 프로그램이다.

 

답 : 

gugu = int(input("몇 단을 출력하면 되는가 휴먼?"))

for i in range(1,10):
    print(gugu ,"*", i, "=" ,gugu * i)

역시나 답의 수는 무한합니다. 

저는 range를 사용해서 풀었습니다. 

우선 제대로 동작하는지 볼까요?

네 제가 좋아하는 수 8을 입력하니 구구단이 제대로 출력 되는 것이 보이네요!?

그러면 작성한 것을 다시 살펴 보면

gugu = int(input("몇 단을 출력하면 되는가 휴먼?"))

for i in range(1,10):
    print(gugu ,"*", i, "=" ,gugu * i)
gugu = int(input("몇 단을 출력하면 되는가 휴먼?"))
 
어려울거 없죠? 사용자에게 input 함수로 몇 단을 출력하면 되는지 입력을 받는 부분입니다.
사용자에게 입력 받는 내용을 int() 즉 정수형으로 변환해서 gugu 라는 변수에 저장하겠다는 뜻이지요
 
그리고 바로 오늘 배운 for문
 
for i in range(1,10):
 
구구단은 보통 1~9를 곱하니까 변수 i에 1~9를 할당하면 되니 range로 (1, 10)까지 주고 : 으로 막았습니다.
그리고 이제는 출력만 하면 됩니다. 
출력은 print로 하면 되지요
출력 형태는 변수 * 1~9 = 결과 가 나오면 되니까
 
print(gugu ,"*", i, "=" ,gugu * i)

print 문은 위 형식대로 사용했습니다.

이렇게 되면 gugu 에는 사용자에게 입력받은 값 그리고 * 곱하기 문자 i 는 for에 할당되는 1~9 까지 차례대로 변경되면서 할당 되고 출력  gugu * i 로 두 변수를 연산해준 결과를 출력으로 

구구단 프로그램의 완성이네요!!

 

for 만으로도 이렇게 분량이 많다니 

while 은 다음에 하겠습니다.

 

 

반응형