덧셈, 뺄셈, 나눗셈, 곱셈, 나머지, 값, 거듭제곱을 구하는 calculator 함수를 만들어보자
def calculator(n1,n2,operator) :
def add() :
return n1 + n2
def sub() :
return n1 - n2
def div() :
return n1 / n2
def mul() :
return n1 * n2
def mod() :
return n1 % n2
def flo() :
return n1 // n2
def exp() :
return n1 ** n2
if operator == 1 :
print(add())
elif operator == 2 :
print(sub())
elif operator == 3:
print(div())
elif operator == 4:
print(mul())
elif operator == 5:
print(mod())
elif operator == 6:
print(flo())
elif operator == 7:
print(exp())
while True :
n1 = int(input('n1입력 : '))
n2 = int(input('n2입력 : '))
select = int(input('1.덧셈 2.뺄셈 3.나눗셈 4.곱셈 5.나머지 6.값 7.거듭제곱 8.종료 : '))
if select == 8 :
break
calculator(n1,n2,select)
calculator 함수의 if문에 print를 사용하고싶지 않다면, return으로 코드 작성해주고
while에서 함수 호출할 때
print(calculator(n1,n2,select)) 해주면 된다.
세 개의 숫자를 입력받아 가장 큰수를 출력하는 print_max 함수를 정의하라.
단 if 문을 사용해서 수를 비교하라.
def print_max(a,b,c) :
max = 0
if a > max :
max = a
if b > max :
max = b
if c > max :
max = c
print(max)
나같은 경우 if a>b and a>c처럼 하나하나 비교했으나,
max라는 변수를 하나 두고
변수보다 작다면 max에 값을 할당애 주는 방식으로 하면 더 간결해진다.
입력된 문자열을 역순으로 출력하는 print_reverse 함수를 정의하라.
def print_reverse (str) :
print(str[::-1])
슬라이싱에 대한 지식은 있었으나 아예 뒤집는데 쓸거라곤 생각지도 못했다 😅
str[ : :-1] : 처음부터 끝까지 뒤에서 하나씩
하나의 딕셔너리를 입력받아 딕셔너리의 key 값을 화면에 출력하는 print_keys 함수를 정의하라.
def print_keys (dic) :
for i in dic.keys() :
print(i)
이터러블한 객체는 모두 올 수 있다.
풀 때 def print_keys (*dic)로 넣었는데,
별은 튜플이므로 dic.key()가 코딩되지 않았다.
그냥 딕셔너리 그 자체를 넣으면 된다.
문자열과 한줄에 출력될 글자 수를 입력을 받아
한 줄에 입력된 글자 수만큼 출력하는 print_mxn(string) 함수를 작성하라.
def print_mxn(string,n) :
check_num = int(len(string) / n)
for i in range(check_num+1):
print(string[i*n : i*n+3])
print_mxn("아이엠어보이유알어걸", 3)
우선 check_num 변수는 개행 수 이다.
문장의 수에서 한줄에 들어갈 글자 수를 나눈 값을 for문에 넣는데
여기서, +1을 해주는 이유는 int로 소수점을 잘라냈기때문.
아래 실행결과를 예측하라
def my_print (a, b) :
print("왼쪽:", a)
print("오른쪽:", b)
my_print(a=100, b=200)
위의 my_print(a=100, b=200)s는
a에 100, b에 200을 바인딩하라는 것을 명시적으로 표현한 코드
아래 코드는 문법만 다를 뿐 위 코드와 동일한 동작을 수행한다.
#답은
왼쪽: 100
오른쪽: 200
def my_print (a=100, b=200) :
print("왼쪽:", a)
print("오른쪽:", b)
my_print()
위에처럼 매개변수에 디폴트값을 넣어주면
함수 실행 시 인수를 넣지 않아도 된다.
만약, 매개변수가 여러개이고 디폴트가 하나일 경우에는 뒤쪽에 디폴트 값을 몰아줘야한다.
def my_print (a, b=200) :
print("왼쪽:", a)
print("오른쪽:", b)
my_print(100)
콤마가 포함된 문자열 숫자를 입력받아 정수로 변환하는 convert_int 함수를 정의하라.
def convert_int(num) :
return int(num.replace(',',''))
print(convert_int("1,234,567"))
replace는 문자열을 변경하는 함수이다.
문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능을 가지고 있다.
'변수. replace(old, new, [count])' 형식으로 사용한다.