본문 바로가기

은행실무기초

[DT/UNIV] Python 오프라인 교육

1) 기본 자료형

- 문자열 : 큰 따옴표, 작은 따옴표 모두 가능

 

2) 리스트 

[] # 빈 리스트 / ['a','b'] / ['a', 2] # 다른 자료형을 담을 수 있음 

 

3) 주석 

# / """ """ 

 

 

#숫자 50과 숫자 50을 더해서 출력해봅시다!
print(50+50)

#문자열 "50"과 문자열 "50"을 더해서 출력해봅시다!
print('50' + '50')

#리스트 [50]과 리스트 [50]을 더해서 출력해봅시다!
print([50] + [50])

 

(결과)

100 5050 [50, 50]

코드 실행이 완료되었습니다.

 

 

4) 변수

숫자,알파벳,한글,언더바(_)등을사용할있다.

 

1.변수이름이숫자로시작하면안된다

2.숫자로만구성변수이름금지

3.파이썬문법에서사용되는예약어(이미사용되는단어:for, while, if...)사용금지

4.공백문자()연산자(+,-,%)사용금지

num= 10 # 숫자

name= “Michael” # 문자열

grade= [‘A+’, ‘B+’, ‘A0’] # 리스트

 

 

# 변수에는 정수, 실수같은 숫자를 저장할 수 있고,
num1 = 1
num2 = 2 
# 영어나 한글같은 문자도 저장할 수 있어요.
character = 'a'

# 이런 문자들의 집합도 저장할 수 있고,
string = 'Python'

# 자료들을 여러 개 담을 수 있는 리스트 또한 저장할 수 있어요.
threeList = [1, 'a', 'Python']

# 여러분의 변수를 만들어 봅시다. my_var라는 이름의 변수를 만들고, 원하는 값을 넣어보세요!
my_var = 10

# 변수는 print()에 넣을 수도 있어요! my_var를 print로 출력해서 값이 잘 들어갔는지 확인해봅시다!
my_var = 20 
print(my_var)

# 변수끼리는 연산 또한 가능합니다. 예를들어, 위에 있는 num1, num2을 더하면?!
num1 = 20
num2 = 30
print(num1+num2)

 

 

5) 자료형의 연산 ( +,-,*,/ )

print(3+5) #8

print(3-5) #-2

print(3*5) #15

print(3/5) #0.6

 

#'Num1'이라는 변수를 하나 선언하고, 숫자 23571를 넣어줍시다.
Num1 = 23571

#'Num2'이라는 변수를 하나 선언하고, 이전 값에 1024를 곱한 값을 넣어줍시다.
Num2 = Num1 * 1024

#'Num3'이라는 변수를 하나 선언하고, 이전 값에 243을 나눈 값을 넣어줍시다.
Num3 = Num2 / 243

#'Num4'이라는 변수를 하나 선언하고, 이전 값에 4927819을 더한 값을 넣어줍시다.
Num4 = Num3 + 4927819

#'Answer'이라는 변수를 하나 선언하고, 이전 값에 829176을 뺀 값을 넣어줍시다.
Answer = Num4 - 829176

#지효에게 외쳐봅시다. '네가 생각한 답은 Answer원이야!'
print("네가 생각한 답은", Answer, "원이야!")

 

 

 

6) 자료형의 특수 연산

연산자 // 

나머지 연산자 % 

제곱연산자 **

 

print(13//5) #2

print(13%5) #3

print(2**4) #16

 

# //을 이용해서 변수 intdiv에 4를 넣는 수식을 작성해봅시다.
intdiv = 21 // 5 

# %을 이용해서 변수 modular에 1을 넣는 수식을 작성해봅시다.
modular = 9 % 4

# **을 이용해서 변수 expo에 16을 넣는 수식을 작성해봅시다.
expo = 2 ** 4

#위의 세 변수를 출력해서 확인해봅시다.
print(intdiv, modular, expo)

 

 

7) 문자형 자료의 연산

이어붙이기 +

반복하기 *

print(안녕+하세요) #안녕하세요

print(안녕* 3) #안녕안녕안녕

 

# 변수 connect_str를 선언하고, 연결 연산자를 이용해서 '덩덕쿵덕'를 넣어봅시다.
connect_str = "덩덕" + "쿵덕"

# 변수 iterate_str를 선언하고 반복 연산자를 이용해서 '쿵덕쿵덕'을 넣어봅시다.
iterate_str = "쿵덕" * 2

# 위 두 변수를 이용해서 '덩덕쿵덕쿵덕쿵덕덩덕쿵덕쿵덕쿵덕'을 변수 jajinmori에 넣어봅시다
jajinmori = (connect_str + iterate_str) * 2
print(jajinmori)

 

 

8) 인덱스

“R e a d y”01 2 3 4[2, 4, 6, 8]01 2 3

# alpha에서인덱스1원소‘e’출력

alpha = “Ready”print(alpha[1])

 

# beta에서 2번째원소이상,5번째원소미만을가져온다.

beta = [2, 4, 6, 8, 10, 12, 14]

print(beta[2:5])

리스트를 슬라이싱하기 위해서는 [a(시작인덱스):b(종료인덱스)]로 범위를 지정합니다. 이 때, 종료 인덱스는 '미만’으로 읽어 가져오지 않아요!

 

#dahyun가 가지고 있는 보석 중에 특별히 빛나는 보석이 있어요! 이를 훔쳐볼까요?
dahyun = ['은', '은', '다이아몬드', '은', '은', '은', '은', '은']

#이 가방에 한번 넣어봅시다!
stealBag1 = dahyun[2]

#tzuyu는 금빛 보석을 많이 가지고 있네요! 이도 한번 훔쳐볼까요?
tzuyu = ['은', '은', '은', '은', '금', '금', '금', '은', '은', '은']

#이 가방에 한번 넣어봅시다!
stealBag2 = tzuyu[4:7]

#여러분이 훔쳐온 보석은 무엇인지 print()를 이용해서 한번 확인해보세요!
print('dahyun로부터 훔쳐온 보석은', stealBag1)
print('tzuyu로부터 훔쳐온 보석은', stealBag2)

 

#친구에게 어제 봤던 별자리를 print()를 이용해서 보여줍시다!
print("*")
print("*" * 2)
print("*" * 3)
print("*" * 4)
print("*" * 5)

 

 

#섭씨온도를 담을 변수 c를 선언하고, 숫자 18을 담아봅시다.
c = 18

#화씨온도를 담을 변수 f를 선언하고, c와 섭씨-화씨 변환식을 이용해서 값을 담아봅시다.
f = c * (9/5) + 32

#변수 today_temp를 선언하고, 섭씨온도 c와 화씨온도 f를 순서대로 담은 리스트를 담아봅시다.
today_temp = [c,f]

#맞게 변환했는지 today_temp를 print()로 확인해봅시다.
print(today_temp)

 

 

9) 형변환

#변수 money에 input을 이용해서 입력을 받아봅시다.
money = input()


# money를 int형으로 변환해서, 다시 money에 넣어줍시다.
money = int(money)

# money를 2배 불려서 print로 출력해봅시다.
print(money * 2)

 

10) 비교 연산자 (=논리자료형)

(True) 혹은 거짓(False)나타내는 자료형을 논리자료형이라고 합니다.

 

11) 논리 연산자 

print(not 3==4) #False

Not붙였으므로,True!>>>True

 

12) if ( 두 칸 띄어쓰기 )

if string[0] == “a”:

  count = count +

  print(string)

 

 

x = input()

if x in [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]:

  print(“모음입니다.”)

else:

  print(“자음입니다.”)

 

# input()을 이용해서 숫자(정수) 입력을 받고, 변수 num에 이를 넣어봅시다.
a = input()
num = int(a)

# if-else문을 이용해서 만약 입력받은 수가 홀수면 "(입력받은 수) 홀수입니다."
# 짝수면 "(입력받은 수) 짝수입니다."를 출력해봅시다.
# 괄호는 출력하지 않습니다.

if (num%2) == 0:
  print("(입력받은 수) 짝수입니다.")
else:
  print("(입력받은 수) 홀수입니다.")

 

13) list - append(), remove(), insert(), sort() - asc, sort(reverse=1) - desc

a = []  b = [‘a’, ‘b’, ‘c’]

a.append(10)

b.append(‘d’)

print(a, b) # [10] [‘a’, ‘b’, ‘c’, ‘d’]

 

 

c = [1, 2, 4, 5]

c.insert(2, 3)

print(c) # [1, 2, 3, 4, 5]

 

- 처음 나오는 자료 d를 제거

d = [3, 1, 2, 3]

d.remove(3)

print(d)# [1, 2, 3]

 

e = [6, 2, 4, 1]

f = [‘carrot’, ‘apple’, ‘banana’]

e.sort()

f.sort() 

print(e, f) # [1, 2, 4, 6] [‘apple’, ‘banana’, ‘carrot] # 문자열은 사전순

 

14) sequence

 순서가 있는 자료형 (리스트, 문자열 등이 이에 속함)

 - 원소간의 순서가 존재 -> 인덱싱/슬라이싱 가능

 

a = “once”

b = [‘t’, ‘w’, ‘i’, ‘c’, ‘e’]

print(a[1]) # n

print(b[2:4])# [‘i’, ‘c’]

 

a = “once” b = [‘t’, ‘w’, ‘i’, ‘c’, ‘e’]

print(a[-1])# e | 뒤에서1번째원소

print(b[:3])# [‘t’, ‘w’, ‘i’] | 처음~3번째슬라이싱

 

 

a = “once” b = [‘t’, ‘w’, ‘i’, ‘c’, ‘e’]

print(‘o’ in a)# True

print(‘b’ in c)# False

 

a = “once” b = [‘t’, ‘w’, ‘i’, ‘c’, ‘e’]

print(len(a))# 4

print(len(b))# 5

 

 

 

 

시퀀스의 인덱싱과 슬라이싱

  • 인덱싱 : 시퀀스의 한 원소를 가져오는 것
  • 슬라이싱 : 시퀀스의 일부분을 가져오는 것

my_list = [1, 2, 3, 4, 5] print(my_list[2]) #3 print(my_list[1:4]) #[2, 3, 4] Copy

아래 실습을 따라해보면서 시퀀스에서 인덱싱과 슬라이싱을 하는 방법을 익혀봅시다.

이렇게 해봐요!

  1. 문자열 "Impossible"이 담긴 변수 my_str을 만들어봅시다.

  2. 리스트 ["Apple", "Banana", "Chamwae", "Durian"]이 차례대로 담긴 변수 my_list를 만들어봅시다.

  3. 리스트 my_list에서 인덱싱을 이용해 변수 var1에 "Chamwae"를 넣어봅시다.

  4. 문자열 my_str에서 슬라이싱을 이용해 변수 var2에 "possible"을 넣어봅시다.

my_str = "Impossible"
my_list = ["Apple","Banana","Chamwae","Durian"]
var1 = my_list[2]
var2 = my_str[2:]
print(var1)
print(var2)

 

 

 

시퀀스의 길이와 멤버 조사하기

  • 길이 : len(시퀀스)
  • 멤버 조사 : 원소 in 시퀀스 (존재하면 True, 존재하지 않으면 False)

my_str = "abc" print(len(my_str)) #3 - my_str의 길이 print('d' in my_str) #False - 존재하지 않음 Copy

아래 실습을 따라해보면서 시퀀스의 길이와 멤버를 조사하는 방법을 익혀봅시다.

 

my_str = "Impossible"
my_list = ["Apple","Banana","Chamwae","Durian"]
var1= len(my_str)
var2 = ("Egg" in my_list)

 

15) for

sum = 0 

for i in [1,2,3]:

  sum = sum + i

print(sum)

 

length= 0

for x in abcdefg’:

  length= length+ 1

 

 

16) range

range연속 되는숫자만들어주는 시퀀스 자료형

range(0, 9) #0, 1, ... , 7, 8

range(5) #range(0, 5) 0, 1, 2, 3, 4

 

a = [1]

for i in range(2, 4):

  a.append(i)

  print(a) #[1, 2, 3]

 

 

17) while

i= 5

while i>0:

  print(i)

  i = i-1

  print(“Launch!”)

 

i= 0

while True:

  print(“knock”)

  if i>= 3:

    break

  i= i+ 1

 

 

18) 객체

사람 : 이름, 성별, 

 

19) 배열

 

20) 해쉬

studentIds= {박지나”:123,송호준”:145,이주원”:563 }

print(studentIds[“박지나”])

Key이용해서Value 가져오기: 대략O(1)

 

배열 VS 해쉬

 

해쉬

식별자가있는데이터,

시간복잡도↓/공간복잡도↑

 

배열

식별자가없는데이터,

시간복잡도↑/공간복잡도↓

 

 

Dictionary / Set

Value 없이Key있는Dictionary

studentNames= {“박지나”, “송호준”, “이주원”, “손지윤”}