[목차]

 

1. 특징

2. 문법

    2-1 코드 예

    2-2 print() 함수

    2-3 input() 함수

    2-4 숫자형

    2-5 문자열

    2-6 리스트

    2-7 튜플

    2-8 딕셔너리

    2-9 집합(Set)

    2-10 제어문

    2-11 함수

    2- 12 클래스, 객체

    2-13 상속

3. 기출 & 기출 예상 문제

 

 

 

 

 

[특징]

 

1. Python은 배우기 쉽고 플랫폼에 독립적이며

인터프리터식,객체지향적, 동적 타이핑 대화형 언어

(참고 : 컴파일 방식(C/C++)은 문서 전체를 해석,

인터프리터 방식은 각각의 라인을 한 줄씩 해석,

자바는 혼합 방식)

 

2. 구글의 3대 개발 언어 (C, JAVA, Python)

 

3. 자료형 검사

데이터 타입을 별도로 지정할 필요 없음(자동 결정)

실행 시 변수에 저장된 값에 따라 자동으로 자료형이 저장된다.

(참고: 컴파일 할 때 검사하는 방식을 정적 타이핑,

실행할 때 (run time) 검사하는 방식은 동적 타이핑(파이썬))

 

 

 

[문법]

 

1. 코드 예)

1에서 10까지 홀수 합계와 홀수 개수

a = 0
b = 0

for i in range(10):
   if (1 % 2):
      a = a + i
      b = b + i
print(a,b)
 

문장 끝에 세미콜론(;) 필요 없음

(단, 여러 문장을 한 줄에 입력할 경우는 구분자로 필요)

 

 

2. print() 함수

값 뒤에 분리문자(sep) 지정 안 하면 자동 공백 한 칸

종료문자(end) 생략 시 자동 줄 바뀜

print("이것은 샘플 코드", a, sep='-', end='.')

 

 

 

3. input() 함수 - 사용자 입력

변수 = input()

a = input('숫자를 입력하시오')

a, b = input().split()

a,b = input('입력값 :').split('-')   # split 값 지정 안하면 공백 1칸
print(a)
print(b)

> 입력값 : master-takudaddy 
master
takudaddy

=============================

# 두 수의 차이 구하기
X, Y = input().split()
X = int(X), Y = int(Y)
Z = 0 
if(X > Y):
   Z = X - Y
else:
   Z = Y - X

print(Z)


# C로 구현하는 경우
#include <stdio.h>
int main() {
    int X; int Y; int Z;
    scanf("%d %d", &X, &Y);
    if (X >= Y)
       Z = X - Y;
    else
       Z = Y - X;
    printf("%d", Z);
}

 

 

 

 

4. 숫자형 (Number)

 

4-1. 정수형 (Integer)

: 양수, 음수, 0

 

4-2. 실수형(Floating-point)

: 소수점이 포함된 숫자

 

4-3. 사칙연산

+ - * ** / // %

 

 

 

5. 문자열 (String)

: 따옴표로 구분

 

5-1 문자열 인덱싱

기출문제(20년 3회 필기 기출)

a = "taku daddy"
print(a[3])
print(a[-2])
print(a[1:3])
print(a[:3])
print(a[5:])
print(a[0:-1])
print(a[::2])
peinr(a[::3])
 
출력 결과는?

u

d

ak (끝 번호 -1)

tak

daddy

taku dadd (끝 번호 -1)

tk ad

tuay

 

5-2 문자열 관련 메서드

- find(값) : 처음 검색된 값의 위치, 값없으면 -1 출력

- index(값) : find와 동일하지만 값이 없으면 오류 발생

- replace(값) : 'takudaddy'.replace('y', 'i') > takudaddi

- count(값) : 값의 개수, ('takudaddy'.count('d') > 3)

- split(값): 값을 기준으로 문자열 분리 후 리스트로 반환 ('taku-daddy'.split('-') > ['taku', 'daddy'])

- upper() : 대문자로 변경 ('taku'.upper() > TAKU)

- lower() : 소문자로 변경 ('DADDY'.lower() > daddy)

 

 

 

6. 리스트

여러 개의 자료를 하나의 변수로 관리하는 자료형으로 대괄호 []를 사용해 선언

List = [1,2, 'takudaddy']

value = list([1,2, 'takudaddy'])

 

 

6-1. 기출문제 (20년 4회 필기 기출)

i = ['ab', 1, 44, 567]
print(i[1:2])
print(i[:-2])
print(i[::3])

 

출력 결과는?

[1]

['ab', 1] (끝 번호 -1)

[567]

 

 

6-2. 리스트 추가 / 삽입 / 수정 / 삭제 메서드

i = [1,2, 3]

i.append('takudaddy') > [1,2,3,'takudaddy']

i.insert(2, 'taku') > [1,2,'taku',3, 'takudaddy']

i[0] = 44 > [44, 2, 'taku', 3, 'takudaddy']

i.remove('taku') > [44, 2, 3, 'takudaddy'] (리스트에서 '값'을 찾아 삭제)

del i[1] > [44,3, 'takudaddy'] (리스트에서 '위치'를 찾아 삭제)

 

 

6-3. 리스트 관련 메소드

copy() : 리스트 복사 (b = a.copy())

reverse() : 역순 ([1,2].reverse() > [2,1])

sort(0 : 정렬 (오름차순 [1,3,2].sort() > [1,2,3] 내림차순 [1,3,2].sort(reverse = True) > [3,2,1]

count() : 값이 저장된 요소들 개수 ([1,2].count(1) > 1)

index() : 값이 저장된 요소의 위치 ([1,3,2].index(3) > 1)

pop(위치) : 해당 값 출력 후 삭제 ([1,3,2].pop(0) > [3,2])

extend() : 리스트에 추가 ([1,2].extend([3,4]) > [1,2,3,4,])

 

 

6-4. 이차원 리스트

i_1 = [[1,2]]

i_2 = ['a', 'b']

i_3 = [i_1, i_2]

print(i_3)

> [[1,2], ['a','b']]

 

 

 

7. 튜플

: 리스트와 비슷하지만 저장된 값을 변경할 수 없고 소괄호를 사용 ()

t = ('a', 'b', 'c')

t = (1,) > 데이터가 하나인 경우 뒤에 컴마를 꼭 붙여야 함

 

 

 

7-1. 튜플 인덱싱

t = ('abc', 123, 'f')

print(t[0]) > abc

print(t[-1]) > f

 

 

7-2. 튜플 슬라이싱

t = ('abc', 123, 'f')

print(t[0:1]) > ('abc',)

print(t[-3:]) > ('abc',123,'f')

print(t[0:2]) > ('abc', 123)

 

 

 

8. 딕셔너리

: key와 valuse를 한 쌍으로 저장할 수 있는 자료형, 중괄호 사용 {}

d = {'타쿠대디' : 'genius'}

d = {'a':[1,2,3], 'b':(4,5,6)} > 리스트 + 튜플을 값으로 넣을 수 있음

 

 

8-1. 딕쳐너리 사용

- 키를 호출하면 해당 값이 출력 됨

d = {'hero' : 'takudaddy'}

print(d[hero]) > takudaddy

 

- key가 중복 사용되는 경우

마지막 한 개만 출력 됨

d = {1:'a', 2:'b', 1:'c'}

print{d[1]} > c

 

 

8-2. 딕셔너리 추가, 삭제

d = {'hero' : 'takudaddy', 'sub' : 'python'}

d['level'] = 999 > {'hero' : 'takudaddy', 'sub' : 'python', 'level' : 999}

del d['sub'] > {'hero' : 'takudaddy', 'level' : 999}

 

 

8-3. 딕셔너리 관련 메서드

d = {'hero' : 'takudaddy', 'sub' : 'python', 'level' : 999}

keys() : key 리스트 반환 (d.keys() > dict_keys(['hero', 'sub', 'level']))

values() : value 리스트 반환 (d.values() > dict_value('takudaddy', 'python', 999))

items() : 키:값 쌍으로 반환 (d.items() > dict_items([('hero':'takudaddy'),('sub':'python),('level':999]))

clear() : 키:값 쌍 모두 삭제 (d.clear() > {})

get() : key를 이용하여 value 반환 (d.get('level') > 999)

in : 딕셔너리 내 key의 존재 여부 반환 ('here' in d > True, 'enemy' in d > False)

 

 

 

9. 집합 (Set)

: 중복을 허용하지 않고, 순서가 없는 자료형으로 중괄호 사용해 선언 {}

 

s = {'t','a','k','u'}

print(s)

> 출력 순서가 없어 랜덤하게 출력됨 ('k','t','u',a')

 

s = set("daddy")

print(s)

> 중복을 허용하지 않기 때문에 하나만 출력됨 ('y','d','a')

 

 

9-1. 집합 관련 메서드 (20년 2회 실기 기출)

s = {1,2,3,4,}

add() : 1개의 값 추가 (s.add(44) > {1,2,3,4,44})

update([값 1, 값2..]) : 여려개의 값 추가 (s.upadate([3,4,5,6]) > {1,2,3,4,5,6,44}

remove(): 특정 값 제거 (remove(4) > {1,2,3,5,6,44}

 

9-2. 집합 활용

s1 = {1,2,3,4}

s2 = {3,4,5,6,7}

 

교집합 (Intersection, &)

s1 & s2 > {3,4}

s1.intersection(s2) {3,4}

 

합집합 (Union, |)

s1 | s2 > {1,2,3,4,5,6}

s1.union(s2) > {1,2,3,4,5,6}

 

차집합 (Difference, -)

s1 - s2 > {1,2}

s1.difference(s2) > {1,2}

 

s2 - s1

s2.diffrence(s1) > {5,6,7}

 

 

 

10. 제어문

10-1. if문

# 학점 시스템
j = 75
if j >= 90:
   print('학점 : A')
elif j > = 80:
....
else
   print('F 처리')

=================================
# C와 비교
int j = 75;
if (j >= 90) {
   printf("학점 : A");
}
else if(j >= 80) {
    printf("학점 : B");
}
.......
else {
   printf('F 처리');
}
 

 

 

10-2. while 문

# 1에서 10까지 짝수 합계
a, sum = 0, 0
while (a < 10) :
   a += 1       # python은 a++ 등의 증감 연산자 없음
   if(a % 2 == 1):
      continue
   sum += a
print(sum)

-----------------------------------------
# JAVA랑 비교
public class Sumsum{
  public static voin main(String[] args {
     int a= 0, sum =0;
     while(a < 10){
       a++;
       if (a % 2 == 1);
           continue;
       sum += a;
     }
     System.out.println(sum);
   }
}
 

 

10-3. for 문

- range 활용

range(최종값) : 0에서 최종 값 -1

range(초기값, 최종값) : 초기값에서 최종값 -1 까지

range(초기값, 최종값, 증가값) : 초기값에서 증가값만큼 증가하면서 최종값 -1 까지

 

- 리스트 활용

a = [1,2,3]
sum = 0 
for i in a:
  sum += i
print(sum)
>> 6
 

 

 

 

11. 함수

def 함수이름(매개변수):

def multi(x, y):
   return x * y

def show(x):
   print(x)

a = multi(2,3)
show(a)

==================================

# C랑 비교
#include (stdio.h>
int multi(int x, int y){
    return x * y;
}

void pri(int x){
    printf("%d \n", x);

main() {
   int a;
   a = multi(2,3);
   pri(a);
}
 
 

 

 

11. 함수

형식) def 함수이름(매개변수):

def multi(x, y):
   return x * y

def show(x):
   print(x)

a = multi(2,3)
show(a)

==================================

# C랑 비교
#include (stdio.h>
int multi(int x, int y){
    return x * y;
}

void pri(int x){
    printf("%d \n", x);

main() {
   int a;
   a = multi(2,3);
   pri(a);
}
 

 

 

 

12. 클래스, 객체

형식) class 클래스이름

# 짝수 합계
class Takudaddy:

   def taku(self, k):     # self는 객체 자기 자신을 참조하는 매개변수 
     a, sum = 0, 0        # 클래스 내 생성된 모든 메서드들은 첫 번째 매개변수로 self를 가지고 있음
     while (a < k):
        a += 1
        if (a % 2 == 1):
            contiunue     # 만약 나머지 값이 홀수라면 continue로 벗어나 while로 돌아가고  
        sum += = a        # 짝수라면 sum을 계산
     return sum
 

클래스(빵틀) 제작 완료,

이제 이를 활용해 객체(instance, 빵)를 만든다.

 

객체

형식) 변수이름 = 클래스이름()

# 짝수 합계
class Takudaddy:           # 여기서부터 ---------------------------------|
                                                                        |
   def taku(self, k):                                                   |
     a, sum = 0, 0                                                      |
     while (a < k):                                                     |
        a += 1                                                          |
        if (a % 2 == 1):                                                |
            contiunue                                                   |
        sum += = a                                                      |
     return sum             # 여기까지 클래스 ---------------------------|

g = Takudaddy()           # 여기부터 객체(instance, 빵), g라는 객체를 만들었다.
b = g.taku(10)            # 객체(g).메소드 이름

print(b)
>> 30
 

클래스는 하나의 틀(추상적)이 되는 것이고

해당 클래스를 인스턴스화(구체화) 시켜 객체를 만들어 주고

해당 객체를 활용해 프로그래밍을 할 수 있는 것

 

 

 

13. 상속

형식) class 자식 클래스(부모 클래스)

# 1부터 k 까지 합계
class Parent:
   def sum(self, k):
      sum =0
      for i in range(k+1):
         sum += i
      return sum

class Child(Parent):
   def multi(self, k):
      result = 0
      for i in range(k+1):
          result *= k
      return result

c = Child()
result = c.sum(5)
print(result)
>> 15
 
 

 


 

 

3. 기출 & 기출 예상 문제 

 

 

 

11번) 출력결과가 리스트로 저장되는 것 잊지 말기!

 

 

15번) in : 딕셔너리 내 key 존재 여부 반환을 True / False로 한다!

16번) 중괄호에 값만 저장되어 있는 것은 집합, 집합은 중복 없고 순서 없다!

 

 

 

 

 

 

출처 : 유튜브 기사퍼스트 권우석

https://www.youtube.com/watch?v=j8-Eb7cBiGU&list=PLz95GL3y9Hv1pC1yOWBV1yqHxi4jEOKez&index=24

 

 

 

 

 



 

 

 

 

 

728x90

+ Recent posts