Q :
짝수인지 판별하는 함수 is_even을 작성 주세요.
ex)
print(is_even(11)) # --> "짝수가 아닙니다."
print(is_even(10)) # --> "짝수 입니다."
def is_even(num):
# 아래 코드를 입력해주세요.
if num % 2 == 1:
return "짝수가 아닙니다."
elif num % 2 == 0:
return "짝수 입니다."
[ *설명 ]
% : 나눈 값의 나머지를 구함.
if 조건문을 이용하여,
인자 num을 2로 나눈 나머지가 1이면 홀수, 0이면 짝수
반환하는 return 설정함
Q :
팁과 세금을 제외한 식사값이 주어졌을때,
"calculate_total" 함수는 팁과 세금이 포함된 총 식사값을 반환.
Notes:
* 세금은 9.5% 팁은 15% 로 계산 O
* 팁을 계산할때 세금을 포함하여 계산 X
def calculate_total(amount):
# 아래 코드를 작성해주세요.
tatal = amount + amount * 0.095 + amount * 0.15
return tatal
# 총 식사값 = 식사값+ 세금 + 팁
# = amount + (amount * 0.095)] + (amount * 0.15)
# 식사값 20
# 팁 20 * 0.15
# 세금 20 * 0.095 --> # tatal =
[ *수정할 점 ]
세금과 팁값의 변수 선언하면
좀더 이전에 작성한 코드보다 가독성 있음.
def calculate_total(amount): # --> amount = 20
# 아래 코드를 작성해주세요.
tax = amount * 0.095
tip = amount * 0.15
tatal = amount + tax + tip
return tatal # --> 24.9
Q :
"get_prefix" 함수를 작성하세요.
문자열이 주어졌을때, “-”를 기준으로 앞에 있는 문자열을 반환.
def get_prefix(str):
# 아래 코드를 작성해주세요.
if "-" in str:
a = str.index("-")
return str[:a]
[ *수정할 점 ]
if문을 작성하지 않아도, index( ) 함수가 "-"이라는 문자열을 찾아주기에,
굳이 if문은 작성할 필요가 없음.
index( )함수에 대해서 정확하게 알고 작성하지 않았기 때문에, 불필요한 if문을 작성한 것으로 보여짐.
< 함수와 조건문 사용시, 개념을 정확하게 파악하고 작성하기! >
def get_prefix(str): # --> str = "abc-def"
# 아래 코드를 작성해주세요.
a = str.index("-")
return str[:a] # --> abc
⊙ 문자열을 찾는 함수를 이용해서 풀은 문제 ⊙
=> find()
와 index()
함수를 비교 & 작성하면서 개념을 다시 머리속에 집어넣는 걸로!
find( ) | index( ) | |
---|---|---|
작성법 | 변수.find(찾을문자) | 변수.index(찾을문자) |
공통점 | 문자열 찾기 | 문자열 찾기 |
차이점 | 찾고자 하는 문자열이 없으면, 반환값 = -1 | 찾고자 하는 문자열이 없으면, 반환값 = Error |
찾을 문자열 "-"이 없으니, Error가 뜨는 걸 확인함.
Q :
"get_find" 함수를 작성하세요.
문자와 문자열이 주어졌을때, "get_find" 함수는 주어진 문자열에서 함께 주어진
문자가 나타나는 첫번째 위치를 반환.
Notes:
* 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
* 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환.
* 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환.
* find 함수를 사용 X
def get_find(char, str):
# 아래 코드를 작성해주세요.
if char in str:
return str.index(char)
elif char not in str:
return -1
[ *설명 ]
문제 조건에 find( ) 사용 금지로 인해, index( )
함수와 if문
을 같이 사용하여 작성함.
"str"변수에 "char"라는 변수가 있다면, char변수가 첫번째로 나타나는 위치 반환 / 없다면, -1 반환
하는 조건으로 작성.
index( )와 find( ) 함수의 특징이
문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환.
그래서,
"a" 는 "wecode" 문자열에서 없으므로, -1 을 설정하지 않아도 자동으로 반환.
"w" 는 "wecode" 문자열에서 1번 나타나며, 인덱스는 [0] 이므로, 0을 반환.
"e" 는 "wecode" 문자열에서 2번 나타나며, 첫번재로 나타는 인덱스는 [1] 이므로, 1을 반환 .
Q :
주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성해주세요.
ex)
print(find_longest_word(["PHP", "Exercises", "Backend"])) # --> "Exercises
[ *미제출한 이유 ]
max( ) 함수를 사용해야 하는 것까지 인지하였으나, 함수의 특성?을 이해하지 못하여 미작성으로 제출.
def find_longest_word(words):
# 아래 코드를 작성해주세요.
return max(words,key = len)
max( ) : 데이터 타입으로 받은 것들 중 가장 큰 값 반환
(문자열의 ASCII 값을 비교하여 가장 큰 값)
영어 : A ~ Z 中 큰 값 Z
한글 : ㄱ ~ ㅎ 中 큰 값 ㄱ