본문 바로가기
  • On the ball
Data/TensorFlow

Python 개요, 기초 문법

by pub-lican-ai 2017. 3. 8.
반응형

Python으로 할 수 있는 것

1. 시스템 유틸리티 제작
 파이썬은 운영체제의 API들을 이용할 수 있는 각종 도구를 갖추고 있어서, 이를 바탕으로 갖가지 시스템 유틸리티를 만드는 데에 유리합니다. 시스템에서 사용중인 서로 다른 유틸리티성 프로그램들을 하나로 뭉쳐서 큰 힘을 발휘하게 하는 프로그램들을 무수히 만들어낼 수 있습니다.

2. GUI 프로그래밍
 GUI 프로그래밍이란 쉽게 말해 그래픽으로 이루어진 소프트웨어를 만드는 것을 뜻합니다. 파이썬으로 GUI 프로그램을 만드는 것은 다른 언어보다 훨씬 쉽습니다. 파이썬에 내장되어 있는 기본 모듈인 Tkinter를 이용해 단 5줄의 소스 코드만으로도 창을 하나 띄울 수가 있습니다.
파이썬에는 wxPython, PyQT, PyGTK등과 같이 Tkinter보다 더 효율 좋은 모듈들이 존재합니다.

3. C/C++과의 결합
 파이썬은 접착 언어라고도 부르는데, 그 이유는 다른 언어들과 잘 어울려 다른 언어와 쉽게 결합해서 사용할 수 있기 때문입니다. C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C나 C++에서 사용할 수 있습니다.

4. 웹 어플리케이션
 파이썬은 웹 어플리케이션을 만드는 데에 매우 적합한 도구이며 실제로 파이썬으로 제작된 웹사이트는 셀 수 없을 정도로 많습니다. 대표적으로 Django 프레임워크가 있습니다.

5. 수치 연산 프로그래밍
 파이썬은 느리기 때문에 사실 수치 연산에 적합한 언어는 아닙니다. 수치가 복잡하고 연산이 많다면 C와 같은 언어로 하는 것이 더 좋습니다. 하지만 파이썬에는 Numeric Python이라는 수치 연산 모듈이 제공됩니다. 이 모듈은 C로 작성되었고, 따라서 파이썬에서도 수치 연산을 빠르게 할 수 있습니다.

6. 데이터베이스 프로그래밍
 파이썬은 Sybase, Infomix, Oracle, MySQL, PostgreSQL 등의 데이터베이스에 접근할 수 있게 해주는 도구들을 제공합니다. 또한 이런 데이터베이스를 직접 이용하는 것 외에도 파이썬에는 피클(pickle)이라는 모듈이 있습니다. 피클은 파이썬에서 사용되는 자료들을 변형없이 그대로 파일에 저장하고 불러오는 일들을 맡아 합니다.

7. 데이터 분석, 사물 인터넷
 데이터 분석을 할 때 아직까지는 데이터 분석, 통계에 특화된 R을 많이 사용하고 있지만, 파이썬으로 만들어진 Pandas 모듈이 등장한 이후로 파이썬을 이용하는 경우가 점점 증가하고 있습니다. 사물 인터넷 분야에서도 파이썬은 활용도가 높습니다. 파이썬은 라즈베리파이를 제어하는 도구로서 사용됩니다.


*출처: http://city7310.blog.me/220886198265


[기초 문법]

#변수

myvar=3

myvar+=2

print(myvar)

mystring='Hello'

mystring+='Python'

print(mystring)

#한줄에서 두 변수 값 치환

myvar,mystring=mystring,myvar

print(myvar)

print(mystring)


#리스트, 튜플, 딕셔너리

example=[1,["list1","list2"],("one","tuple")]

mylist=["Element1",2,3.14]

print(mylist[0])

print(mylist[-1])

mydict={"key1":"val1",2:3,"pi":3.14}

print(mydict[2])

mytuple=(1,2,3,4,5)

myfunc=len

print(myfunc(mytuple))


#콜론을이용한 인덱스 접근

print(mylist[:])

print(mylist[0:2])

#음수 인데스는 배열의 마지막부터 세며 -1이 마지막 인덱스

print(mylist[-3:-1])

print(mylist[-1:-3])

print(mylist[1:])


#문자열 처리

s="hello\npython"

print(s)

s1="""hello

python"""

print(s1)

s="hello world"

print(s*2)

print(s[4])

print(s[2:])


#formatting %s, %c %d %f %o %x

format = "Name: %s, Age: %d"

name, age = "hello", 33

print(format % (name, age))


print(s.count('l')) #카운트 반환

print(s.find('l'))  #찾은 첫 인덱스 반환

print(s.find('c'))  #찾아서 없으면 -1

print(s.index('o')) #인덱스 반환

#print(s.index('c')) #찾아서 없으면 error


comma = ','

print(comma.join(s))

print(s.upper())

print(s.lower())

print(s.title())


print(s.replace('e','o'))

print(s.split())

print(s.split('o'))


#제어흐름

rangelist = range(10)

print(rangelist)

for num in rangelist:

    if num in (3,4,7,9):

        print('break')

        break;

    else:

        continue;

else:

    pass


if rangelist[1]==2:

    print("the second element is 2")

elif rangelist[1]==3:

    print("the second element is 3")

else: print("I don't know")

    

#while rangelist[1]:

#    pass


#함수

def passing_example(my_list,my_int):

    my_list.append("new")

    my_int = 4

    return my_list,my_int

input_my_list=[1,2,3]

input_my_int=10

print(passing_example(input_my_list,input_my_int))

print(input_my_list)

print(input_my_int)


#클래스

class Myclass:

    common=10

    #비공개private 메소드 이름은 __ __

    def __init__(self):

        self.myvariable = 3

    def myfunc(self,arg1,arg2):

        return self.myvariable


#클래스 인스턴스 생성

instance = Myclass()

print(instance.myfunc(1,2))

instance2= Myclass()

print(instance.common)

print(instance2.common)

#전체 common 변경됨

Myclass.common = 20

print(instance.common)

print(instance2.common)

#해당 인스턴스의 값만 변경

instance.common = 10

print(instance.common)

print(instance2.common)

#instance의 common은 값 변경이 안됨

Myclass.common=50

print(instance.common)

print(instance2.common)


#다중상속

class AnotherClass(Myclass):

    def __init__(self,arg1):

        self.myvariable=3

        print(arg1)


instance = AnotherClass("hello")

print(instance.myfunc(1,2))

instance.test = 10

print(instance.test)


#예외처리

def my_func():

    try:

        10/0

    except ZeroDivisionError:

        print("Oops, error");

    else:

        pass

    finally:

        print("finish")


my_func()


#random

import random

randomint = random.randint(1,100)

print(randomint)


반응형