define

=> 정의하다.

define의 ine를 뺀 def. IT를 오래 하다 보니 대충 예상은 된다. 뭔가 이걸로 지정한다는 건데,


무엇을 어떻게 하는 걸까.?

알아보자.

 

 이 코딩은 기본 구조를 나타낸다.

def 정의할이름(): 여기서는 hello 되시겠다. ":(콜론)"은 빠뜨리지 말자.

     hello라는 여기서 변수라는 의미로 받아들이면 이해가 쉽다.


hello()를 한다는 것은 print("Hello Python!") 을 실행한다는 것과 같다.

여기서 "인자" 라는 말이 나오기 시작한다. 

hello라는 것을 함수로 만들고 괄호의 범위안에 "인자"를 받아들이는데


여기서 인자는 print 블라블라 가 되시겠다.

 2,3번을 보면 print 를 하는데 위의 인자를 "name"이라는 변수를 만들고

- 아래의 hello2라는 호출에서 " "안의 내용을 name이라는 변수로 받아들이겠다는 거 되겠다.(옳게 이해한건가요?!ㅠㅠ)


- 그래서 hello! Justion이 되는 것이다.


아직 이 구조가 명확하게 이해가 되지는 않지만.. 용도는 어느정도 알겠다.



 

 

 

 자, 이제 조금씩 정말 이해가 어려워지기 시작했다.


- 위의 내용은 딱 봐도, 숫자를 입력받아 사각형 크기를 구하는 것


아래는 삼각형에 대한 넓이 값을 구하는 것.


밑변 곱하기 나누기 2(다 기억나시죠..?저 처럼. 기억나시는거 맞죠?)


여기서 새로이 "return"이라는 것이 등장. 계산의 결과 값을 C로 받아 C를 위의 결과값으로 반환.(반영)한다는 의미.

a와 a를 곱한값을 C로 넣고, 그 C를 결과값으로 반환.

a*h /2 결과 값을 C로 저장하여, 그 c를 결과값으로 반환.


사각형과 관련하여 넓이를 구하기 위해 한변이 4인값을 넣는다. 그리고 그 4가 담긴 "s1"을 제곱하는 형태를 만든다. 이것이 square(s1), 그 하단에 s1과 s2를 출력하라는 것은 

한 변의 길이와 사각형의 넓이를 구하는 값이 된다. s1 = 한변, s2 = s1 * s1(위의 c= a*a)


 

 sum_func(이름은 중요하지 않다. 그저 이해하기 쉽게 만들어주는 듯)

for(반복문) x 만큼 x는 range(범위) = 1부터 n(입력 인자값)+1까지 

그리고 그 값을 최초 0의 값을 가진 변수에 반복 +1 하며 더한 값을 저장.


최초 s = 0 의 값이 있고, 이 값에 1에서 임의로 입력하는 인자 값 만큼 반복하고, 반복되며 증가하는 값만큼 S로 입력한다. 그리고 그 s를 결과 값으로 반환하는 코딩


1에서 1,2,3,4,5,6,7,8,9,10 이 되면서 계속 값을 더 한 값을 s에, 1~100까지 증가하는 값을 더한 값을 s에 저장하여 각각 55과 5050을 반환하는 코딩

위의 응용 위는 0을 최초 값으로 "덧셈"을 줘서 반환 결과 값이 0이 나올일이 없었지만

아래는 곱셈을 연산하는 것이기 때문에 기본 값이 1이다.


1*2*3*4*5 = 120

10은 알아서 계산하자.^^

 









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개를 취득하면서 자신감이 붙은 

것 같다. 해낼 수 있다는.







Python 공부를 마음먹고 시작했다. 사실 이전에도 설치는 정말 여러번했다. 이번에는 제대로 공부해보려고 한다.

요 며칠 입력해가며 테스트 했던 파이썬 코드들이다.

##모든 언어의 시작은 Hello라고 한다. 예전에는 Hello World!였었지...

반갑다 파이썬, 오늘 블로그는 노트북의 터치패드로 마우스를 대신하니

편집이 굉장히 번거롭다^^




 

 import turtle

-> turtle이라는 모듈(추가 기능, 정의된 사전 기능 정도로 이해를 하자.)을 사용하겠다고 선언한다.

as t

여기서 turtle이라는 모듈을 불러왔을 때 turtle을 t로 간략하게 입력하여 사용할 수 있도록 정의 한다.


아래의 "t.XXXXXXX" 들은 turtle이라는 모듈에서 추가적인 정의된 명령어(함수)를 사용하겠다는 의미이다.


여기서 forward는 앞으로 전진이며, left는 왼쪽으로 120도(각도)를 의미한다. 

즉 위의 부분은 빨간색으로 삼각형을 그린다.


아래의 green부터는 녹색으로 사각형을 그리는 것이다.




 

 #간단하게 더하기 / 곱하기 / 나누기 / 지수승 / 나머지 값을 구하는 값이다. 여기까진 쉽다. 




 

 역시 turtle 모듈을 불러와 t로 사용하기로 정의했다.

그리고 변수를 배우기 시작했다.


여기서 f라는 변수에 100이라는 값을 입력하고

이동 거리를 숫자 100이 아닌 f로 주어 f에 저장된 값만큼

이동하도록 테스트 한다.

물론 하단의 left도 당연히 변수로 지정하여 값을 대체 하는 것이 되겠지...



 

반복문이 시작되었다. 나의 대학생활 코딩은 for에서 멈췄었는데...이번에는 그 벽을 넘어야지..

Hello!를 10번 출력한다.


 

 

x라는 변수에 range(범위) 3이라는 값을 넣었고 
아래의 값들을 3번 반복하는데
포인트는 300을 출력하는 위치는 자리수가 달라
100
200을 세번 출력 후 
다음 줄에 300을 출력한다.



 

 그래서 자릿수를 맞춰서 출력하는걸 테스트 해봤다.

이건 예제 책자에 없다. 나는 응용하고 싶다.

"기초"로 배운 것을.



 

 자, 변수와 반복문의 섞이기 시작했다.

- 위의 3의 변수는 x에 넣고 for문에 의해 3번 반복되는데
그것은 하단의 t.모듈로드에 의해 120도 각도로 한 변이 100 짜리인 삼각형이 완성된다.

당연히 그 하단은 사각형이 되겠지?




 

 원래 이건 1~10까지 55가 계산되고,

이번의 s값이 무엇인지를 출력하는 것이다.

위에 Original이라는 의미로 붙였다. 사실 아래에 있어서 의미없지만 공부할겸 붙여봤다. 이번에 실행되는 S가 몇 번째인지 구분 하기 위해서.

X에 몇번째인지 입력되고 s에 지속적으로 합산되는 숫자가 출력




 

 

shape는 모양을 바꾸는 것이다.
삼각형과 사각형을 각각의 크기로 그릴때
화살표와 거북이 모양으로..
그냥 뭐 학습정도로...



 

 

이건 내가 그냥 책자에 있는 함수? 들을 보며 만들어봤다.
여러 색상과 펜의 굵기를 조절하고, 장난 질 쳐봤다.



 

 이거는 n의 값을 바꿔가면서 선을 그리는 거였다.

t.fd()의 숫자 값이 클수록 선이 길어진다.

그리고 n의 값이 커질수록 각도 변화가 일어난다.

n의 값과 fd의 값이 같이 커지면 난감..창을 벗어나서 그려버린다.




 

 어제까지의 테스트의 마지막.

80 짜리 지름의 원을 파란 바탕에 흰색으로 

speed(0) 최대 빠른 속도로 그린다.

여기서 원이 조금씩 움직이면서 겹쳐지며 그려져

만들어지는 코딩.

여기까진 아직은 쉽다.







업무 경력을 쌓아가면서 느낀 것들 중 한가지가 바로. 이대로만 나아가서는 안된다. 였고, 언어에 대한 능력의 필요성을 느끼게 되었다.

그래서 나는 그 중 파이썬을 공부하기로 마음먹었다. 

대학교때 지독히고 포기하고 싶었고 실제 포기했었던 언어를 다시 이제와 필요성을 느끼고 공부하게 될 줄이야..

설치는 간단하다.

1. Python Install

https://www.python.org/downloads/ 

  경로로 이동한다(클릭하면 새창이 열린다.)


2. 파이썬 설치를 누른다. 여기서 빨간색 박스의 Add PATH는 환경변수에 파이썬의 경로 정보를 자동으로 입력하여 줌으로써 cmd나 powershell 어디에서든 파이썬의 명령을 실행할 수 있게 도와준다. 나는 추가 했다.


3. 설치를 진행한다. 기다려주자.


4. 설치가 완료되고 나면 아래 "Disable path length limit"도 클릭하여 주자

-> PATH의 길이 제한을 없애준다.


5. 그리고 "Close"를 눌러 끝낸다.


6.Windows 10(RS4) 환경에 설치를 하였다. 최근 추가한 앱으로 표시된다. 


7. 파워쉘을 실행하였고 정상적으로 파이썬이 설치되었는 지 확인할 수 있게 도와주는 명령어이다.

- python --version(path에 추가하였기 때문에 바로 입력해도 된다.)


8. 버전 명령을 통해 실행 정상 확인 후 "django"를 설치하기로 한다.

- 파이썬의 추가 플러그인 개념이다.

- 나는 파이썬을 통해 웹 페이지를 하나 만들 것이기 때문에 django의 도움을 받을 예정이다.(누가 알려주더라 파이썬+django조합) 

- 아직 나는 django는 1도 모른다^^ 일단 설치 한다.

- pip install django


9. 설치를 지켜본다.


10. 이름을 "itwin"으로 추가하였고,  "python manage.py runserver" 로 django를 실행한다.

아래와 같은 화면을 그대로 두고 웹 브라우저를 하나 실행한다.


11. 주소 입력창에서 "127.0.0.1:8000" 루프백 주소에 8000번 포트를 ":(콜론)"을 붙여 입력한 뒤 아래와 같은 화면이 나타나면 성공.




##################################아래는 mysql도 설치하였는데 메모 해둔 것 뿐...###############################

3. mysql 설치

C:\mysql>cd bin

C:\mysql\bin>mysqld --install

Service successfully installed.

C:\mysql\bin>mysqld --initialize

C:\mysql\bin>mysqld

C:\mysql\bin>mysql -u root -p

Enter password: ************

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 8.0.11


Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qhdks00!@';

Query OK, 0 rows affected (0.11 sec)


mysql> quit

Bye


C:\mysql\bin>

4. Python with zango

작성 진행중...


파이썬 실수 사항

- import turtle을 진행할때

모듈을 불러와야 하는데 동일 명의 파일이 로컬 경로에 존재하여 자꾸 에러나 날 수 있다.


+ Recent posts