포스트

정보처리기사 - Python 변수, 자료형 (1)

정보처리실기 프로그래밍 문제가 난이도가 점점 오르고 있는 관계로 여러가지 파이썬 문법에 대해서 알아봅시다.

자료형

python은 C언어와 Java언어와는 다르게 변수생성시 자료형을 표기하지 않는 동적 타입 언어입니다. 정적 타입 언어인 언어에 익숙해져 있으신 분들은 python으로 개발할 때 가장 익숙하지 않는 부분이기도 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    # 변수 생성시 변수이름 = 값 형태로 만들어 주면 된다.

    x = 10 # 정수
    f = 3.14 # 실수 
    s = "Hello World" # 문자열
    b = True # 논리

    # 출력은 print() 함수를 이용한다.

    print(x)
    print(f)
    print(s)
    print(b)  
    # 10
    # 3.14
    # Hello World
    # True

주의 파이썬에서 bool 자료형은 첫문자가 대문자이다 True, False 이것 때문에 시험에서 틀리는경우가 간혹 있었다.

변수명 규칙

  1. 영문자, 한글, 숫자, 언더바(_)를 사용 할 수 있다.

    영문자는 대문자와 소문자를 다르게 인식함.

  2. 숫자로 변수명을 시작 할 수 없다.

  3. 키워드 사용이 불가능하다. 아래 이미지가 키워드들

    키워드 : 프로그래밍 언어의 구문과 구조를 정의하는 예약어

파이썬만의 신기한 부분 두 변수의 값을 스위칭할때 제 3의 변수가 필요하지않다.

1
2
3
4
5
6
7
a, b = 1, 2
print(a, b)
# 1, 2

a, b = b, a
print(a, b)
# 2, 1

문자열

파이썬에서는 문자열변수를 생성할 때 ‘, “ 둘다 사용할 수 있다.

작은따옴표나 큰따옴표를 문자로 포함시키고 싶을 때는 서로 반대되는 경우로 감싸면 된다.
또한 이스케이프 코드 \를 이용해서 넣을 수도 있다.

1
2
3
4
5
6
7
8
9
10
s1 = "she's gone"
s2 = "she\'s gone"
s3 = 'she"s gone'

print(s1)
print(s2)
print(s3)
#she's gone
#she's gone
#she"s gone

개행이 들어간 문자열을 변수에 대입하고 싶을 때는 3개로된 작은따옴표나 큰따옴표로 감싸주면 된다.
또한 이스케이프코드 중 개행을 뜻하는 \n 을 넣어줘도 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
s1 = """여러줄로 구성된 문자열
한번에 변수에 
대입하고 싶을 때"""

print(s1)
#여러줄로 구성된 문자열
#한번에 변수에 
#대입하고 싶을 때

s2 = """여러줄로 구성된 문자열\n한번에 변수에\n 대입하고 싶을 때"""

print(s2)
#여러줄로 구성된 문자열
#한번에 변수에
#대입하고 싶을 때

이스케이프 코드

위에서 언급된 이스케이프 코드에 대해 알아보자

이스케이프 코드란 프로그래밍을 할 때 사용할 수 있도록 미리 정의해둔 문자 조합을 뜻한다

종류가 매우 많지만 \n \t \\ \' \" 만 봐도 무방하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
    # \n (Newline)
    print("1. Newline (\\n):")
    print("Hello\nWorld")
    print()

    #  1. Newline (\n):
    #  Hello
    #  World

    # \t (Tab)
    print("2. Tab (\\t):")
    print("Hello\tWorld")
    print()

    #  2. Tab (\t):
    #  Hello	World

    # \\ (Backslash)
    print("3. Backslash (\\\\):")
    print("This is a backslash: \\")
    print()

    #  3. Backslash (\\):
    #  This is a backslash: \
    

    # \' (Single Quote)
    print("4. Single Quote (\\\'):")
    print('It\'s a single quote')
    print()

    #  4. Single Quote (\'):
    #  It's a single quote

    # \" (Double Quote)
    print('5. Double Quote (\\"):')
    print("She said, \"Hello!\"")
    print()

    #  5. Double Quote (\"):
    #  She said, "Hello!"

    # \r (Carriage Return)
    print("6. Carriage Return (\\r):")
    print("Hello\rWorld")
    print()

    #  6. Carriage Return (\r):
    #  Hello
    #  World

    # \b (Backspace)
    print("7. Backspace (\\b):")
    print("Hello\bWorld")
    print()

    #  7. Backspace (\b):
    #  HelloWorld

    # \f (Form Feed)
    print("8. Form Feed (\\f):")
    print("Hello\fWorld")
    print()

    #  8. Form Feed (\f):
    #  HelloWorld

    # \a (Bell)
    print("9. Bell (\\a):")
    print("Hello\aWorld")
    print("Note: You may hear a bell sound if your terminal supports it.")
    print()

    #  9. Bell (\a):
    #  HelloWorld
    #  Note: You may hear a bell sound if your terminal supports it.

    # \v (Vertical Tab)
    print("10. Vertical Tab (\\v):")
    print("Hello\vWorld")
    print()

    #  10. Vertical Tab (\v):
    #  HelloWorld

    # \0 (Null Character)
    print("11. Null Character (\\0):")
    print("Hello\0World")
    print()

  #  11. Null Character (\0):
  #  HelloWorld

인덱싱(indexing)과 슬라이싱(slicing)

인덱싱 : 무엇인가를 ‘가리킨다’의 의미

슬라이싱 : 무엇인가를 ‘잘라낸다’는 의미

주로 순서가 있는 자료형에 쓰이는 기능이다.
문자열을 순서가 있는 자료형이기 때문에 문자열 변수를 이용해서 학습해보자.

위 그림은 해당 s변수에 대한 인덱스번호를 매칭시켰다. 양수의 경우와 음수의 차이에 주의하자.

인덱싱 예시

1
2
3
4
5
6
7
8
9
10
s = "파이썬은 재밌다. !!!"  
print(s[2])
print(s[4])
print(s[-5])
print(s[-6])

#썬
#    (공백)
#.
#다

슬라이싱 예시

슬라이싱은 :을 기준으로 왼쪽은 시작인덱스, 오른쪽은 끝 인덱스번호를 넣어준다. 이때 끝 인덱스번호는 포함하지 않는다.

1
2
3
4
5
6
7
8
9
10
11
12
s = "파이썬은 재밌다. !!!"  
print(s[:])   # 시작인덱스가 없을때는 가장첫인덱스 0부터 끝 인덱스가 없을때는 가장끝인덱스까지 출력
print(s[2:])  # 시작인덱스는 2부터 끝 인덱스가 없으므로 변수의 가장끝까지 출력된다.
print(s[5:8]) # 5부터 시작 8은 포함하지않으므로 7까지 출력된다.
print(s[-3:]) # -3부터 시작하고 끝까지 출력
print(s[-3:-1]) # -3부터 -2까지 끝 인덱스는 항상 포함하지 않는다는걸 잊지말자.

#파이썬은 재밌다. !!!
#썬은 재밌다. !!!
#재밌다
#!!!
#!!

다양한 문자출력 방법

% 기호 이용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# %d 정수
# %f 실수
# %s 문자열
# %c 문자
# %% 퍼센트 문자를 넣을때

day = 8
s = "2024년 %d월 7일"%day
print(s)
# 2024년 8월 7일

# 두 개 이상의 변수를 넣고 싶을때는 소괄호로 감싸야한다.
s1 = "2024년 %d월 %d일"% (day,day)
print(s1)
# 2024년 8월 8일

# %f는 소수점 6자리까지 표현된다.
price = 19.86
s2 = "The price is %f" % price
print(s2)
# The price is 19.860000

# %.2f .숫자 를 통해 소수점 자리를 정해줄수있다. 이때 숫자+1 위치에서 반올림한다. .1이라면 두번째 자리에서 반올림
s3 = "The price is %.1f" % price
print(s3)
# The price is 19.9


fruit = "apple"
s4 = "I have an %s." % fruit
print(s4)
# I have an apple.

# %c는 문자에 사용하지만 숫자 즉 아스키코드를 문자로 변경하여 출력할 수 있다.
number = 65
s5 = "The character for ASCII code %d is %c." % (number, number)
# The caaracter for ASCII code 65 is A

# %기호를 문자로 사용하고 싶을때는 두개를 적으면된다.
percent = 85
formatted_string = "You scored %d%% on your test." % percent
# You scored 85% on your test

format 이용하기

변수를 넣고싶은자리에 중괄호{}를 기입해주고 문자열이 끝나는 바로 뒤에 .format() 을 입력하고 소괄호안에 변수를 넣어준다.
중괄호가 여러개인 경우 소괄호안에 , 를 기준으로 넣어주면 된다.

1
2
3
4
5
6
7
8
9
day = 8
s = "2024년 {}월 7일".format(day)
print(s)
# 2024년 8월 7일

# 두 개 이상의 변수를 넣고 싶을때는 소괄호로 감싸야한다.
s1 = "2024년 {}월 {}일".format(day, day)
print(s1)
# 2024년 8월 8일

f{} 이용하기

위 format 방식과 유사하지만 .format()을 쓰지않고 문자시작 " 전에 f를 입력하고 중괄호 안에 변수를 넣는 방식이다.

1
2
3
4
5
6
7
8
9
day = 8
s = f"2024년 {day}월 7일"
print(s)
# 2024년 8월 7일

# 두 개 이상의 변수를 넣고 싶을때는 소괄호로 감싸야한다.
s1 = f"2024년 {day}{day}"
print(s1)
# 2024년 8월 8일

여기까지 변수와 여러 자료형에 대해 알아봤고, 마지막에는 다양한 print() 형태에 대해서 알아봤다.

정보처리기사 프로그래밍이 점점 어려워지고 있는만큼 기본기가 중요해졌다. 본인에게 익숙한 방식만 고집하여 프로그래밍하기 보다는

똑같은 결과임에도 다양한 방식으로 나타낼 수 있기에 여러 방식들에 대해서 잘 알아두자!

이후에도 시험에 나올만한 파이썬 지식에 대해서 포스팅하겠다!

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.