while 문이 시작되었다. for 와 같이 반복문.

구조가 조금 다르다.

 

 x 에 1을 대입.

그리고 1에서 부터 1 + x값을 만들어

x의 값이 1씩 증가 하는 것을 만드는 단순 반복문

앞서 for 문에서 11까지 지정하고 10까지 반복되었다면

"<="로 표현하여 10과 같거나 작을 경우로 표현하여

10까지 계산한다.


 

 s 와 x의 의미를 구분하여야 한다.

s 는 계산 결과 값이 누적되어 합산

x 는 현재의 순서라고 할 수 있는 값에 + 1씩 누적


 

 역시나 또 랜덤 모듈을 import하여 놀이를 만들었다.

n이라는 변수에 1에서 30사이 값 중 랜덤 값을 넣고

그렇게 선택된 랜덤값과 

내가 입력한 값을 비교하여 Yes or No를 비교하는 게임


 

 이해를 하기 위해서 위의 내용과 머리속에서 생각을해서


응용 코딩을 해봤다.


각 a와 b에 랜덤 값을 넣고 랜덤 값을 서로 더한 값을


변수 c에 넣는다.

그리고 내가 입력한 값과 비교를 하는 걸로..


살짝 아주 살짝 응용을 해봤다^^;



이번 학습한 내용들은
변수와 비교 연산자. 랜덤과 비교 연산자에 대한 내용들이다.

변수의 경우에는 아직까지는 "입력한 문자열" 을 "정수형 변수"의 값으로 넣는 거 말고는 단순하기 때문에 크게 주의할 만한 것은없어 보인다.

비교연산자의 경우에는 if문이 여러개 일 때 else가 동작하는 조건은 비교할 if문 갯수가 모두 "true"로 결과가 나올 경우 else 문이 실행되지 않고
단 한개의 if문이라도 true 결과값을 뽑아내지 못한다면 else가 동작한다는 걸 알게되었다.(테스트 한 것 까지만 했을 땐 그렇네요.)

랜덤은 궁금증이 생긴다.
random.randint(숫자범위ex 1,360)를 지정하는데, 옛날에 어디선가 랜덤을 뽑아내는 것도 결국 어떤 산술 연산자에 의한 결과 값이라고 해서
100% 무결한 랜덤 값은 없다고 봤던 것 같은데..(이 부분에 대해서 현재의 수준을 아시는 분은 조언좀 부탁드립니다.)

아무튼, 랜덤으로 뽑아 내는것과 내가 그 값을 계산하여 결과 값을 입력하고, 그 두 값을 비교하여 결과를 뽑아 내주는거. 여기까지는 어려울 게 없다.

하지만 혼자 코딩을 뽑아내라고 한다면 가능할까??

말나온김에 머리속에 자연스럽게 되도록 코딩을 똑같은걸 한 10번 반복 입력해봐야겠다.



 

 변수 a에 입력 된 3.

그리고 하단에 a의 값과 비교 연산자 출동

두번째 if문에서 변수 a의 값이 3과 같냐는 질의에 해당되어

B를 출력

그리고 if문 3개중 else에 해당되는 이유가 첫, 세번째의 if의 경우 a의 값이 각 2와 4가 매칭이 되지 않기 때문에 else 조건 값이 적용된다.

테스트 결과 모든 if문의 대입값을 3으로 수정하여 테스트 하면

결과값은 "B,D"가 아닌 "A,B,C"가 된다.


 

 12+23= <- 이 값은 출력되는 값.

이후 어떤 값이 입력되면 그것은 변수 x 에 저장한다.

그리고 x를 정수형 변수 a로 저장(물론 숫자값이 입력되어야 겠지??일반 문자를 입력하면 안됨.)

그리고 비교 연산자 시작, if에 입력한 a의 값과 12+23의 값을 비교한다.

당연히 여기서 입력한 숫자가 35라면 "천재!"가 출력될 것이고 아니라면 뭐...바보니?


 

 이 코딩과 다음 코딩은 연관성을 갖고 봐야한다.


우선 모듈 호출에 새로운 모듈이 등장해다. "random" 

말그대로 랜덤으로 뽑아내기 위한 모듈.


t.shape와 speed는 이제 생략

for구문을 해석하자면

1. 20이내의 숫자를 1부터 반복하여 x에 대입. 총 20번 동작하겠지?

random.randint(1,360)은 1부터 360이내의 랜덤한 값을 a라는 변수에 넣는것.

 

 여기서 t.setheading은 위에서 랜덤하게 입력된 a의 값 만큼 "각도"를 수정하는 것.

그리고 각도를 수정한 뒤 20만큼 이동한다.

여기까지가 위의 코딩이고

다음의 코딩은 이동 거리 또한 특정한 값 범위를 지정하여

t.fd() 괄호안에 랜덤으로 입력된 이동 거리를 집어 넣음으로써

이동거리 또한 각도와 마찬가지로 랜덤한 값을 이동하게 된다는 것.


 

 이제 랜덤과 if, else 조건문이 합쳐진 코딩이다.

a와 b라는 변수에 각 1~30 까지의 랜덤한 숫자를 집어 넣는다.


그리고 입력한 값 x를 정수형 변수 c로 넣고

랜덤하게 산출되는 결과값에 대비하여 내가 입력한 값이

정확한지를 비교하는 코딩이다.


이정도까진 아직 쉽네^^




이게 조금 입력들을 해보다보니 뭐랄까, 이정도까지는 코딩의 구조?를 약간이지만 이해하게 되는 것 같다.

옛날에 막 지역변수 전역변수 이런 말은 참개념자체가 너무 어렵던데....







이제부터는 살면서 언어 부분에서 처음 시도 해보는 깊이의 수준이다.

입력문. input(입력함수)에 대하여 학습하였다.

 

 name이라는 변수에 입력한 문자열을 저장한다.

그리고 print name을 통해 내가 입력한 문자열을 출력한다.

 

 결과 : 입력한 정수 a와 b를 자동으로 곱셈 계산하여 주는 코딩

1. 입력한 문자열변수 x에 저장

2. 문자열 x를 "정수형" 변수 a에 저장

=> 중요한 듯. 일반 문자열 -> 정수형으로 저장하는 과정

3. 입력한 문자열을 변수 x에 저장

4. 문자열 x를 "정수형" 변수 b에 저장


print를 통해 a와 b를 곱한 값을 출력


 

 드디어 새로운 모듈을 호출하기 시작했다.

time이라는 모듈. 뭐하는 건지 아직 자세히는 모른다.

일단 변수에 어떤 값을 저장하는 것이 아니다.

어떤 문자열을 입력하더라도 변수에 무언가 저장되는 것은 아니다.


엔터만을 받아들인다고 보면된다.


그래서 내가 입력한 "2번의 엔터" 행위의 시간을 계산해주는 게임

실제 시간과 내가 예측하여 입력한 값을 비교할 수 있게 해주는 게임



파이썬은 아직까지는 크게 어려운 점 없이 이해를 할 수 있다.

관심이 없을 시절 C언어를 처음으로 접하여 학습하던 때에는 무척이나 어렵게 느껴졌는데, 어디까지나 이루어낼 수 있을지는 미지수 이지만, 도전해 본다.


최근 두 달 동안 2개의 나름 뿌듯한 자격증 2개를 취득하면서 자신감이 붙은 

것 같다. 해낼 수 있다는.







+ Recent posts