Python 연습 13: 스코틀랜드의 비명

의문


  • 연설을 강한 스코틀랜드 억양으로 변환하는 프로그램 작성
  • 강한 스코틀랜드 악센트는 모든 모음을 "e"와 유사하게 만듭니다.
  • 따라서 모든 모음을 "e"로 바꿔야 합니다.

  • 또한 비명을 지르고 있으므로 블록 대문자로 입력해야 합니다.
  • 문자열을 받아서 문자열을 반환하는 함수를 만듭니다.

  • 예시




    to_scottish_screaming("hello world") ➞ "HELLE WERLD"
    
    to_scottish_screaming("Mr. Fox was very naughty") ➞ "MR. FEX WES VERY NEEGHTY"
    
    to_scottish_screaming("Butterflies are beautiful!") ➞ "BETTERFLEES ERE BEEETEFEL!"
    


    내 시도



    실패 시도


  • 알고리즘

  • >Turn a sentence to Scottish accent
    >>replace all the vowel in the string with e and capitalise the whole sentence
    >>>find every vowel in the string 
       set up a vowel list
       for every letter equals to one of the vowel list it is a vowel
    >>>replace the vowel e
    >>>capitalise the string
    


  • 코드

  • def to_scottish_screaming(string: str):  
        vowel_list = ["a", "e", "i", "o", "u"]  
        string = string.lower()  
        for letter in string:  
            if letter in vowel_list:  
                scottish_scraming = string.replace(letter, "e")  
        scottish_scraming = scottish_scraming.upper()  
        return scottish_scraming
    


  • scottish_scraming이 업데이트될 때 하나의 문자만 바꾸므로 실패합니다.

  • 시도 2(성공)


  • 알고리즘

  • >Turn a sentence to Scottish accent
    >>replace all the vowel in the string with e and capitalise the whole sentence
    >>>find every vowel in the string
       initialise a vowel list
       check the letter in the string one by one
       if the letter is exist in the vowel list, then it is vowel
    >>>replace the vowel with e and add to a new string
       initialise an empty string
       if the letter is a vowel, add "e" to the new string at same position
       otherwise, add the original letter to the new string at same position
    >>>capitalise the new string
       call upper() method on the string
    >>>print out the result
    


  • 코드

  • def to_scottish_screaming(string: str):  
        string = string.lower()  
        vowel_list = ["a", "e", "i", "o", "u"]  
        scottish_scraming = str()  
        for letter in string:  
            scottish_scraming += "e" if letter in vowel_list else letter  
        scottish_scraming = scottish_scraming.upper()  
        return scottish_scraming  
    
    
    print(to_scottish_screaming("A, wonderful, day, don't, you, think?"))
    


    기타 솔루션



    re.sub() 메서드 사용


  • 첫 번째 인수는 패턴 또는 문자열입니다
  • .
  • []는 문자 집합을 나타내는 데 사용되며,
  • AIOU를 개별적으로 나열할 수 있도록
  • AIOU는 "A", "I", "O", "U"가 됩니다
  • .
  • 즉, 문자열의 대문자에서 "A", "I", "O", "U"를 'E'로 바꿉니다.


  • import re  
    
    
    def to_scottish_screaming(string: str):  
        scottish_scraming = re.sub("[AIOU]", "E", string.upper())  
        return scottish_scraming
    


    내 반성


  • 문제를 해결하기 위해 알고리즘을 먼저 작성하는 연습을 계속하십시오. 이런 방식으로 작업하는 것이 조금 더 친숙합니다.
  • re.sub() 메서드는 문자열의 문자 바꾸기에서 훨씬 간단합니다. 다음에 기억해야 합니다.

  • 신용 거래


  • 챌린지 찾기edabit
  • 좋은 웹페이지 즐겨찾기