오늘은 Python의 기본적인 부분들에 대해서 정리해 보도록 하겠습니다.

참고로 이글은 완전한 프로그래밍 초보분들을 위한 글은 아니구요.

기존에 Java 혹은 Javascript 같은 언어를 약간이라도 다뤄보신분들이 읽으시면 맞을 것 같습니다.

 

 

1. Python

Python은 영국 BBC프로그램의 Monty Python’s Flying Circus에서 따온 이름인데요.

 

2. Data Type

 

Type 종류 주요 함수들
Number int, float, complex
(boolean은 int의 subtype)
 
Boolean True, False  
Text   len("text")
     
Boolean True, False  

 

자세한 것들은 아래에서 하나씩 보도록 하겠습니다.

 

3. 비교연산자

아래 Number에서도 다루겠지만 값을 비교할 때 사용하는 연산자 들입니다.

대부분 알고 계실텐데요.

한가지 봐 둘것은 object를 비교하는데 있어서, 

is 또는 is not을 사용한다는 것 입니다.

 

 

 

4. Number 

4-1. Number와 Operation

Number의 다양한 operation은 공식문서에 아래와 같이 나와있습니다.

 

 

round 모듈을 이용하면, round함수도 사용할 수 있습니다.

 

 

몇가지 연산을 해보면 아래와 같이 해 볼수 있는데요.

결과는 모두 8입니다.

 

 

4-2. Math 모듈

math 모듈을 사용하면,

내림에 해당하는 floor()와

올림에 해당하는 ceil()함수를 사용할 수 있습니다.

아래 코드의 실행결과 둘다 "8"이 출력됩니다.

 

5. Text

5-1. string 출력

 

 

escape기호는 "\" 입니다.

 

결과는 아래와 같이 나오게 됩니다.

 

 

그런데 "\"를 출력해야 할 경우에는 어떻게 해야할까요?

그럴때는 "\\"를 사용해 주시면 됩니다.

"\"를 escape할 때는 "\\"를 사용하는 것 이지요.

 

5-2. fstring

python3의 3.6이상버전에서는 아래와 같이 f-string이라고 하는 것을 사용할 수 있습니다.

f는 formatted를 의미하는데요.

아래와 같이, 문자열에 원하는 값을 그대로 집어넣을때 편하게 사용할 수 있습니다.

kotlin같은 경우는 ${}로 표시하기도 하는데요.

python에서는 f를 string앞에 붙여서 사용하는 군요.

 

 

결과는 아래와 같이 나오게 됩니다.

 

 

f글자 하나로 마법같은 일이 벌어지는 것 이지요.

예전에는 아래와 같이 formatting을 했었는데요.

fstring방식이 훨씬 편합니다.

 

 

5-3. 줄바꿈

"\n"을 이용하면 줄바꿈을 출력할 수 있습니다.

 

 

조금 특이하게 줄바꿈을 할 수 있는 방법이 있는데요.

큰따옴표3개 혹은 작은따옴표3개를 이용해서 아래와 같이 할 수 있습니다.

 

 

줄마다 print를 쓸필요없이 이렇게 쉽게 구현이 가능해 진 것인데요.

결과는 아래와 같이 모든줄에 "\n"을 붙인것과 같은 효과를 얻을수 있습니다.

 

 

5-4. 길이 알아내기

문자열을 사용하면서 필요로 하는 것중 하나가, 문자열의 길이를 알아내는 것 입니다.

len()함수를 사용해주면 되는데요.

 

 

5-5. text입력받기

python에는 사용자에게 입력을 받아서, 그값을 저장해 사용하게 해주는 쉬운 함수가 있습니다.

input()함수인데요. 아래와 같이 사용할 수 있습니다.

 

 

아래와 같은 것을 쉽게 구현할 수 있게 해 줍니다.

 

 

5-6. 변수

Python에서는 var같은 키워드를 사용하지 않습니다.

아래와 같이 변수이름에 대입만해주면 됩니다.

 

 

5-7. Slice

String의 index는 0부터 카운트됩니다.

 

 

위의 코드를 실행하면 "s"가 print되게 됩니다.

slicing은 매우 간단하게 구현할 수 있는데요.

코드와 결과값을 보는 것이 더 빠를 것 같습니다.

 

아래코드는 name스트링에서 1번에서 3번인덱스 전까지만 slice해서 인쇄하는 것 입니다.

괄호([])안에 slicing을 시작할 index와 끝내기 전의 인덱스를 넣어주기만 하면 됩니다.

주의할 것은 1~3번인덱스를 slice하는 것이 아니라, 1~2까지만 자르는 것 입니다.

마지막 인덱스번호는 포함이 않되는 것이지요.

 

 

결과는 아래와 같습니다.

 

 

전화번호에서 국번을 slicing해 볼텐데요.

아래와 같이, ":"앞에 아무것도 넣어주지 않으면 첫번째 인덱스부터 slicing하게 됩니다.

비슷하게, 마지막에 아무것도 넣어주지 않으면 마지막 인덱스까지 slicing해주게 되구요.

 

 

결과는 아래와 같이 나오게 됩니다.

 

 

재미있는 것은 이 인덱싱에 마이너스(-)를 붙일수 있다는 것 인데요.

다만, 주의할 것은 마이너스로 할 경우, 가장 마지막 인덱스는 "-1"이라는 것 입니다.

 

 

결과는 "3213"이 나오게 됩니다.

python에는 특정 문자열의 index를 읽어오는 find()함수가 있으므로 이를 활용하면 더욱 좋겠지요.

게다가 아래와 같이, 한번찾은 인덱스 이후부터 찾도록 "index + 1"값을 두번째 인자로 넣어줄수도 있습니다.

찾는 문자가 없으면 find() 함수는 "-1"을 반환해 줍니다.

 

 

5-8. 문자 관련 함수들

위에서 다룬 함수이외에도 다양한 함수들이 제공되어 집니다.

 

함수 기능
replace() 문자를 원하는 문자로 교체
"song".replace("o", "i")
lower() 소문자로 출력
upper() 대문자로 출력
count() 해당 텍스트가 등장하는 횟수를 카운트

 

6. Boolean

True와 False의 반드는 어떻게 표현할 수 있을까요?

"not"을 이용해서 부정을 표현할 수 있습니다.

 

아래와 같은 방식으로도 사용할 수 있습니다.

 

 

and나 or의 사용도 보고 가겠습니다.

and와 or를 코드상에서 바로 사용할 수 있구요.

다른 언어와 같이,

and 대신 "&"을

or 대신 "|"을 사용할 수도 있습니다.

 

 

위의 결과는 모두 True입니다.

 

7. List Type

7-1. List

list는 아래와 같이 bracket안에 콤마로 구분해서 사용할 수 있습니다.

len()함수를 이용해 list의 아이템개수를 알아낼수도 있습니다.

 

 

7-2. append와 insert 그리고 pop

append()함수나 insert()를 이용하면 아이템을 추가할 수 있는데요.

append()는 가장 마지막 아이템의 뒤에 붙이는 것이구요.

insert()함수는 특정 위치에 집어넣을 수 있습니다.

 

 

위 코드를 실행하면 아래와 같은 결과를 볼 수 있습니다.

 

 

뒤에 있는 아이템들을 꺼낼수 있는 pop()이라는 함수도 있습니다.

 

 

7-3.  정렬

sort()나 reverse()함수를 통해서 정렬을 할 수 있는 함수도 제공해 줍니다.

 

7-4. clear

list의 아이템들을 모두 비우고 싶을때는 clear()함수를 사용해주면 됩니다.

아래의 실행결과는 "0"이 나오겠지요.

 

 

7-5. 그 밖의 유용한 함수들

리스트에 리스트를 합칠 수도 있는데요.

extend()함수가 그것입니다.

"a.extend("b")"와 같이 해주면, a리스트에 b리스트를 뒤에 붙일 수 있습니다.

 

 

 

 

 

 

index()함수를 사용해서 해당 아이템이 몇번째에 존재하는지 알아낼 수도 있습니다.

 

 

 

 

 

 

5-2. 다차원 list

아래와 같이 다차원으로도 배열이 가능합니다.

 

 

 

5-2. min, max 값

 

 

5-3. random값 추출

random값을 추출하기 위해서는 random모듈의 도움을 받아야 하는데요.

아래와 같은 함수들을 사용할 수 있습니다.

 

random값을 float값을 출력하는데요.

1부터 100까지 정수의 random값을 받으려고 한다고 가정해 보겠습니다.

그럼 *100 을 해주고 1을 더해주면 int()함수를 이용해서 int값으로 받으면 1~100의 random값을 얻을 수 있습니다.

randint 함수를 이용하면 지정한 범위내에서의 integer값을 아래코드와 같이 쉽게 얻을 수 있습니다.

choice함수는 list에서 random값을 받거나,

sample함수는 list에서 지정한 갯수만큼만 random하게 순서와 값을 출력해줍니다.

 

 

5-3. statistics 모듈

A. 평균값

 

 

 

6. dictionary

Python에는 dictionary라는 타입이 존재합니다.

list와는 다르게 key, value타입으로 묶어서 저장할 수 있는데요.

 

 

python에서는 dictionary를 선언하는 방법이 매우 다양해서, 아래와 같이 선언할 수 있습니다.

 

 

표를 dictionary타입으로 가져와서 데이터를 가공하는데도 유용하게 사용할 수 있겠지요.

 

 

 

 

6. 입력과 출력(IO)

 

 

 

7. 디버깅

여러 무료 IDE가 있지만, 여기서는 Visual Studio를 기준으로 정리해 보려고 하는데요.

아래와 같이 라인옆에 빨간점의 Break Point를 설정할 수 있습니다.

 

 

그리고 좌측바에서 bug이미지와 플레이 이미지가 섞인위의 아이콘을 클릭하면,

Run and Debug를 실행할 수 있습니다.

그럼 아래와 같이, 변수정보등이 포함된 Debug화면을 볼 수 있습니다.

 

 

집중해서 볼 것은 우측에 floating되어있는 바에 들어 있는 아이콘인데요.

각각의 아이콘은 다음과 같은 기능을 합니다.

 

아이콘 의미 기능
Step Over 가장 많이 사용하는 기능
Break된 지점에서 다음라인의 코드로 이동하게 해 줍니다.
Step Into 다음 실행될 함수안의 첫번째 줄로 들어가게 해 줍니다.
Step Over가 줄단위로 디버깅하도록 도와 준다면,
Step Into는 함수단위로 이동하게 도와줍니다.

Step Into로 함수안에 들어가서, Step Over로 한줄단위로 디버깅할 수 있겠지요.
Step Out 현재 들어와 있는 메소드 밖으로 이동하는 기능을 합니다.
보고자 하지 않던 소스코드안으로 들어와있는 경우등은 이 기능을 이용해 나가면 되겠지요.
Continue 다음 Break Point까지 진행하도록 해주는 아이콘입니다.
다른 IDE에서는 Resume이라고 표현하기도 합니다.
Restart Restart와 Stop은 설명이 필요하지 않는 아이콘이라고 할 수 있겠습니다.
Stop 말그대로 Debug를 Stop합니다.

 

위 아이콘을 잘 활용한다면 복잡한 코드를 디버깅할때 많은 도움을 받을 수 있겠습니다.

 

 

 

8. 기타 Module들

이외에도 아래와 같은 Module들이 있습니다.

  • file I/O,
  • system calls,
  • sockets
  • Tk(Graphic Interfaces)

 

9. pypi

pypi는 python으로 만들어진 패키지들을 검색해서 사용할 수 있도록 도와주는 웹사이트 입니다.

Javascript의 npm같은 것을 사용해보셨다면 쉽게 이해하실 수 있을 것 같네요.

 

주소는 아래와 같구요.

>> https://pypi.org/

 

패키지들은 python의 패키지 관리프로그램인 pip를 이용해서 사용하게 되는데요.

대부분 아래 형식의 명령을 따르게 됩니다.

 

python3 -m pip install <패키지명>

 

유명한 패키지들로는 아래와 같은 것들이 있습니다.

  • pandas
    • 표를 가공해서 사용할 때 유용
  • Numpy
    • 표에 대한 수학적 연산이 필요할 경우 유용

 

 

 

 

 

 

 

 

 

 

8. 참고사이트

Python에 관한자료는 방대해서, 처음 접근하는 사람들을 대상으로 하는 사이트는 너무나 많습니다.

개인적으로는 필요이상으로 많아서, 어떤 것이 좋은 자료인지 판단하기 어려울 정도입니다.

 

 

 

8-1. 공식문서

파이썬 공식문서에 많은 자료들이 있습니다.

Documentation > Docs에 가보시면 자료들을 볼 수 있는데요.

 

 

들어가보면 굉장히 뭐가 많습니다.

대부분 Python3를 사용하실거구요.

이와 관련된 자료는 python3.x Resouces에서 보실 수 있습니다.

 

 

리스트에서 Library Reference 를 가장 많이 필요로 하게되는데요.

먼저 여기서 말하는 Library는 Python3의 Standard Library를 말하는데요.

이곳의 주요주제는 다음과 같습니다.

 

  • Built-in Functions
  • Built-in Constants
  • Built-in Types(Numeric Types[int, float, complex], Sequence Types[list, tuple, range], Text Sequence Type[str] 등등)
  • Built-in Exceptions
  • Text Processing Services(string, re[regular expression operations], readline 등등등)
  • Data Types[datetime, calendar, array, weakref, types, enum 등등]
  • Numeric and Mathematical Modules
  • Functional Programming Modules
  • File and Directory Access
  • File Formats
  • Concurrent Execution
  • Networking and Interprocess Communication
  • ....등등등

 

Langaue Reference는 위의 파이썬의 문법 이나 언어적 특징을 설명해주 곳이라고 할 수 있는데요.

아무래도 내용자체가 처음 접하시는분들에게는 조금 어려울 수 있습니다.

 

처음접하는 분들에게 필요한 것은 역시 Tutorial 인데요.

초심자를 위한 사이트에 들어가서 퀴즈같은 것을 푸는 것 보다는,

여기 Tutorial 을 가볍게 둘러보시면서 테스트 코드도 작성해보시는 것이 좋을 것 같습니다.

안드로이드도 지나고 보니, 이런저런 책이며 사이트보다,

공식사이트 Guide와 StackOverflow정도면 됬었던 것 같네요.

아 물론, 안드로이드의 공식 Guide만큼 보기좋게 되어있지는 않습니다.

 

 

 

 

12. Tips and Tricks

12-1.  "\" 역슬래쉬

Shell에서 Python을 테스트할 때 알고있어야 할 기호인데요.

Shell에서 테스트를 해볼 때 꼭 알고있어야 할 기호라고 할 수 있겠습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8-1. 공식사이트의 Beginner Guide

>> https://wiki.python.org/moin/BeginnersGuide

 

 

 

 

 

 

 

 

 

728x90

'Python' 카테고리의 다른 글

Python 을 배워보자 part1. Number String List 디버깅  (0) 2021.12.02

+ Recent posts