본문 바로가기

Hello python!/python_Basic

파이썬 시작 (제어문_while 반복문 + 조건문, for 반복문)

20221007

4일차


 

 

이제 무한의 세계로 떠난다.


 

변수를 만들고

while이라는 반복문을 만들어보자.

위의 사진을 해석해 보자면

 

변수가 0일때

변수가 2보다 작거나 같다면

변수에 1을 더하여 저장하라

그리고 프린트를하라.

 

요게 저 식의 설명이다.

 

변수 = 0부터 시작해서 ⇢ 1번째 프린트

변수 = 1 2번째 프린트

변수 = 2 3번째 프린트

변수 = 3 ⇢ 조건 변수 > 2 ⇢ 종료 

 

* 포인트는 예측해서 아 변수가 2이니 다음은 무조건 안되겠구나 하면 안된다.

변수가 3일때까지 가서 False가 일어나는 시점에 조건문은 종료된다.

 


무한루프는 아주 간단하다 무한대로 가는 조건을 만들어 주면 된다.

컴퓨터에서 실행시켰을경우 몇 초만에 몇 만개의 데이터를 만들어 내기 때문에

저장공간이 터질 가능성이 있다. 

 

그래서 break문을 이용해 중지 해야한다.

일종의 퓨즈 같은 느낌이다.

 


만약 현재 진행중인 로직은 스킵하고 다시 처음으로 가서 진행하고 싶다면

continue문을 사용하면 된다.

 

홀수만 출력 짝수만 출력 등등 유용하게 쓰인다.

 

 


 

for 반복문은 약간 분배? 같은 느낌으로 이해했다.

 

파이썬 튜터를 이용해 위 사진의 코드를 실행시켜 보자.

 

 

첫 번째

변수가 저장된다.

Frames스택 Objects으로 이해하면 편하다.

 

두 번째for문이 실행되어 ia의 0번째 값 1을 힙에서 참조해 저장된다.

 

그리고 print가 실행되어 Hello world가 프린트 되는것을 볼 수 있다.

그리고 다시 for문으로 돌아가 a의 1번째 값 2를 참조 i에 저장

print ("Hello world")

그리고 다시 for문으로 돌아가 a의 2번째 값 3를 참조 i에 저장

print ("Hello world")

 

결과 =

Hello world

Hello world

Hello world

 

for문의 진행과정은 이러하다.

리스트a에 저장되는 아이템을 i라는 매개체로 다시 실행시키는것?

요런 느낌이다.


 

tuple로도 가능하다


 

딕셔너리 자료형.key() 메서드와 결과가 동일하다.


 

딕셔너리의 아이템은 항상 key, value이기 때문에 한쌍으로 묶인 자료가 출력된다.


대입받는게 딕셔너리 아이템이므로 k, v로 받아야한다.

 


 

따로 설명할게 없는 아주 좋은 함수이다.

 

for문에서 자주 쓰이는 메서드인데 원하는 범위의 값을 역으로도 출력 가능하다.

 

그럼 for문range함수를 이용해서 중첩 반복문을 만들어 보자.

 

 


위 사진의 for문을 보면

 

irange 5만큼의 범위분배하세요 라는 해석이 가능한데

range 50, 1, 2, 3, 4 이므로

5회 for문프린트("회원님 좌로 가세요",  "회원님 우로 가세요.")가 적혀지고

 

for문이 끝나고 마지막에

프린트("회원님 수고하셨어요 한세트 끝났어요!")가 또 있으니 결과가 위와 같이 나온다.

 


for문 안의 for문이 있는 형태

 

바깥쪽 j블럭첫 번째에서

안쪽의 i블럭2번 실행되고

 

다시 바깥쪽 j블럭두 번째에서

안쪽의 i블럭2번 실행

 

다시 j블럭으로 갔지만 할게 없으니

안쪽도 스킵하고

마지막 프린트 ("회원님 집에가세요!") 가 출력되는것을 볼 수 있다.

 


 

* print() 뒤에 end="" 추가하면 줄바뀜이 일어나지 않는다.

 

백준문제에서 유용하게 쓰일 수 있다.