python
https://docs.python.org/3/reference/introduction.html#alternate-implementations
무조건 알파벳으로 시작해야 하고 ()안 내용은 optional. *;정규표현식 중 하나. = zero or more =>글자 길이에는 제한이 없다.
같은 내용이라 한 줄인데 너무 길어서 줄바꿈 하고 싶을 때 '\'사용
프로그래밍
프로그래밍이란?
-해야할 일을 (순서에 맞게) 기술한 것
컴퓨터 프로그래밍이란?
-컴퓨터가 해야할 일을 (순서에 맞게) 기술한 것
컴퓨터의 세계 vs 인간의 세계
-2진수 vs 10진수 ,12진수, 60진수
-온리 수 vs 다양한 데이터 형
-CPU vs 두뇌
어셈블리어
-기계어와 1:1 대응
저수준 언어 vs 고수준 언어
-저수준 -> 기계(cpu)에 가깝다
-고수준 -> 인간에 가깝다
-이것만으로 성능 차이를 얘기할 수는 없다.
c언어 ; 중급언어.
일반적으로 모든 언어들은 소스코드(=원시코드)(텍스트)가 필요함. => 텍스트 편집기 필요.
컴파일 하는 프로그램이 컴파일러.
우리가 소스코드를 작성할 떄 우리가 만든 코드가 아닌 기계어로 이미 저장되어 있는 것; library
내가 만든 소스코드랑 2진수랑 연결해 주는 것이 링커.
실행하려면, 컴파일하려면 소스코드에 오류가 없어야함. 오류가 없어야 하니까 빌드하려면 기간이 오래 걸릴 수 있다.
컴파일러 - 번역가.
인터프리터 - 해석기. (동시통역사)
책은 한번 작성하고 나면 읽고 또 읽고 가능하지만
한번들은걸 계속 하려면 계속 다시 말해줘야 하듯이.. 문장 한번 치면 바로 인터프리터해서 바로 보여줌 컴파일은 단순한 계산을 해도 다 코드 짠다음에 컴파일 실행해야함.
개발과정은 틀린걸 바로바로 알 수 있어서 인터프리터가 빠르지만 결과물은 컴파일이 더 빠를 수 있다.
인터프리터는 매번 번역하고 실행 번역하고 실행
인터프리터 언어 ;interactive lang
접착언어 (Glue Lang.)
=> python 다른 언어랑 같이 사용 가능.
Library vs Framework
-라이브러리 ; 남이 작성해 둔 것을 내가 필요할 때 가져다 쓰는 것
-프레임워크 ; 우리가 코드 작성해 놓으면 얘가 살행하는 것.
파이썬 개발환경 구성
아나콘다 설치
https://www.anaconda.com/products/distribution
환경변수 ; 운영체제에 만들 수 있는 변수
윈도우는 대소문자 구분 x
유닉스 리눅스는 대소문자 구분 함.
운영체제가 이용하는 환경변수 중 하나가 PATH
윈도우 명령어 cls ; clear screen
윈도우 프롬프트에서 notepad치면 notepad 실행됨.
현재 경로에 파일이 없으면 path에 가서 첫번째부터 하니씩 들어가서 확인해보고 실행.
만약 어떤 exe가 실행이 안되면 현재 디렉토리에 없고 ,path에도 등록이 안된 것.
명령 프롬프트에서 python 환경에서 나올 때,
quit() or exit()
TEST.PY파일 생성
x = 10
y = 100
x*y
24*60*60
print('say hi')
print(type(x))
TEST.PY파일 실행
c:\Users\r2com>dir *.py
C 드라이브의 볼륨에는 이름이 없습니다.
볼륨 일련 번호: 8E5C-804C
c:\Users\r2com 디렉터리
2022-05-09 오후 02:17 73 test.py
1개 파일 73 바이트
0개 디렉터리 16,476,962,816 바이트 남음
c:\Users\r2com>python test.py
say hi
<class 'int'>
24*60*60
이런거 interactive한 상황에서만 나옴. (모듈값)
전체 한번에 재생할 때 PRINT 한 것만 출력됨.
통합 개발 환경(統合開發環境, Integrated Development Environment, IDE)은 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어이다.
error 프로그램 실행이 안됨
warrning ; 프로그램 실행이 안될 수 있따.
d2coding 설치
https://github.com/naver/d2codingfont/releases/tag/VER1.3.2
ipynb ; ipython notebook ; 주피터노트북의 예전이름
anaconda navigator - environments 에서 설치된것들, 업데이트 할 것들 확인가능. , 애플리케이션 확인 가능
excape sequence : 백슬래시 +문자
-',-",/t(tab),\n(new line),\(백슬래시)
print('철수는 생각했다. \'점심 뭐 먹지?\'')
print('철수는 생각했다. \'점심\뭐\n 점심\'')
#(comment(주석)은 #으로 표현
#주석은 파이썬 인터프리터가 무시합니다.
#이후 줄 끝까지가 주석
print(24*60*60) #하루는 몇 초?
seconds_in_a_day = 24*60*60
print(seconds_in_a_day)
day_in_hour = 24
hour_in_minute=60
minute_in_second=60
seconds_in_a_day = day_in_hour*hour_in_minute*minute_in_second
print(seconds_in_a_day)
인자(argument)와 매개변수는 살짝 다른데
함수에 넣어주는 값이 인자
넣어 주는 값을 받아주는것이 매개변수(parameter)
인자를 받는 함수입장에서는 그걸 파라미터로 받는다.
인자는 리터럴이, 변수가, 함수가 될 수 있다.
함수의 반환값이 인자가 될 수 있다.
하세요를 인자로 받아서 3(매개변수)출력.
print함수는 가변인자를 정의하고 있음. 인자가 1개가 될지 100개가 될 지 모름.
가변인자, 가변인수.
separate 옵션 사용해보기.
파이썬은 강타입 언어입니다. (strong type languague)
-강타입 vs 약타입
#문자열 포매팅
-1) 문자열의 format메서드 사용하는 방법
-2) f-string
파이썬은 모든 것이 class의 객체
객체지향언어..........
literal도 객체
객체에 있는 함수를 메소드라고한다.
name과 greeting 인자순서 바뀌어도 됨.
이런식으로도 가능하다.
포인터변수 ; 변수에 있는 주소를 따라가면 그곳에 데이터가 있다.
자바로 와서 이것을 레퍼런싱. 참조한다고 말함.
레퍼런스 베리어블.
참조변수라는 말을 쓰지만 그냥 바인딩한다고 표현하면 된다?
바인딩, 저장 유사하게 말을 쓴다. 변수가 그 객체를 찾아간다.
바인딩,,,데이터 크기가 어떻든 간에 주소의 크기는 8바이트로 같다.
그래서 레퍼런스베리어블을 자주 씀.
trouble shooting;
anaconda navigator에서 어플리케이션실행이 안되는 현상 : 시스템환경변수에서 path 편집을 잘못하였음.
%system%\window\system32\이건데 ststem으로 오타. 고치고 나니까 해결.