부스트코스의 인공지능 기초(Ai Basic) 코칭 스터디 1기 활동을 하면서 정리한 내용입니다.
Function
함수 수행 순서
- 함수 부분 제외, 메인 프로그램부터 실행
- 함수 호출, 함수 부분을 수행하고 메인으로 돌아옴
In [1]:
# 0. 코드 실행, 함수 부분을 M에 올려두고 이를 제외한 메인부터 수행(그래서 함수를 주로 상단에 작성)
def cal_rectangle(x,y): # 3. 함수 수행
return x*y
# 1. 메인 프로그램 수행
rect_x = 10
rect_y = 20
print("x 길이 : ", rect_x)
print("y 길이 : ", rect_y)
# 2. 함수(cal_rectangle) 호출
print("사각형 넓이 : ", cal_rectangle(rect_x, rect_y)) # 4. 반환 받은 리턴값, 메인 수행
x 길이 : 10
y 길이 : 20
사각형 넓이 : 200
In [2]:
def f(x):
return 2*x+7
def g(x):
return x**2
x=2
f(x)+g(x)+f(g(x))+g(f(x))
Out[2]:
151
- parameter : 함수의 입력 값이 들어갈 부분(인터페이스)
- argument : 실제 parameter에 대입된 값
In [3]:
# 파라미터 x 에 2 라는 argument 값이 대입이 된 것
def f(x):
return 2*x+7
print(f(2))
11
함수의 형태
- parameter 유무, return 값 유무에 따라 함수의 형태가 다름
In [4]:
#print() : 따로 리턴 값이 존재x
#case 1 : 파라미터 & 리턴값 X
def a():
print(5*7)
#case 2 : 파라미터만
def b(x,y):
print(x*y)
#case 3 : 리턴값만
def c():
return 5 * 7
#case 4 : 파라미터 & 리턴값 O
def d(x,y):
return x*y
print(d(5,7))
35
Console(Terminal)
콘솔창 입출력
- input() : 입력받기, 실행 > 사용자의 입력을 대기 > 입력된 값을 반환값으로 변수에 할당
- print() : 출력하기, ','로 타입이 다른 값들도 연속 출력 가능.
If, 다른 타입을 붙여서 출력 > 형변환 필요 e.g. str(100)
In [5]:
print('enter ur name : ')
someone = input() # string 타입만.
print('hello', someone)
enter ur name :
귀찮다
hello 귀찮다
In [6]:
#str말고 다른 type으로 입력받고 싶을 때
temp = float(input('온도입력 : '))#입력할 때 바로 형변환(str > float)
print('온도는 ? ', temp)
print(type(temp))
온도입력 : 32.2
온도는 ? 32.2
<class 'float'>
Print Formatting
출력 양식 지정해서 출력하기
기존 방식
%-format
: "%datatype" %(variable)%s
:문자열%c
:문자 1개%d
:정수%f
:부동소수점
str.format()
: "내용{datatype}".format(argument)
Padding
여유공간 지정, 배열 & 소수점 자릿수
- %10s(문자열을 위해 10칸 확보), 8.2f(총 8자리 공간 중 소수점은 2자리까지만)
>
: 오른쪽 정렬,<
: 왼쪽 정렬
Naming
해당 표시할 내용을 변수로 지정, 입력
In [7]:
#%-format
num = 3; feel='happy'
print('I feel %s' % feel)
print('I ate %d foods. I feel %s' % (num, feel))
#str.format()
age = 22; name = 'chrome'
print('My name is {1} , I\'m {0} old.'.format(age,name))#age는 0번 째{}, name은 1번 째{}
print('{0} : {1:7.3f} won'.format('Apple', 5.23))
#Padding
print('{0:<10s} : {1:>7.3f} won'.format('Apple', 5.23))
#Naming
print('Product : {name:<7s} - {price:>7.3f} won'.format(name='Apple', price=5.23))
I feel happy
I ate 3 foods. I feel happy
My name is chrome , I'm 22 old.
Apple : 5.230 won
Apple : 5.230 won
Product : Apple - 5.230 won
요즘 방식
f-string
:f"{변수명}"
#default:왼쪽정렬
%string
format
함수
In [8]:
#f-string
name = '정리하기귀찮'
print(f"으아아아 {name}")
print(f"{name:15}")#15칸 확보 & 왼쪽정렬
print(f"{name:*<15}")#15칸 확보 & 나머지는 * 채우기 & 왼쪽 정렬
print(f"{name:>15}")#15칸 확보 & 오른쪽 정렬
print(f"{name:*>15}")#15칸 확보 & 나머지는 * 채우기 & 오른쪽 정렬
print(f"{name:*^15}")#15칸 확보 & 나머지는 * 채우기 & 가운데 정렬
pi = 3.141592653589793
print(f"{pi:.2f}")#소수점 2자리까지 표현
으아아아 정리하기귀찮
정리하기귀찮
정리하기귀찮*********
정리하기귀찮
*********정리하기귀찮
****정리하기귀찮*****
3.14
섭씨 > 화씨
변환 : ( ( 9 / 5 ) * 섭씨 ) + 32
In [9]:
#c = 32.2 -> k = 89.96
def temp_convert(c):
k = ( ( 9 / 5 ) * c ) + 32
return k
print('섭씨를 화씨로, 섭씨온도 입력하세요')
c = float(input())
print(f'c :{c:.1f}')
print(f'k :{temp_convert(c):.2f}')
섭씨를 화씨로, 섭씨온도 입력하세요
32.2
c :32.2
k :89.96