파이썬 문제 정리

신지원·2021년 3월 29일
0
post-thumbnail
post-custom-banner

Q1. "get_prefix" 함수를 작성하세요.
문자열이 주어졌을때, “-”를 기준으로 앞에 있는 문자열을 반환하세요.

예) print(get_prefix('BTC-KRW')) # --> BTCco

def get_prefix(str):
  a = str.find('-')
  # print(a)    3출력
  b = str[0:a]
  return b
  
get_prefix('BTC-KRW')

💡 새로 알게 된거
find() 함수
find('찾을 문자') => 변수에 위차한 문자열 괄호 안에 넣은 특정 문자가 처음 위치한 자리의 값을 찾을 수 있다. 문자열의 위치는 숫자로 출력되고, 0부터 시작한다.

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

Notes:

  • 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
  • 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
  • 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
  • find 함수를 사용하지 마세요.
def get_find(char, str):
  dex = 0

  if char in str:
    for x in str:
      if x == char:
        return dex
      else:
        dex +=1
  return -1

print(get_find('h', 'I am a hacker'))

생각했던 방법
문장에서 글자들을 하나하나 다 뽑아내고, 글자들 하나하나를 주어진 문자 하나와 비교한다. 그래서 첫번째에 같으면 바로 0의 위치에 있는거니깐 출력하고, 없으면 dex=0에 1씩 더해서 같은 글자열을 찾을때까지 반복한다.

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

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

위에가 예시!

def find_longest_word(words):

  li = []
  for word in words:
    a = len(word)
    li.append(a)
  b = max(li)
  c = li.index(b)
  result = words[c]
  return result

  # 구글링을 통해서 찾은 방법
  # a = max(words, key = len)
  # return a

find_longest_word(["PHP", "Exercises", "Backend"])

내가 생각했던 방법
리스트를 만들고 단어들을 len을 사용해 길이가 어느정도인지 구해서 리스트에 append한다. 그리고, max()를 사용해서 문자열이 제일 긴걸 구한다. 그리고 index() 함수를 이용해 index를 구하고, return 한다.

💡 새로 알게 된거
index() 함수는 str의 내장함수로서, 문자 및 문자열의 위치(index)를 찾아준다. 같은 문자 및 문자열이 있을 경우에는 처음의 위치를 반환한다.

💡 max() 함수를 이용해서 구하는 방법

a = max(words, key = len)
return a

max()의 parameter는 key= function을 기준으로 최대값을 찾을 수 있다.

post-custom-banner

0개의 댓글