2017-02-09 1 views
0
def shortenPlus(s) -> "s without some vowels": 
    for char in s: 
     if char in "AEIOUaeiou": 
      return(s.replace(char,"")) 

전체 문자열에서 추출했습니다. 그러나 나는 문자열에있는 각 단어의 첫 문자가 아닌 모든 것에 대한 대체 기능을 제한하는 방법을 알아낼 수 없습니다.어떻게 문자열의 모든 단어의 시작 부분에 모음을 유지하지만 문자열의 나머지 부분을 제거하십시오

+0

희망 이것은 당신의 문제를 해결합니다! http://stackoverflow.com/a/42142878/6840615 –

답변

0

정확히 무엇이 필요한지 잘 모르겠습니까? 간단한 예를 들어 설명해주십시오. 당신의 예에서 가지고있는 단어는 모음으로 시작하지 않습니다!

하지만 여기에서는 첫 단어의 첫 번째 모음을 제외하고 한 단어의 모든 모음을 제거 할 수 있습니다. 하드 코딩하지만 당신에게 아이디어 제공 : 모든 단어의 첫 문자를 얻기 위해,

witht sm vwls 

또는

s="without some vowels" 
for char in s[2:]: 
    if char in "AEIOUaeiou": 
     s=s.replace(char,"") 
print(s) 

출력을 해당 플래그 때마다 비 알파 문자 같은 감시 값을 사용할 수 있습니다 구두점 또는 공백이 있으면 다음 문자는 유지하지만 다른 문자는 유지하지 않습니다. 문자열에있는 모든 단어의 시작 부분에 모음을 유지하지만, 문자열의 나머지 부분에서 제거하는 방법

s="without some vowels" 
sent=2 
for char in s: 
if sent>0: 
    sent-=1 
    print(char) 
    continue 
if not char.isalpha(): 
    sent=2 
    continue 
s=s.replace(char,"") 
print(output) 

출력

w s v 
+0

실행될 때 반환해야하는 내용입니다. 함수를 정의하고 함수를 실행하는 프로그램을 만들 필요가 없습니다. shortenPlus ('무제한 삼키기 속도'는 무엇입니까?) == '사용자가 입력하지 않은 문자의 입력 값입니다.'일부 모음이 없으면 '함수가 수행 할 내용 만 표시됩니다. . – Taylor

+0

@Taylor 해결 된 친구! http://stackoverflow.com/a/42142878/6840615 –

0
def shortenPlus(s): 
    counter = 0 # accepted character count 
    add_the_vowel = True  # check if vowel came for the first time for the word 
    temp = " " # temp string to store the output 
    for letter in s: 
     if letter == " ": 
      add_the_vowel= True 
     if add_the_vowel == True and letter in "AEIOUaeiou": 
      temp += s[counter] # first vowel of the word 
     if letter in "AEIOUaeiou": 
      add_the_vowel = False # restrict second vowel appeared 
     else: 
      temp += s[counter] 
     counter += 1 
    print(temp) 
s = "without some vowels frienis" 
shortenPlus(s) 

출력 :

톰 버드 프랭크

관련 문제