컴퓨터공학부

[자료구조] 파이썬 이론, 실습 기초

혜머니 2026. 3. 24. 12:06

1. 파이썬 기본 함수

 (1) 변수의 범위

내장변수(built-in Scope) 언어의 일부로 정의된 변수와 리터럴들
프로그램의 어디에서나 사용할 수 있음
전역 범위(Global Scope) 소스 파일의 매 꼭대기 레벨(함수나 클래스 밖)에서 생성
프로그램의 어디에서나 사용 가능
지역 범위(Local Scope) 함수나 클래스의 멤버 함수(메소드) 안에서 생성
그 안에서만 사용함
함수의 매개변수들도 지역범위임
인스턴스 범위(Instance Scope) 클래스의 데이터 멤버로 생성된 변수
클래스 내의 다른 함수들에서 사용할 수 있음

(2) 실습

# import_21.py

import sys
import collections
input = sys.stdin.readline

def find_min_max(A) :
    min = A[0]
    max = A[0]
    for i in range(1,len(A)) :
        if max < A[i] : max = A[i]
        if min > A[i] : min = A[i]
    return min, max

def sum_range(begin, end,step=1) :
    sum = 0
    for n in range(begin, end, step) :
        sum += n
    return sum

def cal_perim(r) :
    print("파이값 : ", pi)
    perim = 2*pi*r
    return perim

data = [5,3,4,5,2,3,1,6,4]
x, y = find_min_max(data)
print("find_min_max : ", x, y)

print("sum_range = ", sum_range(step=3, begin=1,end=10))

pi = 3.14159
r = 0
cal_perim(10)
print("cal_permi = ", cal_perim(10))
print("r = ", r)
======= RESTART: C:/Users/yyhhm/OneDrive/바탕 화면/Main/사이버대학/4학ㄱ/자료구조/2-2.py ======
find_min_max :  1 6
sum_range =  12
파이값 :  3.14159
파이값 :  3.14159
cal_permi =  62.8318
r =  0
import import_21

data = [2,3,4,2,8,6,3,1]
print(import_21.find_min_max(data))
print(import_21.sum_range(1,10))
======= RESTART: C:/Users/yyhhm/OneDrive/바탕 화면/Main/사이버대학/4학ㄱ/자료구조/2-2.py ======
find_min_max :  1 6
sum_range =  12
파이값 :  3.14159
파이값 :  3.14159
cal_permi =  62.8318
r =  0
(1, 8)
45
from import_21 import find_min_max
from import_21 import sum_range

data = [2,3,4,2,8,6,3,1]
print(find_min_max(data))
print(sum_range(1,10))
find_min_max :  1 6
sum_range =  12
파이값 :  3.14159
파이값 :  3.14159
cal_permi =  62.8318
r =  0
(1, 8)
45
class Car :
    def __init__(self, color, speed=0) :
        self.color = color
        self.speed = speed
    def speedup(self) : self.speed += 10
    def speeddown(self) : self.speed -= 10

    def isEqual(self,carB) :
        if self.color == carB.color : return True
        else : return False
    def __eq__(self,carB) : return self.color == carB.color

class SuperCar(Car) :
    def __init__(self, color, speed =0, bTurbo=True) :
        super().__init__(color, speed)
        self.bTurbo = bTurbo
    def setturbo(self, bTurbo = True) :
        self.bTurbo = bTurbo
    def speedup(self) :
        if self.bTurbo == True :
            self.speed += 50
        else :
            super().speedup()
    def __str__(self) :
        if self.bTurbo :
            return "[%s] [speed = %d] 터보모드" %(self.color, self.speed)
        else :
            return "[%s] [speed = %d] 일반모드" %(self.color, self.speed)
       
car1 = Car('black', 0)
car2 = Car('red', 120)
car3 = Car('yellow', 30)
car4 = Car('blue', 0)
car5 = Car('yellow')
car6 = Car('yellow', 30)

print("2==3 : ", car2==car3)
print("3==6 : ", car3==car6)

car1.speedup()
car2.speeddown()

print("car1 = ", car1.color, car1.speed)
print("car2 = ", car2.color, car2.speed)

s1 = SuperCar("Gold", 0, True)
s2 = SuperCar("White", 0, False)

s1.speedup()
s2.speedup()

print("s1 = ", s1)
print("s2 = ", s2)
======= RESTART: C:/Users/yyhhm/OneDrive/바탕 화면/Main/사이버대학/4학ㄱ/자료구조/2-2.py ======
2==3 :  False
3==6 :  True
car1 =  black 10
car2 =  red 110
s1 =  [Gold] [speed = 50] 터보모드
s2 =  [White] [speed = 10] 일반모드