[수업 3째주 6일차] Python-1

김유민·2022년 3월 28일
0

대구 A.I. 스쿨

목록 보기
4/90

1. 학습내용

-복습
CSS 부모 자손 태그
h1>a라고 썼을 때 h1밑의 a태그에만 스타일을 적용시키겠다는 의미이다.

-오늘 학습 내용

Python을 쓰고 싶다면, 해당 프로그램을 깔아야 vsc에서 쓸수 있다.
컴퓨터 환경에 맞는 버전을 설치 후(쓰는 당시 최신 파일 버전 3.10.4)
파이썬을 vsc(visual studio code)에서 파일을 만든 후에 터미널로 실행시킨다.

터미널에 입력시에 python3보다 버전이 낮다면 python3라고 입력후 파일명을 써야 하고
그 이상이면 그냥 python이라 입력하고 파일명을 쓰면된다.

파이썬은 자바스크립트와 언어 문법이 꽤 비슷하다. 아래에서 비교해보면 알 수 있다.

=> js

<script>
 console.log(1);
 console.log(2);
 console.log(3);
</script>

=> python

print(1)
print(2)
print(3)

js가 동작하는지 알아보려면 먼저 html파일을 만들어 스크립트 tag안에 console.log();를 쓰고
크롬을 실행해 개발자 도구를 봐야 한다.

파이썬은 터미널에서 파이썬을 CMD(윈도우. 맥은 다름)로 실행시켜 파일명을 입력하면 출력된다.

js와 python은 비슷하나 또 다르다. js는 문법적으로 볼때 코드 뒤에 ';'로 끝맺어야 하지만,
파이썬은 입력해 주지 않아도 된다.
똑같은 결과값을 내더라도 문법이 살짝 다르다. 아래를 비교해보자.

=> js

console.log(Math.pow(3,2));
console.log(Math.random());

=> python

print(pow(3,2))
import random
print(random.random())

pow 는 제곱값을 계산하는 power의 준말이다.
pow를 비교해보면 Math를 제외하곤 거의 비슷한 걸 알 수 있다.
python에서 Math는 쓰지 않는다.
그리고 Python은 print로 출력한다.

반면, random은 좀 다르다. random은 출력할때 마다 소수값이 다르게 나오는 명령어인데,
js에 기본적으로 내장된 것과 다르게, python은 내장되어는 있으나, import로 모듈을 불러와서
입력해야 한다.
모듈은 여러 부품들이 그룹핑되어 있는 것을 의미한다.
정확히는

모듈이란, 커다란 장치나 배열 내에서 비교적 작은 크기의 부품으로서 독립적으로 설치되고, 교체되고, 사용될 수 있도록 설계된 구성요소를 말한다.

라고 한다.

문자 나열에 대해 또 비교해보면 다른 점이 보인다.
=> JS

<h1>String</h1>
<script>
   console.log('Hello');
   console.log("Hello");
   console.log(`Hello
   World`);
   //줄 바꿈할때 쓰는 ` (` (억음 부호 : backtick)로 표현 )
   console.log('Hello'.length)
   console.log('Hell world'.replace('Hell','Hello'));
</script>

=> Python

#String
print('Hello')
print("Hello")
print('''
   Hello
   World
''')
print(len('Hello'))
print('Hell World'.replace('Hell','Hello'))

줄바꿈할때, 파이썬은 '''로 쓰거나 """로 쓴다.
글자 수를 출력할때도 비슷하지만 스펠링을 줄여서 쓴다거나(length를 len으로 쓰는거.)
한다.

배열은 명칭 부터 다르다.
List : 서로 연관된 데이터를 모아서 이름을 붙인 것
js는 Array로 쓰고 Python은 List라 쓴다.
=> js

<h1>Array</h1>
<script>
  let member = ['egiong','duru','teaho']
  console.log(member[0])
</script>

=> Python

#List
member = ['egiong','duru','teaho']
print(member[0])
print(len(member))

js로 특정 집단을 예를 들어 'member'로 선언하고자 하면 let을 무조건 적어줘야 하지만,
파이썬은 let이 없어도 된다.
0부터 시작한다는 순서는 둘다 동일하다.

또 Python만의 편리한 기능도 있는데,

import random
print(random.choice(member))

score = [100,200,300]
print(sum(score))

choice이다. member의 값 세가지중 리로드시 랜덤하게 하나만 선택해 출력해 주는 기능이다.
sum은 score안의 수를 다 더해서 출력해주는 기능이다.

변수선언도 다르다.
js는 앞에서 말했다 시피, 예를 들어 a = 1;이라고 선언하고 싶다면,let이나 ver을 붙여야 한다.

<h1>Variable</h1>
<script>
   let a =1;
</script>

그런데 Python은 그냥 a = 1이라 선언하면 끝이다.

input도 Python은 또 다르다.
먼저 js를 보자.
=> js

<h1>Input</h1>
<script>
   가격 = prompt('가격?')
   부가가치세 = 0.1
   alert(가격*부가가치세)
</script>

이렇게 입력하고 web을 실행하면 팝업창이 뜨면서 가격?이란 물음과 함께 입력 폼이 뜬다.
랜덤한 정수를 입력하면, 계산값대로 계산되어 나온다.
그럼 앞에서 Python도 비슷하게 입력하면 똑같이 나오지 않을까? 해서 이렇게 입력한다.

=> Python

가격 = input('가격?')
부가세율 = 0.1
부가세 = 가격 * 부가세율
print(부가세)

이렇게 입력하면 터미널에 가격?이란 물음이 뜬다. 예제로 수를 10000을 입력하면 이런 경고 메시지가 출력된다.
'TypeError: can't multiply sequence by non-int of type 'float''
이건 input을 문자열이라 에러가 뜬 것이다.
그러니 이걸 'float'로 처리해 숫자열로 바꾸면 된다.

가격 = float(input('가격? '))
부가세율 = 0.1
부가세 = 가격 * 부가세율
print(부가세)

+추가로 배운것
pip(python package index) :파이썬에서 기동되는 개발자들이 만든 프로그램들을 말한다.
여러가지 프로그램이 있지만 그중 10번째로 자주 쓰이는 'pandas'를 설치하고 실행해 보았다.
터미널에서 설치는 간단하다.
pip install pandas만 치면 바로 설치가 완료된다.

유명한 엑셀 파일을 하나 예제로 깔고 파이썬 파일이 있는 폴더에 넣어주었다.

import pandas
#import는 pandas 프로그램을 실행시키는 명령어. .read_csv는 엑셀파일을 실행시키는 명령어.
house = pandas.read_csv('boston.csv')
print(house)
#읽어들인 파일을 house로 지정하고 터미널에서 표로 출력되게끔 print한다.
첫 행만 불러오고 싶다면 head(1)를 입력한다.
print(house.head(1))
print(house.describe())
#describe는 각 열에 해당하는 평균값이나 최소값과 최대값 등을 계산해 보여준다.

2. 어려웠던 점 및 해결 방안

Python이란게 이름도 많이 듣고, 전세계적으로 개발자들이 많이 쓰는 프로그램이란 이야기는 들었다. 하지만 직접 배워보는 건 이번이 처음인데 조금 어려우면서도 왜 많이들 쓰는지 알것도 같았다.
javascript를 먼저 배워서 일까? JS에서 지켜야 하는 규칙들이 파이썬에서는 간단하게 써도 출력이 되는게 일단 너무 편리했다. 하지만 어려웠던 건 역시 그래도 JS와는 다르다는 것이었다.
줄여쓰는 명령문도 있고, 아예 쓰면 안되는 것들도 있었다.
파이썬에서 구동되던게 js에선 안될때도 있었다. 물론 오탈자때문에 출력이 안되던게 컸긴했다.
파이썬의 장점이 js에 비해 깔끔한 구문이라 바로 오탈자 체크가 가능했는데 JS는 일단 길고, 적은게 많아보여 쉽게 오탈자가 눈에 잘 들어오지 않았다. 결국 4번 이상을 새로고침하고, 콘솔창을 확인하고 해서 다르게 출력되는 글자를 replace해서 출력이 되게끔 고쳐주었다.

그리고 설명을 못따라 갔던 것 중 하나는 '디버깅' 기능이었다. 한번 설명을 놓치니 중단점(break point)를 설정해서 실행을 누르면 한줄씩 출력이 되는건 알겠는데 그걸 왜 하는지 이해가 가지 않았다.
수업이 끝난 후 따로 올라온 녹화본으로 다시 확인해보니, 디버깅의 장점을 쉽게 알수 있었다.
먼저, 한줄씩 출력해 변수가 어떻게 바뀌는지 확인하기 쉽고,
최종 계산값이 알맞게 출력되는지 하나로 확인이 된다는 사실. (에러가 뜨면 수천줄의 코드에서 바로 확인이 어려우니)
이 장점이었다.
만약 어느 계산 함수를 설정한 몇줄의 코드만 실행하고 싶다면, 계산 함수가 끝나는 바로 다음 코드에 중단점을 찍고 디버깅을 실행하면, 그 몇줄만 실행되고 종료가 된다고 하셨다.

=>터미널에 중단점 까지 입력된 값

3. 학습소감

Python이란게 이름도 많이 듣고, 전세계적으로 개발자들이 많이 쓰는 프로그램이란 이야기는 들었다. 하지만 직접 배워보는 건 이번이 처음인데 조금 어려우면서도 왜 많이들 쓰는지 알것도 같았다.
javascript를 먼저 배워서 일까? JS에서 지켜야 하는 규칙들이 파이썬에서는 간단하게 써도 출력이 되는게 일단 너무 편리했다. 하지만 어려웠던 건 역시 그래도 JS와는 다르다는 것이었다.
차근차근 배워나가기로 하며
오늘 살짝 구글링이 조금 느렸는데, 그것도 개선해 나가야 겠다는 생각으로 학습을 마쳤다.

profile
친숙한 개발자가 되고픈 사람

0개의 댓글