728x90
반응형

range()

- range()로 반복 횟수를 전달하면 range()가 자동으로 순차적인 정수들을 생성해준다.

 
- range( start = 0, stop, strp = 1 )
     > start : 시작값
     > stop : 종료값이지만 stop은 포함되지 않는다.
     > step : 한번에 증가되는 값이다.

 
조건제어반복

- 어떤 조건이 만족 되는 동안 반복한다.
- ex) 투자금이 목표에 도달하는 기간을 계산해보자

 
무한루프와 break, continue

- 무한루프는 실제코드에서 많이 사용된다. 특히 반복을 빠져나가는 조건이 까다로운 경우에 많이 사용된다. 예를 들어서 사용자가 입력한 수가 3의 배수이거나 음수의 경우에 while 루프를 빠져나가야 한다고 하자.
이는 다음과 같이 while 루프의 조건문을 만드는 것보다,

while (x%3 == 0) or (x < 0) :
    ...
    ...
    ...

 
 
아래 나온 것 처럼 루프를 만들고 그 안에서 루프를 벗어나는 조건을 검사하는 편이 이해하기 쉽다.

while True:
    if x%3 == 0:
        break
    if x<0 :
        break
    ...

 
리스트 내포

- 리스트 내포(List Comprehension)는 원하는 자료들을 조회 또는 추출하여 리스트로 변환하는 현식
- 리스트 내포는 조건식을 이용하여 같은 연산을 전체 항목이나 일부 항목에 적용할 수 있음
- 리스트 내포를 이용하여 항목들을 대문자나 소문자로 바꾸는 등의 작업을 처리할 수 있음
- 리스트 내포 처리 과정
     ① → ② → ③ 에서 ①로 이동하여 반복 수행, 더 이상 꺼내 올 항목이 없으면 종료함.
     ① 항목들에서 순차적으로 하나씩 꺼내온다.
     ② 조건식을 적용하여 해당 조건에 맞는 항목은 추출하고 조건에 맞지 않으면 무시한다.
     ③ 위에서 추출한 항목은 리스트에 추가한다.
- 기본적인 리스트 내포 형식
     > 항목들에서 순차적으로 꺼내 온 자료는 변수에 저장한 후 표현식에 적용하여 리스트에 추가함


함수

- 입력값, 출력값(반환값)이 있다.
- 코드의 반복을 줄이기 위해 사용한다.
- def 함수명(변수1, 변수2, ...): 실행문1 실행문2 ... return 결과값
- (변수1, 변수2) <= 변수 생략 가능
- return 문 생략 가능
- 함수명은 동사 + 명사 형태로 적는 것이 좋다.
- ex. getId, deleteId


- 함수에 return을 여러개 찍으면 첫번째 return까지만 실행되고 멈춘다. 즉, 함수의 중단지점을 선언 할때 return을 쓴다

def add_minus(x, y):
    return x + y
    return x - y

- 함수에 쓰는 변수의 범위


- 변수에 default 값 설정
     > default값을 지정한 파라미터가 먼저 나오면 오류가 난다. 즉, 파라미터 종류 별 순서가 중요하다


 

- global 변수 선언
     > 로컬 변수, 글로벌 변수 구분하는게 중요
     > 파이썬에서는 글로벌 변수일 경우 변수명에 global을 씀

     > 아래의 경우는 로컬변수와 글로벌 변수를 함께 사용 하였으므로 함수내에 글로벌 변수 선언을 해준다.


lambda 함수

- lambda 변수1, 변수2, …: 결과값


파이썬 내에서 파일 생성 및 읽어오기

 
Pickle 라이브러리 사용

- 텍스트 상태의 데이터가 아닌 파이썬 객체 자체를 파일로 저장
- 기존의 텍스트 파일 저장과 다른점
     > w, r 텍스트 모드
     > wb, rb는 바이너리 모드(텍스트가 아닌 상태)
     > 저장할 때는 wb 읽을때는 rb로 지정
     > pickle 쓸때는 무조건 wb랑 rb라고 작성
- Pickle 사용법

728x90
반응형
728x90
반응형

지난 주 정리

 

제어문

 - 문장들이 실행되는 순서를 제어하는 문장을 제어문(Control Statement)라고 한다.

 

조건문의 중요성

- 만약 프로그램에 조건문이 없다면 프로그램은 항상 동일한 동작만을 되풀이 할 것이다.

 

3가지의 제어구조

- 순차구조

- 선택구조

- 반복구조

 

if - else

if 조건식 :
                문장 1
     else : 
                문장 2

- else는 없을 수도 있다.

- 파이썬에서는 들여쓰기가 아주 중요하다.

 

논리 연산자

연산 의미
x and y x와 y가 모두 TRUE여야 TRUE
x or y x와 y 중 하나만 TRUE 여도 TRUE
not x TRUE > FALSE, FALSE > TRUE 

 

중첩 if 문

if 문 안에 다른 if 문이 들어갈 수 있다.

연속되는 범위 안에서 값을 도출하려 할 때 사용.

 

반복의 중요성

우리들의 생활에서는 반복적인 작업들이 필요하다. 

반복적이고 단순한 작업은 컴퓨터를 이용하여 자동화 하면 된다.

 

반복의 종류

- 횟수 반복(for 문) : 정해진 횟수만큼 반복한다.

- 조건 반복(while 문) : 특정한 조건이 성립되는 동안 반복한다. 조건이 변경되는 로직이 안에 꼭 있어야 한다. 없으면 무한반복하기 때문이다.


지난 주) 예제 풀어보기

문제 : 콘테스트 평가
7명의 심판들의 점수를 입력받아 리스트에 저장하고 최소값과 최대값을 리스트에서 제거하는 프로그램을 작성해보자
제거 전 [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
제거 후 [9.0, 8.3, 7.1, 9.0]

 

내가 적어본 코드

score = [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
print(score)
score.remove(min(score))
score.remove(max(score))
print(score)

 

코드실행 결과


강사님이 알려주신 코드

- 점수를 직접 입력하여 리스트에 추가할 수 있도록 설정함 

- 점수가 숫자일 경우에만 입력가능하도록 설정함

- 점수가 실수일 경우에는 소숫점이 존재하기 때문에 숫자로 인식되지않아 오류가 날 수 있음. 그렇기 때문에 replace함수로 '.'을 삭하여 조건문을 실행시킴

- 최솟값과 최댓값을 제거한 리슽의 평균을 구할 수 있도록 로직을 구현함

scores = list()
count = 0
while count < 7:
    count += 1
    score = input(f'{count}번째 심사위원 점수를 입력하세요. : ')
    # 소수점 입력시 체크 확인
    if score.replace('.', '').isnumeric():
        scores.append(float(score))

print(scores, min(scores), max(scores))
min = min(scores)
max = max(scores)
scores.remove(min)
scores.remove(max)
print(f'최솟값과 최댓값을 제거한 리스트 : {scores}')
avg = sum(scores)/len(scores)
print(f'평균은 : {avg}입니다.')

 

코드 실행 결과


(3일차 이어서)

제어문

 

3. for

- 횟수 반복문
- 가장 많이 쓰임.
- 리스트/튜플/문자열의 요소의 갯수만큼 반복한다.
- for 변수 in 리스트/튜플/문자열: 실행문...

 

- continue, break, pass
     > continue : 해당 조건에서 그 루프가 끝나고 다음 루프로 넘어간다.



     > pass : 실행할 코드가 없는 것을 뜻함.(모두 다 실행하고 그 다음 루프로 넘어간다.)


   

 > break : 반복문 자체를 중단한다.


 - List에서 for 문 쓰기


- Dictionary에서 for 문 쓰기


- Tuple에서 for 문 쓰기


- 구구단 생성하기


4.  List Comprehension(List 내 for 문 쓰기)

- 리스트 안에 for문을 포함하여 한줄로 편하게 코드를 작성하는 문법.

- [표현식 for 항목 in 반복가능객체 if 조건문]


- 조건문이 여러개 들어갈 경우

     > [for 항목1 in 반복가능객체1 if 조건문1 for 항목2 in 반복가능객체2 if 조건문 2...]

 

 

5.  Dictionary Comprehension


- Dictionary Comprehension에서 zip으로 표현하기

728x90
반응형
728x90
반응형

변수

 

변수의 이름

- 의미 있는 이름을 사용한다.

- 소문자와 대문자는 서로 다르게 취급된다.

- 변수의 이름은 영문자와 숫자, 밑줄(_)로 이루어진다.

- 변수의 이름 중간에 공백이 들어가면 안 된다. 단어를 구분하려면 밑줄(_)을 사용한다.

- 파이썬의 예약어(파이썬이 사용하는 특수한 언어)를 변수로 사용할 수 없다.

 

변수 예시

- 올바른 예 : size, cloud9, max_size, _count- 올바르지 않은 예     >> 6pack : 숫자가 앞에 오면 안 된다.     >> mid score : 중간에 공백이 있으면 안 된다.     >> class : 예약어를 변수로 사용할 수 없다.     >> money# : 특수문자 사용할 수 없다.

 

낙타체낙타체는 변수의 첫 글자는 소문자로, 나머지 단어의 첫 글자는 대문자로 적는 방법이다. 예를 들어, myNewCar처럼 'm'은 소문자로, 나머지 단어들의 첫 글자는 대문자로 표기한다.

 

Python PEP

파이썬 코드를 어떻게 구상해야 할지 알려주는 스타일 가이드

https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Alyssa Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python

peps.python.org


(2일 차 이어서)

변수의 유형

 

5. 딕셔너리

- key : value 쌍이 모여있는 형태 => property 형식
- key : value 들을 {}로 감싼다.
- 변수명 = { 'key' : 'value', ... , 'keyX' : 'valueX'}
- key는 중복될 수 없다.

- 위치도 인덱싱이 되지 않는다.
- 사용 이유 : 데이터에 이름을 붙여 더욱 명시적으로 사용하기 위함

- 함수로 가져오고 싶은 key를 정확히 명시하지않고, key 이름에 오타가 나면 에러가 나지 않고 새로운 key로 생성 될 수 있으니 주의해야 한다.

- list를 key로 사용할 수 없다.

Key가 List로 올 수 없음을 보여주는 예


- 딕셔너리 생성해보기

딕셔너리 생성하기

 

5-1. 딕셔너리 함수

- keys() : 딕셔너리에 들어있는 key들을 반환

- values() : 딕셔너리에 들어있는 value들을 반환

- items() : key와 value를 tuple로 반환

- get(‘value를 알고 싶은 key’) : key에 대응하는 value를 반환

- zip(unpack의 반대) : tuple/list 두개를 하나의 딕셔너리로 변환

     >> a, b = (1, 2) 1, 2 로 묶는것을 zip 그 반대가 unpack

- del() : 메모리 상의 변수를 지우는 함수 (다른 변수에도 사용 가능)

del() 사용

 

# 파이썬의 반복문

 

# 파이썬은 변수를 정할 때 타입을 따로 정하지 않는다. 그래서 변수가 어떤 타입인지 잘 모를 경우 나중에 변수끼리 연산할 때 타입이 달라 오류가 난다. 그렇기 때문에 변수의 타입을 잘 알고 가는 것이 중요하다.

 

6. boolean

- 참 또는 거짓을 나타내는 자료형

- True, False처럼 첫 글자가 대문자여야 함

- True인 것들, False인 것들

 

7. 값 변수, 참조 변수

- 값 변수 :  기본 타입

- 참조 변수 : 기본 타입 이외의 것


- copy() : 값을 받아오는 변수가 참조 변수일 경우에도 copy()로 값을 받아오면 값 변수가 된다.

copy()로 값 변수 받아오기


- Python Tutor

언어가 동작되는 것을 시각화 해주는 사이트

https://pythontutor.com/

 

Online Python Tutor - visualize, debug, get AI help for Python, Java, C, C++, and JavaScript

Online Compiler, Visual Debugger, and AI Tutor for Python, Java, C, C++, and JavaScript Python Tutor helps you do programming homework assignments in Python, Java, C, C++, and JavaScript. It contains a unique step-by-step visual debugger and AI tutor to he

pythontutor.com

 

8. 집합(set)

- set([]) << 이런 식으로 선언

- 요소에 접근할 때 list()로 변환해서 인덱스로 접근한다.

- 순서가 없고, 중복이 없다.

 

8-1. 집합에 사용되는 연산

- 교집합 : intersection (&)
- 차집합 : difference (-)
- 합집합 : union (|)


제어문

 

1. if

- 참, 거짓에 따라 동작을 수행

- 들여쓰기를 잘 해야 해!

들여쓰기 잘못했을 시 발생하는 오류


- pass : 조건문은 있지만 실행할 문장이 없을 경우, 오류를 무시하기 위해서 if 문에 작성하여 조건문을 넘기는 기능


- 숫자에서 0 은 False이며  나머지 숫자는 True의 값을 갖는다.

 

2. while

- 조건이 True일 동안 무한히 반복한다.

- 조건에 대한 탈출문 꼭 적어야 한다.

- break : 탈출문을 안적었을 때 break를 사용해 강제로 종료한다.


- countinue : 조건에 해당하는 경우 그 값을 출력하지 않고 건너뛴다.

 

예제 풀어보기

문제

콘테스트 평가
7명의 심판들의 점수를 입력받아 리스트에 저장하고 최소값과 최대값을 리스트에서 제거하는 프로그램을 작성해보자
제거 전 [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
제거 후 [9.0, 8.3, 7.1, 9.0]

 

내가 적어본 코드

score = [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
print(score)
score.remove(min(score))
score.remove(max(score))
print(score)

 

코드실행 결과

정답은...!!

다음주에 공개 됩니다...!

728x90
반응형
728x90
반응형

들어가기 전  

 

PyCharm

PyCharm은 전문 개발자를 위한 전체 스택 Python 통합 개발 환경(IDE)이다. Python 개발, 전체 스택 웹 개발, 데이터 과학 등 모든 Python 워크플로우를 지원한다. 지능형 Python 및 R 코드 지원, Python 웹 개발 프레임워크, javaScript 및 TypeScript, HTML/CSS, 데이터베이스, Jupyter Notebook에 대한 광범위한 지원을 한다.

 

DataSpell

DataSpell은 탐색적 데이터 분석 및 머신 러닝 모델 프로토타이핑을 위해 특별히 설계된 IDE이다. Jupyter Notebook의 대화형 기능과 지능형 Python 및 R코딩 지원을 하나의 사용자 친화적인 환경에 결합했다.

지능적인 코딩 지원, 버전 관리 및 기타 IDE 관련 기능은 물론 데이터를 시각화하고 데이터에서 인사이트를 얻는 데 도움이 되는 테이블, 플록 및 위젯 같은 대화형 출력기능이 있다.

 

추천사이트

1. MDN

https://developer.mozilla.org/ko/

 

MDN Web Docs

The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.

developer.mozilla.org

 

2. SDKMAN (Java 개발환경 관리 Tool)

JVM 기반 언어와 프레임워크를 쉽게 관리할 수 있게 해주는 도구. 이 도구를 사용하면, JDK, Groovy, Scala, Kotlin 등과 같은 JVM 기반의 언어와 Gradle, Maven 등의 빌드 도구를 손쉽게 설치하고 관리할 수 있도록 도와준다.

https://sdkman.io/

 

Home - SDKMAN! the Software Development Kit Manager

SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.

sdkman.io

 

Settings에서 세부설정 바꾸기

1. Font 변경

2. 각 주석들의 폰트 색상 변경

3. 테마

 

플러그인 옵션 추천

1. CodeGlance3 (코드 미니맵을 생성해주는 플러그인)

2. Tabnine AI Code Compieton (코드 자동 완성) - 유료

 

Run Time Data Areas

자바 가상 머신의 메모리 모델

자바 기술 문서 : https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-2.html#jvms-2.5


Python

-Python에서는 들여쓰기Indent가 문법으로 여겨진다.

-파이썬은 세미콜론을 붙이지 않는다. 단, 세미콜론을 붙여도 문법 에러는 발생하지 않는다. 보통 한 줄에 여러 구문을 사용할 때 세미콜론으로 구분해준다.

-terminal 에서 pwd 검색 시 경로를, dir 검색 시 세부정보를 알려준다.

-실행 단축키 : Ctrl + Shift + F10

 

Jupyter Notebook

-단축키

ESC : 셀 선택 상태

M : Markdoum 모드로 변경

Y : Code 드로 변경

DD : 셀 삭제

Shift + Enter : 입력 셀 실행 후 아래 셀로 이동 (없으면 새로운 셀 추가)

Ctrl + Enter : 입력 셀 실행

Ctrl + Shift + Enter :  이전으로 돌아감

 

-상단 카테고리 변경 (Code/Markdown)

Code - 코드 작성

Markdown - 메모

Markdown 사용법

https://heropy.blog/2017/09/30/markdown/ 

 

MarkDown 사용법 총정리

마크다운(MarkDown)에 대해서 알고 계신가요?파일 확장자가 .md로 된 파일을 보셨나요?웹 개발을 하면서 아마 README.md라는 이름의 파일을 한 번은 보셨을텐데, ...

heropy.blog


Python

 

변수

#정의

- 데이터를 저장하고, 변하는 수
- 이름과 값으로 구성

# 변수는 왜 필요한가
- 데이터는 계속 변화하기 때문에, 데이터를 변수로 지정해 놓고 변수 값만 변경하면 된다.

# 변수 이름 규칙
- 영문자로 + 숫자 + underbar의 형식을 사용한다. ex) a, a1, a1_
- 공백이 있으면 안된다 
- 대소문자 구분한다
- 특수문자가 있으면 안된다

# 데이터의 종류
-숫자형 : 정수, 실수
-문자형 : 문자, 문자열
-복합형 : 클래스, 리스트, 딕셔너리

# print 함수
-기본 출력 장치로 결과를 출력
-print(변수 or 출력하고 싶은 결과물)

 

1. 숫자

- 숫자 형태로 이루어진 자료형

- 정수(int) : 1, 2, -1, 0

- 실수(float) : 1.11, -1.000, 10e5, 10e-5

 

1-1. 숫자 변수 예제

# 과일 가게의 총 매출
품목 :
    바나나 (1000원)
    사과 (500원)
    체리 (5000원)
    
고객  
손씨 : 사과 (2)
손씨 : 체리 (3)
김씨 : 사과 (4)
박씨 : 바나나 (1)
박씨 : 사과 (2)
박씨 : 체리 (1)

# 객단가(고객 1명당 평균 매출)를 구해보시오.
바나나 = 1000
사과 = 500 
체리 = 5000

손씨 = (사과 * 2) + (체리 * 3)
김씨 = 사과 * 4
박씨 = (바나나 * 1) + (사과 * 2) + (체리 * 1)
sum = 손씨 + 김씨 + 박씨
print('총 매출 : ', sum)
print('객 단가 : ', sum/3)

결과

총 매출 :  25000
객 단가 :  8333.333333333334

 

2. 문자

-문자 형태의 데이터

-" " 이용하거나 ' ' 로 감싸준다.

- 인덱싱

     >>슬라이싱 : 인덱스의 시작 ~ 끝(범위, 간격)을 지정하는 방법

- java에서 문자열 곱하기는 불가능했지만 파이썬에서는 가능하다

- 문자열 포맷 : 문자열 내에서 변수, 값 또는 표현식을 삽입하거나 형식을 지정하는 방법

 

2-1. 문자열 함수

- upper() : 대문자 바꾸기

- lower() : 소문자 바꾸기

- count() : 문자열 안의 특정 문자열 개수 반환

- join() : 특정 문자열을 기준으로 문자열을 삽입

- split() : 특정 문자열을 기준으로 문자열을 나눈다

- replace() : 특정 문자열을 지정 문자열로 반환

- strip() : 공백제고 (lstrip, rstrip)

- find() : 특정 문자열을 찾아준다

- input() : 기본 입력 장치로 부터 입력된 정보를 반환한다.변수 = input()의 형식으로 사용

 

3. 리스트

- 요소들의 모음을 나타내는 자료형

- 요소들은 []로 감싼다

- 모든 자료형을 담을 수 있다

- 리스트 연산

     >> + 연산자 : 순서대로 연결하여 하나의 리스트로 만든다
     >> * 연산자 : 곱하는 수 만큼 반복하여 하나의 리스트로 만든다

 

3-1. 리스트 함수

- len() : 리스트의 길이를 반환
- sum(), min(), max() 함수 : 리스트 요소의 총합, 최솟값, 최댓값 (문자의 경우도 코드가 있기 때문에 코드가 가장 작은 값, 큰 값 반환)
- in() : 특정 요소가 리스트에 있는지 확인하는 함수
- append() :  맨 마지막에 요소 추가
- extend() :  맨 마지막에 다른 리스트를 추가
- insert() : 특정 위치에 요소를 삽입한다
- remove(), pop() : 리스트의 요소를 삭제
- join() : 리스트의 요소들을 하나의 문자열로 합침
- split() : 문자열 리스트의 요소들로 나눈다

- range() : range(시작, 끝, 간격)을 리스트로 반환해준다.

 

4. 튜플

- 리스트와 같다
- 수정 불가능 (불변성)
- 리스트보다 빠르다
- []가 아닌 () 사용
- append, insert, extend, remove, pop, sort 사용할 수 없다
- 튜플은 항목 할당을 지원하지 않는다. 즉, 대입 연산자가 먹히지 않는다.

 

728x90
반응형
728x90
반응형

개요

 

컴퓨터의 구성

1. 중앙처리장치(CPU: Central Processing Unit) - 산술/논리 연산, 흐름제어

2. 주기억장치(Memory)-임시저장소

3. 보조기억장치(Secondary storage)

4. 다양한 입/출력 장치(input/output(I/O) device) -HDD, SSD 등 데이터소스, 영구 저장소

컴퓨터에서 가장 중요한 부품인 CPU가 담당하는 기능
→계산기 능력과 순서를 제어하는 중앙 처리 장치
1개의 CPU(Core)안에
레지스터(임시저장) + ALU(산술/연산 유닛) + CU(흐름제어 유닛)

 

▶ALU는 계산기. 계산만을 위해 존재. 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 수행

▶ 레지스터는 CPU 내부의 임시 저장 장치. 프로그램을 실행하는 데 필요한 값들을 임시로 저장. CPU 안에는 여러 개의 레지스터가 존재하고 각기 다른 이름과 역할을 함.

▶ 제어장치는 제어 신호라는 전기 신호(컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호)를 내보내고 명령어를 해석하는 장치.


컴퓨터 언어

Code

어셈블리어(문자코드, 의사코드): 어셈블리어는 기계어에 비해 사람이 이해하기 쉬운 저수준 프로그래밍 언어. 어셈블리어는 특정 컴퓨터 아키텍처에 대한 기계어 명령어를 기호화하여 표현한다.

기계어(숫자코드, 실행코드): 기계어는 컴퓨터가 직접 이해하고 실행하는 프로그래밍 언어. 이진 코드로 표현되며, 각각의 명령어와 데이터를 특정 비트와 바이트의 패턴으로 나타낸다.

 

*전달하고 해석할 때 동일한 코드를 사용하는 것이 무엇보다 중요하다.

 

알파벳을 위한 약속: 아스키 코드

ABC를 0과 1로 표현하는 방법 

ex) cmd에서 Alt+65를 치면 A가 입력됨

 

                                 인코딩(Encoding) →

사람의 언어                 번역: 컴파일러                   컴퓨터 언어

                                 ←디코딩(Decoding)

 

모든 언어를 위한 코드: 유니코드

16bit 사용

아스키코드 + 전 세계 언어에 대한 코드

 

프로그래밍 언어

사람이 알아볼 수 있는 언어로 작성하면 이것을 기계어로 번역해서 컴퓨터에게 알려주는 도구

기계어 < 어셈블리어 < 하이레벨 언어 < C언어 자바 파이썬 등

 

기계마다 다른 기계어

각각의 제작사에서 만드는 중앙처리장치는 저마다 특성이 다르기 때문에, 서로의 기계어가 다르다. 그래서 기계어에 관해서 이야기할 때는 반드시 적용되는 기준 기계를 함께 표시해 준다.

같은 프로그래밍 언어라도 기계가 다르면 (예를 들어, 윈도우 pc와 맥 pc) 컴파일러가 서로 달라야 하기 때문이다.

 

컴퓨터 언어 번역기: 컴파일러

사람이 알아볼 수 있는 단어로 작성된 언어를 컴퓨터가 이해하는 언어로 변환하는 작업을 컴파일 Complie이라고 한다.

컴파일 언어로 만든 프로그램을 실행하는 방법

complie install run excute

 

스크립트 언어 (vs 컴파일 언어)

자바스크립트와 파이썬의 코드는 1줄

이 두 언어는 스크립트 언어이기 때문

 

스크립트 언어: 스크립트 언어는 인터프리터를 사용하여 소스 코드를 런타임 중에 해석하고 실행한다. 이것은 소스 코드를 기계어로 변환하는 별도의 컴파일 단계가 없음을 의미한다. (ex. Python, JavaScript, Ruby, PHP 등)

컴파일 언어: 컴파일 언어는 소스 코드를 컴파일러를 사용하여 기계 코드로 먼저 변환한 다음 실행한다. 이것은 실행 전에 미리 컴파일 단계가 필요다. (ex. C, C++, Java, C# 등)

 

 


파이썬 소개

 

컴퓨터 시스템의 발전

1. 컴퓨터와 4차 산업혁명

-컴퓨터의 발전

-1946년 애니악

     #컴퓨터의 다양한 활용분야

     -범용기계

     -튜링 머신의 개념(1937년 알란 튜링)

     -인간 두뇌와 컴퓨터(마이크로 프로세서 칩)의 비교

2. 정보 통신과 네트워크

-컴푸터 네트워크의 중요성

-다양한 컴퓨터 네트워크

3.인터넷과 초연결사회

-인터넷의 개념과 발전

-인터넷 서비스의 발전 역사

     >>초기 정보검색 수단

     >>'인터넷 경제' 시대의 도래

 4. 웹의 출현

-1989년 스위스 CREN 연구소의 팀 버너스리

5.초연결사회로 변화

-초연결사회

     >>인터넷, 사물인터넷, 센서의 발달

 

소프트웨어의 중요성

-무어의 법칙: 마이크로프로세서 칩의 성능은 18개월 마다 두 배씩 증가한다.

-소프트웨어의 생산성

-하드웨어의 비용이 급격히 감소, 소프트웨어의 비용은 매우 빠르게 증가

>>인공지능, 빅데이터 분석, 사물인터넷, 자율주행 자동차, 모바일 컴퓨팅의 핵심 기술은 소프트 웨어(즉, 알고리즘)

 

프로그래밍 언어의 발전

 -프로그래밍 언어의 역사

     >> 4가지 패러다임: 절차적 언어, 객체지향 언어, 선언적 언어, 함수형 언어

-절차적 언어와 객체지향 프로그래밍 언어

 

컴파일러와 인터프리터

-기계어와 고수준 언어

     >>기계어: 하드웨어에서 자료 표현의 기본 단위인 비트값 0과 1로 표현

-컴파일러: 고수준 언어로 작성된 프로그램을 특정 CPU의 기계어로 번역

-인터프리터: 미리 번역해두는 것이 아니고 프로그램이 실행 될때 한문장 씩 기계어로 해석

 

파이썬의 철학과 특징

-파이썬의 철학

1991년 네덜란드의 귀도 반 로썸

쓰기 쉽고 이해하기 쉬운 프로그래밍 언어로 개발

 

Python

장점: 단순성, 오픈소스 언어, high-level 언어, interpreted, 객체지향적, 가독성, 간결한 언어

제약점: C, C++, Java에 비해여 실행 속도가 늦다

 

인공지능, 빅데이터 분석, 딥러닝, 컴퓨터 비전 영역의 다양한 외부 라이브러리 모듈의 지원으로 파이썬이 많이 이용되고 있다.

사이킷-런, 텐서플로우, 아파치 스파크, 파이토치 등 성능도 뛰어나며 많이 사용되는 머신러닝, 딥러닝 프레임워크들이 파이썬으로 접근이 가능하다.

 

파이썬은 어디에 작성하는가?

텍스트 에디터와 대화형 인터프리

VS Code, PyCharm, Jupyter Notebook, Colaboratory 등

 

문제 해결 방법론

-폴야의 문제 해결과정

1. 주어진 문제의 이해

2. 문제를 풀기위한 구체적 방법 > 알고리즘

3. 찾은 방법에 따라 실현 > 프로그램

4. 신뢰성 검증

 

알고리즘의 중요성

컴퓨터과학은 알고리즘에 관한 공부

 알고리즘은 컴퓨터과학에서 가장 중요한 개념이며 핵심 주제

 

소프트웨어와 알고리즘

알고리즘의 실현

-'잘 정의된 기본 절차(Well-defined Primitives)'들을 이용

-잘 정의된 기본 절차는 어떤 시스템을 만드는 '빌딩 블록'

-기본절차: 소프트웨어 개발에서 기본 절차는 프로그래밍 언어


 

추천 사이트

 

1. 타이핑 연습

https://www.speedcoder.net/

 

Typing Practice for Programmers | SpeedCoder

 

www.speedcoder.net

2. 프로그래밍에 대한 Q&A

https://stackoverflow.com/ 

 

Stack Overflow - Where Developers Learn, Share, & Build Careers

Stack Overflow | The World’s Largest Online Community for Developers

stackoverflow.com

3. 번역  

https://www.deepl.com/

 

DEEP

engineering wonder Making Humans Aquatic DEEP exists to radically advance how humankind can access, explore and inhabit underwater environments. Through flexible, modular subsea habitats, work-class submarines, and advanced human performance research, DEEP

www.deep.com

 


Python 설치 

 

1. Data Spell

https://www.jetbrains.com/  

 

JetBrains: Essential tools for software developers and teams

JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

www.jetbrains.com

DataSpell에서 편의성 향상을 위해 설치할 옵션

Indent Rainbow (들여쓰기)

Key Promotor X (단축키 알려주는 옵션)

Material Theme Ul

Rainbow brackets

https://github.com/naver/d2codingfont 에서 글꼴 다운 받고 Dataspell 시스템 설정 내에서 적용

 

2. 파이썬 인터프리터 (필요한 라이브러리 제공)

설치 시 PC에 Microsoft Visual C++ Redistributable 설치 여부 확인

https://www.anaconda.com/  

 

Anaconda | The World’s Most Popular Data Science Platform

Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

www.anaconda.com

 

아나콘다 설치 후 시스템 환경 변수 확인

 

※ 아나콘다 설치 시 아래 내용에 체크 해야 path에 아나콘다가 환경 변수로 들어온다.

  설치가 완료되면 Git Bash를 통해 설치된 경로와 버전을 확인 할 수 있다.

728x90
반응형

+ Recent posts