본문 바로가기
728x90
반응형

함수46

초보자를 위한 파이썬 300제 // 229 함수 결과예상 문제 아래 코드의 실행 결과를 예측하라. def my_print (a, b) : print("왼쪽:", a) print("오른쪽:", b) my_print(a=100, b=200) 내풀이 왼쪽: 100 오른쪽: 200 정답 우선 아래의 기본 코드를 분석해 보겠습니다. 5번 라인에서 함수가 호출되면, 함수가 정의된 1번 라인으로 이동합니다. 이 때 함수의 입력 변수 a에 100을 바인딩하고, b에 200을 바인딩합니다. my_print(100, 200) 아래 코드는 함수가 호출될 때 a에 100, b에 200을 바인딩하라는 것을 명시적으로 표현한 코드입니다. 아래 코드는 문법만 다를 뿐 위 코드와 동일한 동작을 수행합니다. my_print(a=100, b=200) 함수의 호출 결과는 아래와 같습니다. 왼쪽.. 2021. 3. 11.
초보자를 위한 파이썬 300제 // 228 int() 문제 연봉을 입력받아 월급을 계산하는 calc_monthly_salary(annual_salary) 함수를 정의하라. 회사는 연봉을 12개월로 나누어 분할 지급하며, 이 때 1원 미만은 버림한다. calc_monthly_salary(12000000) 1000000 내풀이 def calc_monthly_salary(money): print(int(money/12)) calc_monthly_salary(1200555) 결과값 100046 정답 입력된 값을 12로 나누고 형변환을 해서 1원 미만을 절사합니다. def calc_monthly_salary(annual_pay) : monthly_pay = int(annual_pay / 12) return monthly_pay int() 함수는 정수만 나타내기 때문.. 2021. 3. 11.
초보자를 위한 파이썬 300제 // 227 함수 슬라이싱 문제 문자열과 한줄에 출력될 글자 수를 입력을 받아 한 줄에 입력된 글자 수만큼 출력하는 print_mxn(string) 함수를 작성하라. printmxn("아이엠어보이유알어걸", 3) 아이엠 어보이 유알어 걸 내풀이 line = "아이엠어보이유알어걸" def printmxn(line, num): for i in range(num+1): print(line[i*num : i*num+num]) printmxn("아이엠어보이유알어걸",3) 결과값 아이엠 어보이 유알어 걸 정답 def print_mxn(line, num): chunk_num = int(len(line) / num) for x in range(chunk_num + 1) : print(line[x * num: x * num + num]) 이번 문.. 2021. 3. 10.
초보자를 위한 파이썬 300제 // 226 함수 슬라이싱 문제 입력 문자열을 한 줄에 다섯글자씩 출력하는 print_5xn(string) 함수를 작성하라. print_5xn("아이엠어보이유알어걸") 아이엠어보 이유알어걸 내풀이 풀지 못하였다......ㅠㅠ 정답 def print_5xn(line): chunk_num = int(len(line) / 5) for x in range(chunk_num + 1) : print(line[x * 5: x * 5 + 5]) 음..... 정답을 봤는데 지금 정확하게 이해가 되지 않는다. 이 문제는 나중에 다시 다루도록 해야겠다. 정답을 보고 풀이 방법 및 이해를 하였다. 아래 방식으로 출력하면 같은 값이 나온다. 그러므로 인덱스값 슬라이스 방법을 잘 응용하면 된다. print(line[0:5]) print(line[5:10].. 2021. 3. 9.
초보자를 위한 파이썬 300제 // 225 함수 dictionary 문제 my_dict에는 날짜를 키값으로 OHLC가 리스트로 저장돼 있다. my_dict = {"10/26" : [100, 130, 100, 100], "10/27" : [10, 12, 10, 11]} my_dict와 날짜 키값을 입력받아 OHLC 리스트를 출력하는 print_value_by_key 함수를 정의하라. print_value_by_key (my_dict, "10/26") [100, 130, 100, 100] 내풀이 my_dict = {"10/26" : [100, 130, 100, 100], "10/27" : [10, 12, 10, 11]} def print_value_by_key (my_dict, key) : print(my_dict[key]) print_value_by_key(my_dict,.. 2021. 3. 8.
초보자를 위한 파이썬 300제 // 224 함수 dictionary 문제 하나의 딕셔너리를 입력받아 딕셔너리의 key 값을 화면에 출력하는 print_keys 함수를 정의하라. print_keys ({"이름":"김말똥", "나이":30, "성별":0}) 이름 나이 성별 내풀이 def print_keys(key): for i in key: print(i) print_keys ({"이름":"김말똥", "나이":30, "성별":0}) 결과값 이름 나이 성별 정답 def print_keys(dic): for keys in dic.keys(): print(keys) 음.......? 정답에 .keys()가 없어도 잘나오는데 왜있는지 잘 모르겠다...ㅠ 2021. 3. 8.
초보자를 위한 파이썬 300제 // 223 함수 짝수출력 문제 하나의 리스트를 입력받아 짝수만 화면에 출력하는 print_even 함수를 정의하라. print_even ([1, 3, 2, 10, 12, 11, 15]) 2 10 12 내풀이 def print_even(number): for i in number: if i % 2 == 0: print(i) print_even([1, 3, 2, 10, 12, 11, 15]) 결과값 2 10 12 정답 def print_even (my_list) : for v in my_list : if v % 2 == 0 : print(v) 리스트 안에 숫자를 하나씩 꺼내와 2로 나눴을 경우 0이되면 출력하게 만드는 함수입니다 ! 2021. 3. 7.
초보자를 위한 파이썬 300제 // 222 함수 평균값 구하기 문제 성적 리스트를 입력 받아 평균을 출력하는 print_score 함수를 정의하라. print_score ([1, 2, 3]) 2.0 내풀이 def print_score(score): print(sum(score)/len(score)) print_score([1,2,3]) 결과값 2.0 정답 def print_score(score_list) : print(sum(score_list)/len(score_list)) 리스트 안에 있는 값을 다 더해야 하니 sum() 함수로 더하고, 평균은 더한 값에 갯수로 나눠야 하니 len()로 갯수를 구하여 평균값을 만들면 끝 ! 2021. 3. 7.
초보자를 위한 파이썬 300제 // 221 슬라이싱(slicing) 문제 입력된 문자열을 역순으로 출력하는 print_reverse 함수를 정의하라. print_reverse("python") nohtyp 내풀이 def print_reverse(a): print(a[::-1]) print_reverse("python") 결과값 nohtyp 정답 슬라이싱을 사용하여 문자열을 역순으로 얻어올 수 있습니다. def print_reverse(string) : print(string[::-1]) 오랜만에 나온 슬라이싱이다. 잘 기억해놓자 ! 사실 슬라이싱 생각하는데 시간 좀 걸렸다....ㅠㅠ 2021. 3. 7.
728x90
반응형