Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬 기초:문자열의 첫 글자를 대문자로

파이썬에서 문자열을 조작하는 방법에는 여러 가지가 있습니다. 코드 챌린지에서 파이썬에서 문자열의 첫 글자를 대문자로 써야 한다면 어떻게 하시겠습니까? 이 문서에서는 해당 목표를 달성하기 위해 문자열을 조작할 수 있는 한 가지 방법에 대해 설명합니다.

프롬프트

Python 문자열이 주어지면 첫 글자를 대문자로 표시하고 반환하는 함수를 작성하십시오.

명확한 질문하기

이 프롬프트는 면접 중에 주어질 수 있습니다. 이 경우 면접관에게 문제를 확실히 이해하도록 명확히 해달라고 요청하십시오.

다음은 문제에 접근할 때 생각할 수 있는 몇 가지 질문입니다.

  • 질문 :문자열이 항상 존재합니까? null 또는 빈 문자열을 처리할 필요가 없습니까?
  • 답변 :문자열이 항상 존재하는 것은 아닙니다. 하지만 이러한 극단적인 경우를 조심하는 것이 좋습니다!
  • 질문 :첫 편지. 이것은 문자열 자체의 첫 글자만을 의미합니까 아니면 문자열에 있는 각 단어의 첫 글자를 의미합니까? 어떻게 정의하면 좋을까요?
  • A :문자열 자체의 첫 글자.
  • 질문 :첫 번째 문자는 항상 문자입니까? 문자열의 첫 번째 문자가 숫자일 수 있는 경우를 처리해야 합니까?
  • A :잘 잡았습니다. 첫 번째 문자가 항상 문자열의 첫 번째 문자인 것은 아닙니다. 문자열의 첫 글자는 대문자로 해주세요.

접근 방식

이 문제에 접근하는 몇 가지 다른 방법이 있습니다. 문제를 해결하는 올바른 방법이 하나 이상 있습니다. 다른 방법을 생각해내면 좋습니다!

에지 케이스를 처리하라는 요청을 받은 경우 먼저 처리하십시오.

여기서 문자열이 없거나 빈 문자열이거나 첫 번째 문자가 문자가 아닌 경우에 발생하는 일을 처리해야 합니다. 이제 코드를 작성해 보겠습니다.

def capitalize_str(str):
 if str == None: # if str is None
   return "NoneType is not a string"
 elif len(str) > 0: #if str exists
   # what type of char is first character? If number, move to next letter, if letter, capitalize it.
   return str #this is temporary -- we'll change this in next step.
 else: #if str is empty
   return "undefined string"
 
capitalize_str("hello")

여기에서는 문자열이 None이거나 길이가 0인 경우를 처리했습니다. 대문자로 된 문자열을 반환하는 로직은 아직 수행하지 않았습니다. 먼저 존재하는지 확인해야 합니다.

문자열의 첫 번째 문자가 문자인지 확인하는 방법을 살펴보겠습니다. 숫자나 특수 문자인 경우 첫 번째 문자를 찾을 때까지 다음 문자로 이동해야 합니다. 문자인 경우 대문자로 표시하고 대문자로 된 문자열을 반환합니다. 문자열의 끝에 도달했는데 문자가 없으면 그렇게 말하십시오.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

def capitalize_str(str):
 if str == None: # if str is None
   return "NoneType is not a string"
 elif len(str) > 0: #if str exists
   # what type of char is first character? If number, move to next letter, if letter, capitalize it.
   i = 0
 
   while i < len(str):
     if str[i].isalpha():
       return str[0:i] + str[i].upper() + str[i + 1:]
     else:
       i += 1
    return "string does not have letters"
 else: #if str is empty
   return "undefined string"
 
print(capitalize_str("christina"))

Python에 존재하는 문자열 메서드 중 하나는 isalpha()입니다. . 문자가 알파벳의 일부인지 확인합니다. 그렇지 않은 경우 다음 문자로 이동합니다. 첫 번째 문자에 도달하면 문자열의 왼쪽, 대문자 및 나머지 문자열의 연결을 반환합니다.

Python capitalize()가 있습니다. 첫 번째 문자를 대문자로 변환하기 때문에 작동하지만 첫 번째 문자가 문자가 아닌 경우에는 처리할 수 없습니다. 이것이 우리가 while 루프를 사용하여 루프를 돌고 나서 문자를 찾는 첫 번째 인스턴스에서 의도적으로 while 루프를 끊는 이유입니다.

결론

이것은 이 코드 챌린지를 정복하는 한 가지 방법일 뿐입니다! 여기에 언급된 방법보다 훨씬 더 좋은(더 좋지 않은 경우) 다른 방법이 많이 있다고 확신합니다. 목표는 프롬프트에서 명확하지 않은 경우 질문하고 극단적인 경우에 대해 생각하는 방법을 배우는 것입니다! 그렇게 할 수 있다면 거의 문제 없이 코드 챌린지를 통과할 수 있습니다. 행운을 빕니다!