
# 함수 정의
def 함수이름(매개변수):
# 함수 내용
return 결과값
# 함수 호출
결과 = 함수이름(인자)
def add(a, b):
return a + b
def sub(a, b):
return a - b
def mul(a, b):
return a * b
def div(a, b):
return a / b
# 함수 호출 예제
r1 = mul(a=20, b=30) # 키워드 인자 사용
r2 = add(a=10, b=r1)
print(r2) # 출력: 610
def printOptions():
print("'c'섭씨온도에서 화씨온도로 변환")
print("'f'화씨온도에서 섭씨온도로 변환")
print("'q'종료")
print("="*30)
def C2F(c_temp): # 섭씨 온도를 화씨 온도로 변환
return 9.0 / 5.0 * c_temp + 32
def F2C(f_temp): # 화씨 온도를 섭씨 온도로 변환
return (f_temp - 32.0) * 5.0 / 9.0
# 사용 예시
printOptions()
choice = input("메뉴에서 선택하세요.")
if choice == "c":
temp = float(input("섭씨온도: "))
print("화씨온도:", C2F(temp))
elif choice == "f":
temp = float(input("화씨온도: "))
print("섭씨온도:", F2C(temp))
elif choice == "q":
print("종료합니다.")
else:
print("c, f, q중 하나를 입력하시오.")
Call-by-value (값에 의한 전달)
def modify(n):
print("함수 내부 n id =", id(n))
print("함수 내부 n value =", n)
n = n + 1
print("함수 n = n +1실행 후 내부 n id =", id(n))
print("함수 n = n +1실행 후 내부 n value =", n)
k = 10
print("함수 외부 (1) k id =", id(k))
print("함수 외부 (1) k value =", k)
modify(k)
print("함수 외부 (2) k id =", id(k))
print("함수 외부 (2) k value =", k)
Call-by-reference (참조에 의한 전달)
def modify2(li):
print("함수 내부 li id =", id(li))
print("함수 내부 li =", li)
li += [100, 200] # 원본 리스트 변경
print("함수 li += [100, 200]실행 후 내부 li id =", id(li))
print("함수 li += [100, 200]실행 후 내부 li =", li)
list = [1, 2, 3, 4, 5]
print("함수 호출 전 외부 list id =", id(list))
print("함수 호출 전 외부 list =", list)
modify2(list)
print("함수 호출 후 외부 list id =", id(list))
print("함수 호출 후 외부 list =", list) # [1, 2, 3, 4, 5, 100, 200]
참고: 객체 재할당은 새로운 객체를 생성하므로 참조가 끊어짐
def modify2(li):
print("함수 내부 li id =", id(li))
print("함수 내부 li =", li)
li = [100, 200] # 새로운 객체 할당 (원본 변경 안 됨)
print("함수 li = [100, 200]실행 후 내부 li id =", id(li))
print("함수 li = [100, 200]실행 후 내부 li =", li)
list = [1, 2, 3, 4, 5]
modify2(list)
print("함수 호출 후 외부 list =", list) # [1, 2, 3, 4, 5]
지역 변수 (Local Variable)
def sub():
s = "바나나가 좋음!" # 지역 변수
print(s)
sub()
# print(s) # 오류: 지역 변수는 함수 외부에서 접근 불가
전역 변수 (Global Variable)
global 키워드: 함수 내에서 전역 변수를 수정할 때 사용
s = "사과가 좋음!" # 전역 변수
def sub():
print("함수 내부 :", s) # 전역 변수 사용 가능
sub()
print("함수 외부 :", s)
def sub():
global s # 전역 변수 s를 사용하겠다고 선언//글로벌썻으니까 이거이제 걍 연결됏다고간주 ㄱㄱ
print("함수 내부 (외부로 부터 전달받음) : s ->", s)
s = "바나나가 좋음!" # 전역 변수 값 변경
print("함수 내부 (내부에서 수정됨) : s ->", s)
s = "사과가 좋음!"
print("함수 외부 (함수 실행 전) : s ->", s)
sub()
print("함수 외부 (함수 실행 후) : s ->", s) # "바나나가 좋음!" 출력
lambda 키워드로 생성sum = lambda x, y: x + y
print("정수의 합 :", sum(10, 20)) # 정수의 합 : 30
print("정수의 합 :", sum(20, 20)) # 정수의 합 : 40
기본 구조:
for 변수 in 시퀀스:
# 반복할 코드
예제:
# 문자열 "환영합니다"를 5번 출력
for x in range(5):
print("환영합니다.")
# 리스트의 각 요소에 접근
for name in ["철수", "영희", "길동", "유신"]:
print("안녕! " + name)
range(stop): 0부터 stop-1까지의 정수 생성range(start, stop): start부터 stop-1까지의 정수 생성range(start, stop, step): start부터 stop-1까지 step 간격으로 정수 생성# 0부터 9까지 출력
for x in range(10):
print(x, end=" ") # 0 1 2 3 4 5 6 7 8 9
# 0부터 9까지의 합계 계산
sum = 0
for x in range(10):
sum = sum + x
print(sum) # 45
다음 코드의 출력 결과는?
def calculate_area(radius):
result = 3.14 * radius**2
return result
r = float(input("원의 반지름: ")) # 사용자가 10.0 입력
area = calculate_area(r)
print(area)
다음 코드의 출력 결과는?
def sub(x, y):
global a
a = 7
x, y = y, x
b = 3
print("함수 내부 a : %d, b : %d, x : %d, y : %d" % (a, b, x, y))
a, b, x, y = 1, 2, 3, 4
sub(x, y)
print("함수 외부 a : %d, b : %d, x : %d, y : %d" % (a, b, x, y))
함수 내부 a : 7, b : 3, x : 4, y : 3
함수 외부 a : 7, b : 2, x : 3, y : 4다음 코드의 출력 결과는?
def modify(mylist):
print("함수 내부에서의 mylist:", mylist)
mylist = [1, 2, 3, 4]
print("함수 내부에서의 mylist:", mylist)
return
mylist = [10, 20, 30, 40]
modify(mylist)
print("함수 외부에서의 mylist:", mylist)
함수 내부에서의 mylist: [10, 20, 30, 40]
함수 내부에서의 mylist: [1, 2, 3, 4]
함수 외부에서의 mylist: [10, 20, 30, 40]
다음 코드를 실행하면 총 몇 번의 반복이 수행되는가?
sum = 0
for i in range(1, 10, 2):
for j in range(2, 5):
sum += i * j
print(sum)
다음과 같은 기능을 하는 함수를 작성하시오:
def get_two_integers():
num1 = int(input("첫 번째 정수를 입력하세요: "))
num2 = int(input("두 번째 정수를 입력하세요: "))
return num1, num2
def calculate_sum_between(a, b):
# 항상 작은 수부터 큰 수까지 더하기
if a > b:
a, b = b, a
total = 0
for i in range(a, b + 1):
total += i
return total
def print_result(result):
print("두 정수 사이의 모든 정수의 합:", result)
def main():
num1, num2 = get_two_integers()
sum_result = calculate_sum_between(num1, num2)
print_result(sum_result)
main()