[Python] 2. python

디하·2024년 5월 30일
0
post-thumbnail

1.파이썬이란?

히도 판로쉼 1991년 개발

다중 프로그래밍 패러다임 채용
정의: 프로그램을 생성하는 접근방식
명령형 프로그래밍, 절차적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍 지원
✅ 다목적 활용
응용 프로그램과 웹, 백엔드 개발, 사물 인터넷 분야 뿐만 아니라 교육적인 목적으로도 활용

발전과정

1991년 ABC 후속 프로그래밍 언어로 시작
1999년 DARPA 'Computer Programming for EveryBody' 제안
2000년 파이썬 2.0 출시
-> 커뮤니티를 통한 개발 체계 시작

2008년 파이썬 3.0 출시
-> 비 하위 호환성을 갖는 메이저 업데이트 (2.0 때 버전과 문법도 달라짐)

메이저 업데이트란? 파이썬 3.0 에서 정수 부분이 업데이트 되는게 메이저업데이트
마이저 엡데이트란? 파이썬 3.0 에서 소수점 뒷부분이 업데이트 되는게 마이저 업데이트

파이썬의 특징

1) 장점
독립성 (운영체제 안가림) / 오픈소스 / 인간적 / 신속성 / 직관적
2) 단점
C나 Java 등으로 작성된 프로그램보다 느린 속도
완전한 애플리케이션 단독 개발이 불가능

  • 쉘스크립트 언어용으로 개발
  • 모바일 앱등 응용 애플리케이션 개발 불가능
  • Rust 또는 Go 고려

2.파이썬의 프로그램의 실행

1) 파이썬 실행 환경
동적 타이핑 대화형 언어

  • 윈도우, 리눅스, 유닉스, 맥os 등 다양한 운영체제 (플랫폼)에서 별도의 컴파일 없이 실행 가능
  • 프로그램을 객체로 모델링
  • 변수의 자료형을 지정하지 않음
  • 작성한 코드에 대한 수행 결과를 바로 확인하고 디버깅하면서 코드 작성 가능

2) 파이썬 프로그램 실행과정
파이썬 애플리케이션은 소스코드 형태로 배포
-> CPython 이 컴파일 후 바이트코드.pvc 파일 생성
-> 파이썬 가상머신은 바잍코드를 한 라인 씩 실행
-> 변경없이 재실행 시 바이트코드로 빠르게 실행

3.파이썬 프로그래밍 환경

1)IDLE
기본으로 포함된 파이썬의 통합개발 환경
-> 파이썬과 Tkinter GUI 툴킷으로 개발
-> 구문 강조, 자동 완성, 스마트 들여쓰기 등이 포함된 단순한 IDE 지향
-> stepping, breakpoint, call stack 등을 확인할 수 있는 통합 디버거 환경 제공
2) 주피터 노트북
파이썬을 비롯한 40여개의 프로그래밍 언어 지원
전통적인 소스코드- 컴파일-실행 방식에서 벗어나 웹기반 대화형 개발 및 실행 환경
문서화하여 다른 사람과 공유하기가 편리
마크다운을 이용하여 코드 관련 타이틀, 설명 등 작성 가능
3) 구글 Colab
2017년 과학 연구와 교육을 목적으로 개발
클라우드 기반 주피터 노트북 갭라 환경
-> 주피터 노트북 + 구글 드라이브를 결합한 서비스
-> 데이터 분석 및 딥러닝 연산 등 고성능 컴퓨팅 리소스 활용 가능

4. 프로그래밍 기초

1) 숫자
a. 정수 (integer) : 소수점이 없는 숫자
b. 실수 (floating point) : 소수점이 포함되는 숫자

2) 문자
유니코드 기반 문자 또는 문자열
인용부호 " 또는 '를 사용하여 표현

3) 기본 연산자와 표현식
피연산자와 연산자를 이용한 표현식은 파이썬 인터프리터에 의해 자동계산

4) 함수
특정 작업을 수행하는 코드의 집합(명령문의 집합)으로 함수의 이름만으로 실행할 수 있는 단위
print 함수 : 화면에 데이터를 출력하는 작업

print("hello world!")
-> print : 함수 이름
-> ("") : 입력값(파라미터)

5)들여쓰기
파이썬은 들여쓰기에 의존적 언어!
파이썬에서는 코드의 논리적 집합인 블록을 표현

  • 스페이스 4칸
  • 블록 중첩시 추가적인 4칸 들여쓰기 삽입

6) 문서화
주석 사용

  • 가독성 증대로 개발 속도 향상, 유지보수 용이
    주석의 종류
    #을 사용
    여러라인 주석에 """ 주석 """

5. 데이터 저장 ⚡️

1) 변수
명령형 패러다임 언어의 특징
-> 처리할 데이터와 처리된 결과를 임시적 저장
-> 변수의 값을 변경하는 할당연산자(=)를 이용
a = 20

2) 값의 할당
프로그램이 실행되는 과정에서 처리되는 값이 어떤행위(입력, 연산 등) 에 따라 그 값이 변할 수 있는 메모리 내의 저장공간 지정

식별자, 저장공간, 값으로 지정

3) 식별자
프로그램 내부에 정의된 객체(변수,함수등)의 이름

  • 문자,숫자,밑줄로 구성
  • 문자 또는 밑줄로만 시작 가능 (숫자x)
  • 예약어와 동일할 수 없음
  • 길이 제한이 없음

4) 예약어
파이썬 인터프리터에 의해 이미 문법적인 용도로 사용되어 식별자로 사용이 불가능한 단어

5) 변수의 사용


# 반지름, 높이 값 할당
rad = 2
hei = 3

# 부피 출력
print(1 / 3 * 3.14 * rad ** 2 * hei )
# 겉넓이
print(3.14 * rad ** 2 + 3.14 * rad * hei)

6. 산술 연산자

1) 피연산자에 대해 지정된 산술연산을 지시하는 기호

  • 단항 연산자
  • 이항 연산자

2) 특수 산술연산자
프로그래밍 언어에서만 사용되는 연산 또는 부호

  • 정수 나눗셈 연산자 (//)
5/2 # 답:2.5
5//2 # 답:2
  • 모듈로 연산자(%) : 나머지

3) 연산자 우선순위
표현식에 사용된 여러 연산자의 연산 순서를 결정
괄호 -> 지수연산자 (제곱)-> 곱셈, 실수 나눗셈, 정수나눗셈, 나머지 연산자 (왼쪽-> 오른쪽)
-> 덧셈,뺄셈 연산자 -> 할당 연산자

4) 파이썬 내장 함수
파이썬 인터프리터에서 기본적으로 지원하는 함수
-> 별도의 모듈이나 패키지 없이 사용 가능
max,min,abs(절대값)


7. 제어 구조

1) 구조적 프로그래밍 패러다임

  • 절차적 프로그래밍 패러다임의 하위 개념
  • goto문을 사용하지 않고, 프로그램을 3가지 제어구조만으로 구성하는 프로그래밍 페러다임

-> 순차구조
-> 선택구조
-> 반복구조

  • 프로그램 실행 흐름이 간결하고 작은 규모로 조직화하기 쉬움

a. 순차구조
실행 흐름을 주저이즌 명령의 위치적 흐름에 따라 수행하는 구조
-> 명령라인 위에서 아래로 흐르는 가장 직관적인 구조

b. 선택구조
특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 결정하는 구조
-> 실행 여부는 조건에 따라 결정

c. 반복구조
특정 영역의 명령문을 여러번 재실행 하는 구조
-> 반복횟수를 조건에 따라 결정

7-1. 순차 구조

실행 흐름을 주저이즌 명령의 위치적 흐름에 따라 수행하는 구조
-> 명령라인 위에서 아래로 흐르는 가장 직관적인 구조
-> 일단 첫 단계를 시작하면 마지막 단계까지 수행

1) 사용자 입력
- input : 사용자로부터 데이터를 입력받는 함수
- 입력 데이터를 문자 데이터 타입으로 반환
- 함수의 파라미터는 입력 안내문의 목적으로 사용


rad = inpuyt("반지름을 입력하세요: ")

프로그래밍 에러

설계 미숙, 결함 또는 문법 오류로 프로그램이 의도한대로 결과를 생성하지 못하는 문제
a. 구문오류(sysntax error)
문법상 오류
b. 실행오류(runtime error)
논리적으로 실행 불가능
c. 의미오류(semantic error)
의미적으로 잘못 해석되는 명령문 오류

데이터 타입 변환

  • 문자열 타입으로 변환 :str 함수
  • 정수 타입으로 변환 int 함수
  • 소수 타입으로 변환 float 함수

#반지름, 높이 값 할당
rad = int(input("반지름을 입력하세요: "))
hei = int(input("높이를 입력하세요: "))
#sep="" 공백 없이
#부피 출력
print("부피 :", 1 / 3 * 3.14 * rad ** 2 * hei , "입니다" , sep="")
#겉넓이 출력
print("겉넓이: ",3.14 * rad ** 2 + 3.14 * rad * hei, "입니다",sep="")

여러개의 데이터를 단일 함수로 출력 가능

  • 콤마(,)로 파라미터를 구분하여 입력
  • 데이터 사잉에 공백(기본값) 자동으로 추가
  • sep 옵션으로 변경하여 공백 변경 가능

7-2. 선택 구조

특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 결정하는 구조
-> 실행 여부는 조건에 따라 결정

profile
🖥️ ⌨️🖱️🩵

0개의 댓글