목차보기

시작하기1_HelloWorld

파일을 만들고, 'hello.py'로 저장하십시오. 다음 내용을 입력하십시오.

1_HelloWorld > 1_HelloWorld.py
hello.py
print("Hello World")

'실행하기'(run code, F5)를 통해서 코드를 실행합니다. Terminal에(ctrl + `(backtick, Tilt(~)랑 같이 있는 키))에서 수행 결과를 확인 할 수 있습니다.

check : print("...")을 통해서 출력 할 수 있습니다.

주석

주석은 프로그램이 실행되지 않는, 설명을 작성하는 부분입니다.

1_HelloWorld > 02_Comment.py
      print("실행코드") # 이 부분은 주석입니다.


    

셔뱅

유닉스 계열 운영체제에서 첫 줄에 실행되는 스크립트를 삽입할 수 있습니다.

1_HelloWorld > 03_Shebang.py
      #!/usr/bin/env python3
print("Shebang(#!)은 첫 줄에 들어갑니다.")        
      
    

코덱

코덱이란, 글자 코드를 표현하는 방식입니다. 코드란 숫자입니다. 모든 글자는 하나의 숫자(코드)와 1:1 대응되어 있습니다(예: ascii, unicode).

ascii는 영문과 일부 특수기호, 총 128가지 기호를 표현할 수 있고, unicode는 65,536개의 문자를 표현할 수 있습니다. 현재 65,536의 문자에 세계 각국의 문자와 기호를 담고있습니다. 초기의 컴퓨터는 메모리가 충분하지 않았기 때문에, 한글, 일본어, 중국어 등등 특정 나라의 코드들만 취합하여 code-set을 만들어 대응했습니다(EUC-KR, EUC-JP, GB 2312..). 현재는 모든 나라의 문자를 한 번에 표현할 수 있는 UTF-8의 인코딩이 주로 사용됩니다. (자세한 내용은 여기를 참고하십시오.)

py파일의 코덱을 지정하려면 "-*-" 기호를 다음과 같이 사용합니다.

1_HelloWorld > 04_Codec.py
      # -*- coding: EUC-KR -*-
print("This file is encorded by EUC-KR. EUC-KR로 인코딩 된 파일입니다.")
      
    

초기값

프로그램을 실행하기 앞서 입력을 할 수 있습니다. 2가지 방법이 있습니다.

  1. 직접 입력하는 방법

    ※ terminal창에서 방향키 ↑를 누르면 이전에 실행한 명령을 불러옵니다. 뒤이어 작성 할 수 있습니다.

    1_HelloWorld > 05_Arguments.py
             C:\> python.exe arguments.py arg1 arg2
    
    
          
  2. 자동 입력하는 방법

    만약 인자의 입력을 반복 실행(테스트)해야 한다면, 자동으로 실행되도록 할 수 있습니다. vscode에서 ">Debug: Add Configuration..."명령을 통해 "launch.json"파일을 추가하십시오. 디버깅 모드(ctrl+f5)로 수행하여야 합니다.
    다음은 "launch.json"에 추가될 내용의 예시입니다.

              {
      // Use IntelliSense to learn about possible attributes.
      // Hover to view descriptions of existing attributes.
      // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
      "version": "0.2.0",
      "configurations": [
        {
          "name": "Python Debugger: Current File",
          "type": "debugpy",
          "request": "launch",
          "program": "${file}",
          "console": "integratedTerminal",
          "args": [
            "arg1",
            "arg2"
          ]
        }
      ]
    }
              
            

변수2_variable

숫자

"=" 기호를 이용해서 숫자를 저장 할 수 있습니다. 변수란 숫자가 저장되는 공간을 말합니다. 변수란 무엇을 저장하든 저장하는 값에 따라 그 내용이 변하는 수라는 의미입니다. 아래 예제에서 변수란 "var", 상수(항상 같은 수)란 "1", "2", "4"와 같은 수 입니다.

변수의 이름에는 작명 규칙이 존재합니다. (참고 : 파이썬-스타일가이드-이름 규칙(링크))

2_Variable > 01_Number.py
      var = 1  # var에 1을 단순 저장
var = 2 + 2  # var에 2 + 2의 연산된 결과, 즉 4를 저장
      
    

숫자를 표현하는 방법

우리가 코드에 작성하는 것은 주로 10진수지만, 실제로 컴퓨터에 저장되는 것은 2진수 입니다. (자세한 내용은 칼럼-2진법 이해하기를 참조하십시오.)

2_Variable > 01-1_Number representation.py
      exp = 2.5e4  # (멱)지수, 25000

hex = 0xF  # 16진수, 0b1111 = 16
binary = 0b1110  # 2진수, 15

complex_num1 = 3 + 4j # 복소수(complex number)

가독성을 올리는 방법

숫자 사이의 _는 무시합니다.

2_Variable > 01-2_Readability.py
      i = 3_000_000 # 3자리 마다 끊어서 사용
    i = 4_0000_0000 # 4자리 마다 끊어서 사용
    
    

연산자

연산자
분류 연산자 설명 예시 결과
산술 연산자 + 덧셈 3 + 2 5
- 뺄셈 3 - 2 1
* 곱셈 3 * 2 6
/ 나눗셈(결과는 실수) 3 / 2 1.5
// 7 // 2 3
% 나머지 7 % 2 1
** 거듭제곱 3 ** 2 9
비교 연산자 == 값이 같은지 확인 3 == 3 True
!= 값이 다른지 확인 3 != 2 True
> 크기 비교 (왼쪽 > 오른쪽) 5 > 3 True
< 크기 비교 (왼쪽 < 오른쪽) 3 < 5 True
>= 크거나 같은지 확인 3 >= 3 True
<= 작거나 같은지 확인 3 <= 5 True
논리 연산자 and 모두 참인지 확인 True and False False
or 하나라도 참인지 확인 True or False True
not 논리 값 반전 not True False
할당 연산자 = 값 할당 x = 5 x에 5 저장
+= 덧셈 후 할당 x += 3 x = x + 3
-= 뺄셈 후 할당 x -= 3 x = x - 3
*= 곱셈 후 할당 x *= 3 x = x * 3
/= 나눗셈 후 할당 x /= 3 x = x / 3
//= 몫 연산 후 할당 x //= 3 x = x // 3
%= 나머지 연산 후 할당 x %= 3 x = x % 3
**= 거듭제곱 후 할당 x **= 3 x = x ** 3
비트 연산자 & 비트 AND 0011 & 0101 0001
| 비트 OR 0011 | 0101 0111
^ 비트 XOR 0011 ^ 0101 0110
~ 비트 NOT 0011 1100
<< 왼쪽 시프트 0110 << 1 1100
>> 오른쪽 시프트 0110 >> 1 0011
멤버 연산자 in 특정 값이 시퀀스에 있는지 확인 'a' in 'apple' True
not in 특정 값이 시퀀스에 없는지 확인 'x' not in 'apple' True
식별 연산자 is 동일한 객체를 참조하는지 확인 x is y True/False
is not 동일한 객체가 아닌지 확인 x is not y True/False
기타 연산자 () 괄호를 사용한 우선순위 지정 (2 + 3) * 2 10
[] 리스트, 튜플 등 요소 접근 a[0] 첫 번째 요소
: 슬라이싱 a[1:3] 부분 리스트
. 속성 접근 obj.attr 속성 값
진리표(truth table)
조건 모두 참이어야 하나라도 참이라면 참이 홀수라면
A B AND OR XOR
false (0) false (0) false (0) false (0) false (0)
false (0) true (1) false (0) true (1) true (1)
true (1) false (0) false (0) true (1) true (1)
true (1) true (1) true (1) true (1) false (0)
진리표(truth table) 3단
조건 모두 참이어야 하나라도 참이라면 참이 홀수라면
A B C AND OR XOR
false (0) false (0) false (0) false (0) false (0) false (0)
false (0) false (0) true (1) false (0) true (1) true (1)
false (0) true (1) false (0) false (0) true (1) true (1)
false (0) true (1) true (1) false (0) true (1) false (0)
true (1) false (0) false (0) false (0) true (1) true (1)
true (1) false (0) true (1) false (0) true (1) false (0)
true (1) true (1) false (0) false (0) true (1) false (0)
true (1) true (1) true (1) true (1) true (1) true (1)
2_Variable > 02_Calculation.py 2_Variable > 02-1_Operations.py 2_Variable > 02-2_Assignment.py
ans = 1 + 1 # 산술 연산자
ans = 2 > 1 # 비교 연산자
ans = true and false # 논리 연산자
ans += 10 # 할당 연산자
ans = 5 & 3 # 비트 연산자
ans = 'a' in 'apple' # 멤버 연산자
ans = x is y # 식별 연산자
ans = (2 + 3) * 2 # 우선순위 연산자(기타)

문자열

"(큰 따옴표) 또는 '(작은 따옴표)로 작성된 단어, 문장은 문자열(string)로써 하나의 변수로 취급됩니다.

2_Variable > 03_String.py
text1 = "안녕하세요"
text2 = '반갑습니다. 잘 부탁드립니다.'
text3 = """여러줄 문장 예제:
하나. 행복한
둘. 파이썬"""
    

특수문자

특수문자를 입력할 땐, "\"(escape, 이스케이프)문자를 활용합니다. "\"를 활용한 특수문자를 escape sequence(이스케이프 시퀀스)라고 합니다.

2_Variable > 03-1_Escape.py
escape sequence, 특수문자
표시 설명 예시 결과
\n 줄바꿈 (새 줄) print("Hello\nWorld") Hello
World
\t print("Hello\tWorld") Hello World
\\ 역슬래시 출력 print("C:\\path\\to\\file") C:\path\to\file
\' 작은 따옴표 출력 print('It\'s Python') It's Python
\" 큰 따옴표 출력 print("She said, \"Hi\".") She said, "Hi".
\r 캐리지 리턴 (줄의 처음으로 이동) print("Hello\rWorld") World
\b 백스페이스 (한 문자 삭제) print("Helloo\b") Hello
\f 폼 피드 (새로운 페이지 시작) print("Hello\fWorld") Hello
World
\v 수직 탭 print("Hello\vWorld") Hello
World

슬라이싱

문자열은 문자들의 집합이므로 n번째 문자를 특정할 수 있습니다.

+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1
2_Variable > 03-2_Sub string.py
string1[0] # P
string1[-2] # o
string1[1:3] # yt
string1[:4] # Pyth
string1[-2:] # on
    

길이(length)

len()함수는 글자 길이를 구합니다. 문자가 가지는 실제 byte와 관계없이 하나의 문자는 1의 길이를 갖습니다.

2_Variable > 03-3_Length.py
string1 = "Python"
string2 = "파이썬"

len(string1)  # 6
len(string2)  # 3

여러줄 문장

2_Variable > 03-4_Multi lines.py
string = """여러줄을 출력하고 싶어요
그러면 따옴표를 세번 입력하시고
여러줄을 작성하시면 됩니다.
참, 쉽죠?"""

기타 유용한 함수들

유용한 문자열 함수
함수이름 설명
lower() 소문자로 변환
upper() 대문자로 변환
isupper() 대문자인가요?
replace("이거를", "이걸로") 이거를 이걸로 바꿔주세요
index("이것") 이것의 순번은?
count("이것") 이것이 등장하는 횟수는?
find("이것") 이것이 있다면, 몇 번째에?
2_Variable > 03-5_StringCtrl.py
python = "Python is Amazing"
python.lower() # python is amazing
python.upper() # PYTHON IS AMAZING

python[0].isupper() # True
len(python) # 17

python.replace("Python", "Java") # Java is Amazing

python.index("n") # 5 번째
python.count("n") # 2 번 등장

출력 테크닉3_print

고정된 문자열 외에, 변수와 결합한 문자열을 출력하는 방법은 다음과 같습니다.

3_Print > 01_Print.py
print("나는 %d살 입니다." % 20) # 나는 20살 입니다.

print("나는 {}살 이고, {}를 좋아합니다.".format(25, "복숭아")) #나는 25살 이고, 복숭아를 좋아합니다.

age = 40
like = "수박"
print(f"나는 {age}살 이고, {like}를 좋아합니다.") # 나는 40살 이고, 수박를 좋아합니다.
Formatted String Literals
기호 의미 설명
숫자 (최소) 확보할 자릿수
> 정렬 방향(우) 기본 정렬: 좌
+ 기호 표시 음수는 항상 표시
, 1,000단위 구분
.숫자 소숫점 이하 표기 반올림
:문자 빈칸 채움문자 기본: ' '(사이띄기, 공란)
#.#f 소숫점 표시 기본 6자리
3_Print > 02_Formatted String Literals.py
print("{: >10}".format(500))   #        500
print("{: >+10}".format(500))  #       +500, +: 기호표시
print("{:*>+10.3f}".format(5 / 7)) # ****+0.714
# 10자리 확보하고 소수점 3자리까지 출력하는데, 기호 표시하고, 빈칸은 *로 채움

줄 바꿈 안 하기

print()함수의 end attribute(속성)을 이용합니다.

3_Print > 03_No newLine.py
print("안녕하세요.", end="")
print("반가워!", end="~~~")

str() vs. repr()

3_Print > 04_str_repr.py
str("hello") # hello
repr("hello") # 'hello'
이전 | 입력과 출력 | 다음