파이썬 개요
1. 파이썬 특징
- 플랫폼 독립적
- 인터프리터 언어 (한줄씩 검사)
- 객체 지향
- 동적 타이핑 언어
- AI 프로그래밍을 위한 많은 라이브러리 제공
- 처음 C언어로 구현되었음
2. 문제해결을 위한 일반적인 프로그램 구조(모듈화)
- 입력 자료(data) -> problem solving[알고리즘] -> 문제해결, 출력 자료(data)
- 문제 해결 : 데이터 입력, 데이터 처리, 데이터 출력 => 모듈
- 모듈(module)
1) 큰 문제를 기능별 작은 단위로 나눈 것
2) 독립적으로 수행할 수 있는 프로그램 단위
3. C언어 구조 : C 프로그램은 여러 개의 함수(=모듈)로 구조, 절차 지향 프로그래밍
4. Python 구조 : Python은 여러 개의 프로그래밍 스타일을 포괄
* 절차 지향 프로그래밍
* 객체 지향 프로그래밍
1) 관계 있는 데이터와 함수를 하나로 묶어서 선언하는 클래스라는 개념을 도입
2) 클래스는 객체를 생성하는 데이터 타입 역할
3) 객체지향 개념(상속, 다형성 등)을 활용하여 효율적으로 코드 작성
4) 객체 지향 프로그래밍은 클래스(객체)가 필수적
ex) Python = 클래스(객체) + 클래스(객체) + 함수 + ... + 시작코드
* 함수형 프로그래밍
1) 절차 지향의 경우 일련의 명령어를 통해서 변수를 바꿔 가면서 전체적인 프로그램을 동작하게 하지만 함수형 프로그래밍의 경우 기존의 함수와는 다른 수학적인 모델링을 통한 함수의 사용으로 프로그램의 동작 및 예측에 대한 능률을 높여 줌
2) 함수형 코드에서는 함수의 출력값은 그 함수에 입력된 인수에만 의존하므로 인수 x에 같은 값을 넣고 함수 f를 효출하면 항상 f(x)라는 결과가 나오므로 프로그램의 동작을 이해하고 예측하기 쉬움
ex) Python = 클래스(객체) + 함수 + 고차원 함수+ ... + 시작코드
5. Python 프로그램 구조
1) 함수
- 독립적으로 수행할 수 있는 프로그램 단위
- 파이썬에서 모듈은 여러 개의 함수를 모아 놓은 것
ex) def add(num1, num2); -> def를 이용해서 함수 정의
return num1 + num2
2) 클래스(객체)
- class는 객체를 선언하기 위한 사용자 정의 데이터 타입
ex) class Car:
speed = 0
def upspeed(self, value) :
self.speed += value
3) 고차원 함수
ex) f1= lambda x,y : x + y ->Lambda 는 함수를 정의하는 새로운 방법
4) 시작 코드
- python에서는 함수 및 클래스 정의가 끝난 후 들여쓰기가 없는 문장부터 수행
ex) # 시작 코드
sum=add(100,200) # 함수 호출
print(sum) # 300
print(f1(30,50)) # 80
변수와 메모리
1. 변수 : 사용할 데이터를 저장하는 공간
1) 변수는 값을 저장하는 상자로 생각할 수 있음
2) 변수는 메모리에 저장됨
2. 변수 - C : C언어에서 변수는 데이터 타입 사용하여 변수 선언을 해야함
3. 변수 - Python : Python에서 변수는 데이터 타입 생략하고 변수 선언 가능, 세미콜론(;)으로 연속된 변수 선언
1) 동적 타이핑 : 런타임에 구문을 통해 Data Type을 설정
ex) 파이썬 주소 연산자? 사용x -> print(id(a))
2) Python에서 변수는 객체를 가리키는 ID 값을 담고 있는 저장 공간, 데이터를 참조함
4. 변수의 활용
1) 파이썬에서 변수의 데이터 형식은 값을 넣는 순간마다 변경될 수 있는 유연한 구조 -> type(a)
2) 변수에는 다른 변수의 값도 저장 가능
3) 문자열, 실수 저장
5. 변수 실습
- 문제해결 : 변수 x와 변수 y의 값을 서로 바꾸는 프로그램을 작성, 다음과 같은 프로그램으로 변수의 값을 교환할 수 없음, 왜 그럴까? 그리고 해결 방법은 무엇일까?
a = 10 # a : 10
b = 20 # b : 20
a = b # a : 20
b = a # b : 20
1) 해결 방법1 : temp 사용
2) 해결 방법2 : a, b = b, a
입출력 함수
1. input(), print() 함수
ex) name = input("이름이 무엇인가요? ") => 이름이 무엇인가요? 드인
print("만나서 반갑습니다. " + name + "님!") => 만나서 반갑습니다. 드인님!
2. print() 함수
- Shell 환경에서 변수 선언 및 print() 사용 에제
ex) result=a+b
print(a, '+', b, '=', result) => 100 + 50 = 150
ex) x = input("첫 번째 정수: ") => x = int(input("첫 번째 정수: ")) -> 데이터 타입을 int로 변환하여 전달
y = input("두 번째 정수: ") => y = int(input("두 번째 정수: "))
sum = x + y
print("합은 " , sum)
<출력>
첫 번째 정수: 10
두 번째 정수: 20
합은 1020 => 합은 30
3. 입출력 함수 실습
1) 사용자에게 이름을 물어보고 화면에 " 드인님 반갑습니다'와 같이 출력하세요
2) 사용자의 나이를 물어보고 "10년 후면 20살이 되시는 군요!"와 같이 입력된 나이에서 10살을 더해서 출력하도록 파이썬 프로그램을 작성하세요.
>>> name = input('이름을 입력해주세요: ')
이름을 입력해주세요: 드인
>>> print(name, "님 만나서 반갑습니다.")
드인 님 만나서 반갑습니다.
>>> age = input('나이를 입력해주세요: ')
나이를 입력해주세요: 21
>>> print('10년 후면', int(age)+10, '살이 되시는 군요!')
10년 후면 31 살이 되시는 군요!
'공부 > R & Python' 카테고리의 다른 글
파이썬(5) (0) | 2019.08.31 |
---|---|
파이썬(4) (0) | 2019.08.30 |
파이썬(3) (0) | 2019.08.30 |
파이썬(2) (0) | 2019.08.18 |
기본 스크립트와 함수, R 추가 패키지 사용법 (0) | 2019.08.07 |