반응형


파이썬 강좌

귀도 반 로섬이 만든  인터프리터 언어. 신화에 나오는 큰 뱀이라는 뜻

고급언어다. 인간적인 언어
문법이 쉽다. 가독성이 좋다.
강력하다. 간결, 무료. 개발 속도가 빠르다.
복수개의 리턴 및 복수개를 한 번에 대입 등이 가능.
""" 지원.
 

줄을 잘 맞춰야 한다. !!!!  그렇지 않으면 실행이 되지 않는다.
{} 이런 괄호를 사용하지 않는다.!!!!     대신 탭을 맞춰야 한다.!!!! indentation!
대신 블록은  for, if 등에서 : 을 마지막에 사용한다.

C의 모듈을 사용할 수 도 있다.
DB, 웹, GUI 프로그래밍도 가능하다.
단점은, 느리다. 

NULL대신 None사용

파이썬은 call by assignment이다???     (자바랑 비슷하다)
     call by value도 reference도 아니다.
     immutable object(int, float, str, tuples등)은 value로 넘어감.
     mutable object(그외)는 reference가 넘어가지만 변경될수도 아닐수도 있다.
     vector를 파라미터로 넘겨서 append를 하면 추가되어 caller에서도 변경된다.
     그러나 할당을 하면 caller에서는 변경되지 않는다. 주소가 변경되니... 당연.

def spam(eggs): 
    eggs.append(1)     # 원본 객체의 메소드로 직접 데이터 변경.
    eggs[0]=77          # 원본 객체의 직접 수정.
    eggs = [2, 3]     # 새로운 객체의 주소가 할당되었다. 원본객체는 이제 이 함수내에서 사용 불가.
    eggs[0]=99
    print(eggs)  ## 무엇이 출력될까?    
99, 3 ; 최종적인 값임.; 0 -> 0, 1-> 77, 1 까지되고 주소변경 ; 2, 3 -> 99, 3

ham = [0] 
spam(ham) 
print(ham)     ## 무엇이 출력될까?  
  77, 1 ; 객체 주소변경전까지만 유효하다; 0, 1 -> 77, 1 까지되고 이후 주소변경됨.


def foo(bar=[]):
     bar.append("baz")
     return bar

foo()     ; baz
foo()     ; baz baz               ; 파이썬의 파라미터 기본값은 최초 한번!만 실행되고, 이후 재사용!한다.
foo([1])     ; 1 baz          ; 주소변경됨.
foo([2])     ; 2 baz          ; 주소변경됨.
foo()          ; bza baz baz     ; 예전 기본값 주소 재사용.     주의!!!! 


try:
     l=["a","b"]
     int (l[2])
except ValueError, IndexError:
     pass
위와 같이 하면 index error 오류를 잡지 못함. ()로 묶어 주어야 한다!!!
except (ValueError, IndexError) as e:


+할당문에 의한 변수 범위 변화          gloal 변수 사용 주의!!!
x=10
def foo():
     x+=1
     print (x)
에러!??? -> x는 local               ; 함수내에 할당문이 있으면 그 변수는 로컬로 한정된다.
; 해결 방안. foo() 함수 내에 global x 를 선언해야 한다.


---------------------------------------------------------------------------------------------



+산술 연산

연산자 ; + - * /  //  %  **

3**2 (squared) => 3^2 주의!!!!!!!!! 파이썬에서는
제곱은 **2 이다.( ^ 아님. )
3/2 => 1.5
int(3/2) => 1          ; 타입 캐스팅.  아래와 같이 더 간단히 가능.
3
//2 => 1     ; 나머지 버림. 정수로 리턴.
% ; 나머지

abs(-6)
= 6
int(73.123)
=73


interactive 모드에서
이전 출력값을 변수  _ 로 사용가능 . 계산기 처럼 쓸 때 유용함.


분수 ; fraction
import fractions
x=fractions.Fraction(1,3)
   
    
    ; 1/3
x*2
Fraction(2,3)
    
    
    ; 2/3

삼각함수
import math
math.pi
math.sin( math.pi/2)
math.tan( math.pi/4)


+ 파이선 버전
python -V
python --version
현재 디렉터리 경로
import os
print (os.getcwd())
확장자로 .py로 작성한다.
python sample.py      ; 이렇게 실행한다.
-샘플)
그냥 계산도 된다.
>>> 1+2
>>> 50-4

# 대입, 복수의 대입도 한 번에 가능. parallel
a=10
a="Python"
a,b,c=0.4,0.2,0.7
피보나치 수열
a,b=0,1
while b<10:
     print(b)
     a, b = b, a+b
# 라이브러리 사용
import sys
sys.exit()


+ range 객체

숫자 범위 리스트를 만들어 준다.   
range(10) ; 0~9
range(1,11) ; 1부터 10     (주의! 11까지가 아니다.)
marks=[90,100,30,40]
for value in marks:
     sum=sum+value
for num in range(len(marks)):
     print(marks[num])
range(1,10) 결과 출력하기
list( range(1,10)) ; 이렇게 list로 변환해주면 콘솔에서 내부 데이터 출력이 가능하다


-print에서 자동개행하지 않게 출력하려면
print ( "abc", end=" ")
print ( "def")



'Python' 카테고리의 다른 글

Python 강좌4 정규식 regular expression  (0) 2018.03.19
Python 강좌3 자료형. 수/문자열  (1) 2018.03.16
Python 강좌2 if/for/while/function  (0) 2018.03.15
Linear regression  (0) 2018.03.13
[python] 보간법 interpolate 사용하기  (0) 2017.05.25

+ Recent posts