ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파이썬 입문 2
    CSE/Python 2015. 12. 11. 14:32

    1. 파이썬 입문

     1-1. 변수와 산술식

      아래 코드를 먼저 살펴보도록 하겠습니다.

     


    1
    2
    3
    4
    5
    6
    7
    8
    9
    principal = 1000 # 초기 금액
    rate = 0.05      # 이자율
    numyears = 5     # 복리 년
    year = 1
     
    while year <= numyears:
        principal = principal * (1 + rate)
        print year, principal
        year += 1
    cs




      위와 같이 작성한 후, 프로그램을 실행시키면 아무 무리없이 잘 돌아 갑니다.(아래는 python 내장 IDLE를 통해 실행시킨 화면입니다)



     






      여기서 파이썬만의 특징을 볼 수 있습니다. 바로 동적 타입 언어라는 점입니다.


      즉, 실행 도중 어떤 타입의 데이터라도 가리킬 수 있다는 점이 특징입니다.


      변수 이름이 타입이나 크기, 값이 저장될 메모리 위치와 연결되는 C 언어 류와 다른 점 입니다.


      다음으로 집고 넘어 갈 점은 파이썬은 들여쓰기(indentation) 문법입니다.


      while 문은 흔히 반복(loop)문을 뜻합니다. 6번 라인에 while 이라는 키워드가 나오고 7~9라인은 각각 들여쓰여 있습니다.


      들여쓰인 7~9번 라인은 while문 안에 포함되는 구문이게 됩니다.






      위 출력된 결과는 소수점이 방대하게 늘어날 가능성이 있습니다. 이러한 경우에 포맷 연산자를 이용해서 출력하여 좀 더 깔끔하게 만들 수 있습니다.


      

    1
    print "%3d %0.2f" % (year, principal)
    cs



      8번 라인 대신 위 라인으로 고쳐서 쓰면 출력이 아래처럼 나오게 됩니다.









     


      위 코드에서 %3d는 폭이 3인 열에서 오른쪽으로 정렬된 정수를 의미하고, %0.2f는 소수점 아래로 두 자리 숫자를 표시하는 부동 소수점 수를 의미합니다.


      포맷 문자열에 대해서는 나중에 제대로 언급하고 넘어가겠습니다.


      위 코드를 format() 함수를 이용하여 똑같이 출력할 수 있습니다.


    1
    2
    print format(year,"3d"), format (principal, "0.2f")
     
    cs




      또한 중괄호{}를 이용하여 format()을 사용가능 합니다.



    1
    print "{0:3d} {1:0.3f}"format(year, pricipal)
    cs









     1-2. 조건문 & 파일 입출력

      파이썬에서 조건문은 C나 JAVA와 매우 유사합니다.



    1
    2
    3
    4
    if a < b:
        print "True"
    else:
        print "False"
    cs




      보시는 바와 같이 if와 else로 구성할 수 있고, 각각에 들여쓰기만 해주시면 됩니다. else절은 당연히 생략 가능합니다.


      파이썬에서는 불리언 표현식을 or과 and, not으로 표현 가능합니다.


     


    1
    2
    if prototype == "A" and subtype == "CX" and not (cost < 500 or cost > 1000):
        print "Excellent"
    cs

      



      또한 파이썬에는 switch case 구문이 없습니다. 아래와 같이 elif문을 사용하셔야 합니다.



    1
    2
    3
    4
    5
    6
    7
    8
    if suffix == ".html":
        content = "text/html"
    elif suffix == ".jpg":
        content = "image/jpeg"
    elif suffix == ".png":
        content = "image/png"
    else:
        raise RuntimeError("Unknown content type")
    cs




      다음으로 진리값은 불리언 값인 TrueFalse로 표현합니다.


    1
    2
    3
    4
    if 'span' in s:
        has_spam = True
    else:
         has_spam = False
    cs




      위 예에서 사용된 in 연산자주어진 값이 문자열, 리스트 혹은 사전 같은 객체에 들어있는지를 검사하는 데 주로 사용합니다.







      다음으로 파일 입출력에 대해 알아보도록 하겠습니다.


      아래 코드를 작성하세요.



    1
    2
    3
    4
    5
    6
    7
    file = open("zero.txt")         # 파일 객체 반환
    line = file.readline()          
    while line:
        print line,                 # ','는 줄바꿈 문자를 생략 
        line = file.readline()
    file.close()
     
    cs




      zero.txt는 임의로 만든 txt 파일입니다. 여러분이 임의로 작성하세요. 실행 결과는 아래와 같습니다.








      위 코드에서 open() 함수파일 객체를 반환합니다. 반환된 파일 객체로 부터 readline() 메서드를 통해 입력으로부터 끝의 줄바꿈 문자를 포함한 한 줄을 읽습니다.




      다음은 파일 출력에 대해 알아보도록 합시다.


      

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    principal = 1000 # 초기 금액
    rate = 0.05      # 이자율
    numyears = 5     # 복리 년
    year = 1
     
    file = open("out""w"# 쓰기용 파일 open
     
    while year <= numyears:
        principal = principal * (1 + rate)
        print >> file"%3d %0.2f" % (year, principal)
        year += 1
     
    file.close()
     
    cs





      실행 결과를 notepad++ 로 열어보면 아래와 같습니다.







      파이썬 2에서는 출력을 파일에 쓰기위해 >> 를 사용하여 print문에 출력할 파일을 지정하여 사용합니다.

    댓글

Designed by Tistory.