[개발일지-5] Java와 Python의 차이점, 그리고 난관

PARK's Marketing & HTML·2022년 3월 29일
0

Junhyeong's 개발일지

목록 보기
5/8

학습내용

오늘은 복습 및 python의 기본 문법들에 대해 배우고 배운것들로 나만의 작고 귀여운 프로그램을 만들어 보았다.

매일 아침 복습겸 팁을 받아 짜보는 review페이지.
늘 하듯 html head body 그리고 안에 들어갈것 등등 기본코딩을 작성하고 오늘 가르쳐주신 팁은 일정 프로램에서 Library(부품들을 모아놓은 도서관이라고 생각하자)를 갖다 쓰려면 어떻게 하느냐 였다.
Bootstrap이라는 사이트에서 부품을 쓰기위해서 단축키(?)를 갖다넣는다고 생각하자. 그러기위해 Css와 js에 관련된 링크를 붙여넣는것.

그리고 전에 했던 실습처럼 button을 넣는 코드를 짜는데, 이번 button은 bootstrap에서 코드를 카피하여 버튼에 색상을 넣고 3개의 버튼을 group화 하여 하나로 합쳐본다.

실행결과


bootstrap에서 css,js의 라이브러리를 사용하기위한 링크를 걸어주고, 그 다음 버튼의 디자인 코드를 붙여넣으면 이렇게된다. 이 외에도 유튜브의 공유기능에 있는 html코드 복사를 하여 사이트에 넣는 방법과, 이와같은 방법으로 Kakao Map의 주소를 html코드로 받아 사이트에 넣는 법을 배웠다. 나중에 내 index.html에 추가해서 주소를 실수로 오타내서 들어가지는 외국 사이트처럼 화려하게 만들어 보아야 겠다.




어제 학습한 내용인 python의 review.
print출력과 줄바꿈, a,b에 값을주고 print 하는것, input과 float를 이용한 숫자계산기. 나는 이 방식으로 잔액계산기를 만들었다. 다른 분들은 무슨 평당 집값 계산기 뭐 카드값 계산기 ,게임 등등 조건문까지 넣어서 만들었던데, 나도 그정도는 할수있다. 단지 하룻밤 꼬박 머리를 싸매야 한다는게 문제다.



다음은 Boolean. Python 에서의 참 거짓은 대문자가 필수다. Js는 소문자도 입력이 가능하다.



이건 Python에서의 조건문이다. Js랑 다르게 중괄호가 필요없다. 콜론으로 내용을 적으며, 위의 이미지에 3,4번줄 처럼 if 밑에 들여쓰기가 되어있으면 if안의 내용으로 간주한다. 하지만 5번줄처럼 들여쓰기가 안되어있으면 if에서 벗어난걸로 간주한다. 들여쓰기 된것도 아니고 안된것도 아닌 그 사이에 있으면 그냥 이도저도 아니니까 빨리 어떻게 해보라는 빨간줄이 나온다. 상당히 공격적이다.

7번줄의 if문은 js와 같다고 생각하면 된다. False라고 했으니 if문 안의 내용은 출력되지 않는다. 그러나 왜 흐릿하냐? 프로그램이 똑똑해서 흐릿하게 표현하여 이건 출력 안될거라고 간접적으로 보여주는거라고 생각하면 된다.
그 아래에는 if else를 이용한 참 거짓 출력


이 if와 else로 전에 만들었던 Login 코드를 좀더 개선해본다.

전에는 아이디만 맞으면 로그인이 되는 해킹당하기 딱 좋은 프로그램을 만들었지만, 이제는 비밀번호 까지 입력하는 나름 체계있는 코드를 짜본다. 사실 login 코드를 짤 때 비밀번호는 안만드나?라는 생각을 했지만 내 지식의 한계로는 그런 똑똑한건 못만들줄 알았다. 하지만 if else만으로도 구현이 가능한것이었다.

input으로 아이디와 패스워드를 입력받는 코드를 적고, if문을 열어서 id가 박준형이고, 비밀번호가 1111이면 안녕하세요^^가 출력된다.
아이디는 같고 비밀번호가 다르면, 바깥의 if가 true여서 안에 적힌 if를 실행하는데, 안에 있는 if는 비밀번호 조건을 걸고 있기 때문에 비밀번호가 다르면 else 인 누구세요? 가 출력이 되고,
아이디가 다르고 비밀번호가 맞으면 바깥의 if가 false로 인식되어 바깥의 else인 '아이디가 다릅니다'가 출력된다.


다음은 대망의 loop.
이걸 배우면서 무슨소리인지 이해를 하고 있는데, 이해를 하는 도중에 이해를 못하는 내용이 들어왔었다. 배열을 이용하는 구조는 이해하겠는데,
members가 member의 n번째의 n2번을 부르고 members2가 member의 membermebmevemfrmrf 아무튼,
for xxx in xxx's 가 너무 어려웠다. 강사님은 자바에서 배운 for문이 아니라 for in문이라고 부르셨었다. 지금부터는 적어보면서 나도 공부를 하는것이다.

members로 이름 두개를 적어 배열을 지정한다.
for aaa in bbb 에서, bbb는 리스트처럼 여러개의 데이터를 가진 '큰' 배열이 뒤에 온다. 그럼 aaa에 python이 앞에있는 배열에 앞에있는 변수를 할당한다(?)
나는 members로 지정하고 for member in members;로 문법을 구성했는데,
그러니까,

이런 데이터가 출력이 되는데. for in문 의 안에서는 member를 사용할수 있는거다. 왜? for member in members로 지정해줬으니까!
print('member', member)는 앞의 작은따옴표 안에 있는 member는 그냥 출력하는거고, members 안에서 pjh와 duru가 지정되었으니까.
그러면
이렇게 출력이 된다.
members 안에 있는 member를 출력하려면 for member in members 라고 지정하고, members 안에있는 member, 그러니까 즉 bbb안에있는 aaa를 부르겠다 라고 말하는것 같다. 그리고 print로 member라고 하면 안에있는 데이터를 다 불러오는 방식이다.

아래의 members2는 큰 배열 안에 element를 넣어야하는데 이 element가 배열인 경우이다. 이러한 경우는 더 많은 데이터를 다룰 수 있다.
작은배열 1번째 안에있는 2번째 원소를 가져오려면
9번줄 처럼 print로 members2 안에있는 [0]번째 element중에 [2]번째 element를 가져오겠다 라고 하는거다. 큰 배열 안의 element들이 배열이니, 이 배열안의 0번째(1번째)에서, 2번째(3번째)element를 가져오는것이다. 그러면 CEO가 3번째 배열이니 CEO가 출력되는 것이다.

그리고 아래의 for in member members2 는
print로 members2의 [0]번째와 [1]번째를 출력하겠다는 것이다. 앞전처럼 member[0]'의'[2]번째가 아니라 member[0]과 member[1]을 나타내라고 적은거다. 그러면 members2안에있는 배열 두개의 [0]번째,[1]번째 element가 출력된다. 결과는 pjh daegu와 cha seoul이 나온다.

머리가 뜨거우니 조금 식히자...

다 식었으면 다음으로 다시 되짚어 보자.

위의 내용이 이해가 간다면 아래 내용은 비슷하다. 배열 안에 변수 이름을 주고 print로 해당 변수를 출력하는 내용을 만든다.
17번줄은 for in문으로 pjh2의 배열안에있는 name을 출력하겠다는 것이니 pjh2배열 안에 지정된 name인 pjh가 출력이 되는것이다. 아래 내용도 같다.


벅찬 loop가 끝났으니 간단한걸 배워본다.

def는 그냥 define 정의하는것이다. 더한다(왼쪽, 오른쪽) return이 종결조건이라고 했으니 왼쪽+오른쪽을 더하는 종결로 30을 출력하게 한다.


마지막으로는 배워본 button으로 간단한 프로그램을 작성한다.

button을 만들던대로 만들고, 내가 만들어 볼 기름값 계산기를 value값으로준다. 요즘 기름값 시세인 리터당 1950원쯤으로 지정하고, prompt창에 얼마넣으실거에요?가 나오도록 코드를 짠다.
그럼 alert창이 뜨면서 몇리터 주유 가능 이라는 최종 알림창을 뜨게 하는것이다.

어려웠던점

Loop에서 for in문의 구조가 너무 어려웠는데 블로그를 적으며 조금씩 이해가 되었다. 강사님의 설명이 어려웠다고 생각했었는데, 녹화된 강의를 다시 들어보면서 천천히 정리를 해보니 이해가 되었다.

해결방법

블로그를 써내려 가며 이해했다.
복습 복습 복습

학습 소감

이해 못할것도 천천히 보다보면 이해 할 수 있구나 라고 생각했다.
강사님의 역량이 대단하시다.

profile
22.03~22.08 대구 Ai스쿨 프로덕트 마케터 과정 수강

0개의 댓글