"""
기본 함수의 구조
def 함수명(매개변수):
수행할문장
"""
def add(x, y):
return x + y
print(add(4,5))
헷갈릴 수 있는 정의 짚고 넘어가기
- 매개변수(parameter): 함수를 정의할 때 사용되는 변수(variable)
- 인수(argument): 함수를 호출할 때 넘기는 변수(variable)
- 위의 함수에서 add(x,y)의 x, y는 매개변수, print 안의 add(4,5)에서의 4, 5는 인수
"""
입출력
입력을 받아 어떤 변수에 대입하고 싶을 때는 어떻게 할까?
"""
a = input()
print(a)
num = input("숫자를 입력하세요: ")
print(num)
"""
출력
"""
# 출력을 ""로 구분하면 +와 같다
print("Hello""world")
print("Hello"+"world")
# 출력을 ,로 구분하면 띄어쓰기
print("Hello","world")
"""
파일 읽고 쓰기
open("파일.txt", "r") 파일 내용을 읽을때
open("파일.txt", "w") 파일 내용을 쓸때
open("파일.txt", "a") 파일 마지막에 새로운 내용을 추가할때
"""
# 파일 생성
f = open("텍스트파일.txt", "w")
f.close()
# 파일 쓰기
f = open("텍스트파일.txt", "w")
for i in range(1, 11):
line = f"{i}번째 줄\\n"
f.write(line)
f.close()
# 파일에 새로운 내용 추가하기
f = open("텍스트파일.txt", "a")
for i in range(11, 21):
line = f"{i}번째 줄\\n"
f.write(line)
f.close()
"""
파일읽기
"""
# readline 한줄
f = open("텍스트파일.txt", "r")
line = f.readline()
print(line)
f.close()
# readline 모든줄
f = open("텍스트파일.txt", "r")
while True:
line = f.readline()
if not line:
break
print(line)
f.close()
# readlines
f = open("텍스트파일.txt", "r")
lines = f.readlines()
for line in lines:
print(line)
f.close()
# \\n제거하여 출력하기
f = open("텍스트파일.txt", "r")
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()
# read 파일 전체 내용을 문자열로 리턴
f = open("텍스트파일.txt", "r")
all_lines = f.read()
print(all_lines)
f.close()
# 파일 객체를 반복하여 출력하기
f = open("텍스트파일.txt", "r")
for line in f:
print(line)
f.close()
# with 문을 사용하여 파일을 f.close()를 자동으로
with open("텍스트파일.txt", "r") as f:
print(f.read())
'''
오버라이딩
'''
class Animal:
def make_sound(self):
print("The animal makes a sound.")
class Dog(Animal):
def make_sound(self):
print("The dog barks.")
# create an instance of the Dog class
my_dog = Dog()
# call the make_sound method of the Dog class
my_dog.make_sound()
'''
오버로딩
'''
class Calculator:
def add(self, a, b, c=0):
return a + b + c
# create an instance of the Calculator class
my_calculator = Calculator()
# call the add method with two arguments
result1 = my_calculator.add(2, 3)
print(result1) # outputs 5
# call the add method with three arguments
result2 = my_calculator.add(2, 3, 4)
print(result2) # outputs 9
파이썬에서는 오버로딩을 정식으로 지원하지 않고 구현은 가능하다
class Animal:
def __init__(self, name):
self.name = name
def move(self):
print("move")
def speak(self):
pass
class Dog (Animal):
def speak(self):
print("bark")
class Duck (Animal):
def speak(self):
print("quack")
🡆
메소드는 클래스 내에서 정의되고 해당 클래스의 인스턴스에서 호출되는 함수
함수는 보통 모듈 수준에서 정의되고 호출되는 코드 블록
함수는 일반적으로 모듈 수준에서 정의되고 호출되는 코드 블록입니다. 메소드는 클래스 내에서 정의되고 해당 클래스의 인스턴스에서 호출되는 함수입니다.
🡆
객체는 어떤 속성값과 행동을 가지고 있는 데이터
클래스를 정의하고 이걸 인스턴스(실제로 메모리에 할당하는 것)화하면 객체를 만들 수 있음
객체는 데이터와 해당 데이터를 조작하는 메소드를 포함하는 소프트웨어 개체입니다. 파이썬에서 객체는 클래스를 정의하고 이를 인스턴스화하여 생성됩니다.
🡆
매개변수 이름 뒤에 등호 쓰고 원하는 값 넣으면 됨
파이썬에서 함수의 매개변수에 디폴트 값을 설정하려면 매개변수 이름 뒤에 등호와 함께 값을 할당하면 됩니다. 예를 들어,
def my_func(a, b=2, c=3)
와 같이 함수를 정의하면, b와 c 매개변수에는 각각 기본값 2와 3이 설정됩니다.
def square(x):
return x * x
def apply(func, x):
return func(x)
print(apply(square, 5))
🡆
25
코드는
25
를 출력합니다.apply
함수는 함수와 값을 인수로 받으며, 함수를 해당 값에 적용하여 결과를 반환합니다. 여기서square
함수와 인수5
를
apply
함수에 전달하면square(5)
가 실행됩니다
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def around(self):
return 2 * (self.width + self.height)
🡆
rect = Rectangle(5, 10)
print(Rectangle.area())
print(Rectangle.round())
def my_func(a, b, c):
print(a, b, c)
my_list = [1, 2, 3]
my_func(*my_list)
🡆
1 2 3
코드는
1 2 3
을 출력합니다.my_list
는[1, 2, 3]
이고,my_func(*my_list)
는my_func(1, 2, 3)
과 동일합니다. 함수my_func
는 인수를 세 개 받으므로,1
,2
,3
이 차례대로 출력됩니다.