오늘이 어제보다 더 어려운거 같다.
뭔가 보면서 하면 될거 같은데, 혼자서 퀴즈를 풀려고 하면 어떻게 해야 할 지 모르겠다.
발표하시는 분들 보면 다 이해가 되시는거 같은데 나만 모르는거 같다.
오늘은 for, while, break를 이용한 반복문에 대해서 공부했다.
for letter in reversed('Python'):
... print(letter, end='')
Python이라는 글자를 거꾸로 P y t h o n 이런식으로 출력이 되게 한다.
여기서 end=''사이에 .를 넣게 되면, P.y.t.h.o.n 이런식으로 출력이 된다.
range 범위를 넣게 되면 반복의 범위를 정해줄 수 있어 무한반복을 방지 할 수 있다.
ex/
count = int(input('반복할 횟수를 입력하세요: '))
for i in range(count):
print('Hello, world!', i)
이런 식으로 원하는 숫자를 넣어서 내가 범위를 직접 정할 수 있다.
import random # random 모듈을 가져옴
i = 0
while i != 3: # 3이 아닐 때 계속 반복
i = random.randint(1, 6) # randint를 사용하여 1과 6 사이의 난수를 생성
print(i)
랜덤으로 돌려서 위에서 원하는 3이 나올 때 까지 계속 반복하는 루트가 가장 기억에 남았다.
이런 방식으로 확률값을 구한다는 것을 알았는데, 왠지 자주 쓰이는 while문 중에 하나 같다.
while문에서는 반복문으로 무한루프를 만드는 것 같은데, 처음에는 무한루프가 어디 쓰이려나? 하고 생각했었는데, 조원분들이 게임이나, 백그라운드 어플 이런데에 쓰인다고 말해 주셔서 무한루프가 어디에 쓰이는지 알 수 있었다. (게임 매크로도 포함인가?)
i = 0
while True: # 무한 루프
print(i)
i += 1 # i를 1씩 증가시킴
if i == 100: # i가 100일 때
break # 반복문을 끝냄. while의 제어흐름을 벗어남
이 문장은 0~99까지 숫자를 쓰고 마지막 100의 값이 나오면 멈추는 루트다. 그래서 100은 출력되지 않고, 99까지만 출력이 되는데, 이 루트에서 i+=1의 값을 print(i)위에 올리면 아예 1~100까지의 숫자가 다 나오게 된다.
왜 그런 걸까? 먼저 위에 있는 루트는 i가 0에서 부터 시작을 하고 print(i)를 통해 먼저 0을 출력을 한다.
그 다음 0출력된 값에 1을 더해서 출력엔 1이 나오고 이게 계속 반복되어 쭉쭉 99까지 가다가 99출력값이 나오면 거기에 1을 더해 100의 값이 나온다.
하지만 100에서는 break가 걸리므로 100은 출력되지 않고 99까지만 나온 것이다.
그러나 여기서 i+=1값을 print(i)위에 올린다면, 처음 i=0값에 바로 1을 더한뒤에 출력을 해버리니까 1이 맨 처음 나올 수 있는 것이고, 마찬가지로 마지막 99출력값에 1을 바로 더한 뒤 출력을 해 100이라는 숫자가 나오는 것이다.
이게 오늘 배운것 중에 내가 생각하기로는 머리에 그나마 남는 것 같다.