2021-11-12 replit_test1 리뷰

이유진·2021년 11월 14일
0

1week_pre_course

목록 보기
5/5
post-thumbnail

문제 01. is_even 함수 작성하기

Q :
짝수인지 판별하는 함수 is_even을 작성 주세요.

ex) 
print(is_even(11)) # --> "짝수가 아닙니다."
print(is_even(10)) # --> "짝수 입니다."
  • 내가 쓴 A ↓)
def is_even(num):
    # 아래 코드를 입력해주세요.
    if num % 2 == 1:
      return "짝수가 아닙니다."
    elif num % 2 == 0:
      return "짝수 입니다."

[ *설명 ]
% : 나눈 값의 나머지를 구함.
if 조건문을 이용하여,
인자 num을 2로 나눈 나머지가 1이면 홀수, 0이면 짝수
반환하는 return 설정함


문제 02. calculate_tatal 함수 작성하기

Q : 
팁과 세금을 제외한 식사값이 주어졌을때, 
"calculate_total" 함수는 팁과 세금이 포함된 총 식사값을 반환.

Notes:
* 세금은 9.5% 팁은 15% 로 계산 O
* 팁을 계산할때 세금을 포함하여 계산 X
  • 내가 쓴 A ↓)
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 = 

[ *수정할 점 ]
세금과 팁값의 변수 선언하면
좀더 이전에 작성한 코드보다 가독성 있음.

  • 변수 선언한 A ↓)
def calculate_total(amount): # --> amount = 20
	# 아래 코드를 작성해주세요.
	
  tax = amount * 0.095
  tip = amount * 0.15
  
  tatal = amount + tax + tip
  return tatal # --> 24.9

문제 03. get_prefix 함수 작성하기

Q : 
"get_prefix" 함수를 작성하세요.

문자열이 주어졌을때, “-”를 기준으로 앞에 있는 문자열을 반환.
  • 내가 쓴 A ↓)
def get_prefix(str):
    # 아래 코드를 작성해주세요.
    if "-" in str:
      a = str.index("-")
      return str[:a] 

[ *수정할 점 ]
if문을 작성하지 않아도, index( ) 함수가 "-"이라는 문자열을 찾아주기에,
굳이 if문은 작성할 필요가 없음.
index( )함수에 대해서 정확하게 알고 작성하지 않았기 때문에, 불필요한 if문을 작성한 것으로 보여짐.
< 함수와 조건문 사용시, 개념을 정확하게 파악하고 작성하기! >

  • 수정 A ↓) if문을 삭제함.
def get_prefix(str): # --> str = "abc-def"
    # 아래 코드를 작성해주세요.
      a = str.index("-")
      return str[:a] # --> abc

⊙ 문자열을 찾는 함수를 이용해서 풀은 문제 ⊙
=> find()index()
함수를 비교 & 작성하면서 개념을 다시 머리속에 집어넣는 걸로!

find( )index( )
작성법변수.find(찾을문자)변수.index(찾을문자)
공통점문자열 찾기문자열 찾기
차이점찾고자 하는 문자열이 없으면, 반환값 = -1찾고자 하는 문자열이 없으면, 반환값 = Error

  • find( )로 실습해보기!
    문제4번 하단에 실습함.

  • index( )로 실습해보기!

찾을 문자열 "-"이 없으니, Error가 뜨는 걸 확인함.

문제 04. get_find 함수 작성하기

Q :
"get_find" 함수를 작성하세요.

문자와 문자열이 주어졌을때, "get_find" 함수는 주어진 문자열에서 함께 주어진 
문자가 나타나는 첫번째 위치를 반환.

Notes:

* 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
* 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환.
* 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환.
* find 함수를 사용 X

  • 내가 쓴 A ↓)
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 반환
하는 조건으로 작성.


  • 만약, find( ) 함수로 작성하였다면,
    간단하게, 작성될 것이다. (작성 예시 : ↓)


index( )와 find( ) 함수의 특징이
문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환.
그래서,
"a" 는 "wecode" 문자열에서 없으므로, -1 을 설정하지 않아도 자동으로 반환.
"w" 는 "wecode" 문자열에서 1번 나타나며, 인덱스는 [0] 이므로, 0을 반환.
"e" 는 "wecode" 문자열에서 2번 나타나며, 첫번재로 나타는 인덱스는 [1] 이므로, 1을 반환 .

문제 05. find_longest_word 함수 작성하기

Q :
주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성해주세요.

ex)
print(find_longest_word(["PHP", "Exercises", "Backend"])) # --> "Exercises

[ *미제출한 이유 ]
max( ) 함수를 사용해야 하는 것까지 인지하였으나, 함수의 특성?을 이해하지 못하여 미작성으로 제출.

  • 테스트 종료 후의 A ↓)
def find_longest_word(words):
    # 아래 코드를 작성해주세요.
  return max(words,key = len)

max( ) : 데이터 타입으로 받은 것들 중 가장 큰 값 반환
(문자열의 ASCII 값을 비교하여 가장 큰 값)
영어 : A ~ Z 中 큰 값 Z
한글 : ㄱ ~ ㅎ 中 큰 값 ㄱ

profile
차근차근 배워나가는 주니어 개발자

0개의 댓글