본문 바로가기
[ CODING STUDY ]/》파이썬 공부

파이썬 11장(time, random, import, 조건문, 반복문)

by MRG 2020. 9. 21.
728x90
반응형

▣ 안녕하세요 ^^
저번장 공부는 열심히 해보셨나요?
오늘은 간단하게 time함수와 random함수를 공부해보도록 하겠습니다.
time함수와 random함수에 모든 기능을 다 설명하는 건 아니고 
기본적인 부분을 공부해보고 간단하게 
심플 프로젝트를 진행하여 이해하는 방식으로 진행하겠습니다. 
이점 참고해주시면 감사하겠습니다. 

 

▣ 먼저 시간을 구하는 함수를 사용하려면 
import로 time 모듈을 가지고 와야 합니다.
쉽게 이야기해서 C언어에서 #include를 해서 
현재 내 코드에 time함수를 사용하는 코드를 포함시킨다라고 생각해주시면
좀 더 이해가 쉬우실 거 같습니다. 
그런 다음에 바로 print함수를 이용하여 
time.time()
time모듈 안에 있는 time() 함수를 넣어서 출력하면 이렇게 
큰 숫자가 나옵니다. 
제가 주석에도 써두었지만, 
이건 1970년 1월 0시 0분 0초 부터 지금까지에 시간을 초단위로 환산하여 반환을 해주는 
함수입니다. 
그럼 이걸 이용해서 무엇을 할수있을까요?
쉽게 생각하면 시간이 지날 때마다 time.time()에 숫자도 점점 늘어난 다른 걸 알 수 있습니다.
그럼 다시 풀이하자면 저 함수를 이용해서 
카운트를 셀 수 있다는 말이 됩니다. 
한번 고민해보시고 만들어 보신 다음에 제 코드를 봐주세요.

 

▣ 이렇게 endTime이라는 변수에 time.time() + 5를 했습니다.
그럼 현재 경과한 시간보다 5라는 숫자가 더해지면 5초가 더 크겠죠?
그런 다음에 numCount변수를 만들어
5초 동안 얼마나 반복을 하는지 확인하기 위해 만들었습니다.
그런 다음에 whlie에 time.time() < endTime을 넣으면 endTime이 5초가 더 크기 때문에
현재시간이 endTime보다 같거나 커질 때까지 while문이 작동합니다. 
그럼 while문이 끝나고 출력을 해보면 29736116번을 반복하는 걸 확인할 수 있습니다.
이건 컴퓨터마다 다를 수 있습니다. 


▣ 꼭 실습은 직접 해보시고 제가 만든 코드를 정답이라고 생각하시 마세요
저는 코딩이 정답이 없다고 생각하고 완벽한 코딩도 없다고 생각합니다.
그러니 여러분들에 사고에서 나온 코드로 바꿔보시고 만들어보세요.


▣ 그럼 문제 이걸 이용해서 우리가 저번에 반복문을 이용해서 했던
곱하기를 랜덤으로 문제를 주고 10초 안에 그걸 몇 개를 맞추는지 구하는 
프로그램을 한번 만들어보세요.
직접 고민해보시고 그다음에 제 코드를 봐주세요.

 

▣ 저는 간단하게 이렇게 코드를 짜보았습니다.
랜덤 함수를 사용하기 위해서 import random을 하고 
endTime 에는 10초 경과하는 시간을 넣었습니다.
그리고 답을 맞히는 값을 저장하는 변수와 
곱하기 값을 랜덤으로 줄 피연산자 두 개 
답을 입력받을 변수 하나를 만들어주었습니다.
여기까지 제가 글로 설명했지만 여러분들이 한줄한줄 해석해보시면서 
코드를 작성하시기 바랍니다. 
코딩은 정말 읽는 게 중요합니다. 


▣ 그런 다음에 print함수를 이용하여 시작하는 것과 게임에 룰을 이야기해주고 start를 
입력하면 시작한다라는 문구를 print 해주었습니다.
이건 바로 시작하자마자 시간이 지나지 않게 하기 위해서 했습니다.
그래야 startStr = input() 함수에서 기다리기 때문이죠.
그래서 사실 endTime변수를 input함수 밑에 두셔도 됩니다. 
자신이 start라는 글자를 너무 늦게 입력하면 몇 초를 까먹을 수도 있으니 말이죠.
그런 다음에

 

▣ 조건문으로 start를 제대로 입력하면 while문이 작동해서 구구단 게임이 시작되고
아니면 else로 잘못 입력하셨습니다라고 프로그램이 끝나는 걸 넣었습니다.
이건 여러분들이 원하시는 문구를 넣으시면 될꺼같습니다.
아니면 다시 처음으로 start를 입력하게 하셔도 됩니다. 


▣ 랜덤에 값을 넣어야 하는데 
random을 사용하려면 random. 에 접근하여 randrange() 함수를 사용해야 합니다.
그럼 (2, 10) 이렇게 입력하면 2부터 9까지 숫자 중에 랜덤으로 값을 반환하게 됩니다.
그런데 왜 9가 아니고 10이라고 하실 수 있으실 겁니다.
두 번째 입력한 값은 포함하지 않고 -1 값만큼 포함한다라고 생각하시면 편할 거 같습니다.


▣ 그리고 랜덤으로 곱하기를 준 값에 맞으면 answerCount 변숫값이 +1되는 코드를 넣었습니다.
그리고 10초가 지나면 print함수로 10초 동안 맞춘 정답을 출력하게 됩니다. 
자 확인해볼까요?

 

▣ 10초라는 압박에 3문 제 만 맞췄네요 ^^
여러분들도 직접 테스트해보시고
하나하나 코드를 해석하면서 여러분들만에 코드를 작성해보세요.


▣ 자 오늘은 이렇게 time, random을 사용하여 작은 프로젝트를 진행했습니다.
다시 말씀드리지만 제 코드를 보시기 전에 먼저 직접 사고해서 해보시고
그리고 비교하고 하나하나 해석하는 훈련 꼭 하시기 바랍니다.
질문 있으시면 댓글 남겨주세요.
그럼 다음장에서 뵙겠습니다.


▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!!

728x90
반응형

댓글