2014-04-01 3 views
-2

주어진 문자열에 대해 파이썬에서 돼지 라틴어 변환기를 만들어야하는 제 수업에 대해 정말 열심히 질문하고 있습니다.파이썬 : 돼지 라틴어 기능

기본적으로 여기에 규칙이 있습니다. 단어의 끝 자음 이동 문자열 'AY'를 추가 (Y는 자음 간주된다), 하나 개 이상의 자음로 시작하는 모든 단어

  1. .

  2. 다른 모든 단어의 경우 끝에 'way'문자열을 추가하십시오.

우리가 어떤 단어의 초기 모음을 찾아 내가 좀했다하는 메인 함수에서 사용하기 위해 별도의 기능을 만드는 것이 아니라 문장 부호 및 사례 감도의 경우 거래해야합니다, 그것은 제안 기능, 그러나 나는 주된 공식에 Case와 구두점을 구현하는 데 문제가 있습니다. 단어에 모음이 없으면 어떻게해야합니까 ("y"는 우리의 경우 모음으로 간주되지 않기 때문에 "my"는 그렇지 않습니다). 모음이 있습니다. 여기

지금까지 내 코드입니다.

def vowelfinder(astring): 
    vowels = ["A","E","I","O","U","a","e","i","o","u"] 
    alist = astring.split() 
    for i in alist: 
     for j in range(len(i)): 
      if i[j] in vowels: 
       print(j) 
       break 

def igpay(astring): 
    vowelfinder(astring) 
    for i in alist 

모든 advi을 ce가 도움이됩니다

+1

왜 급우와 과제마다 과제 하나를 게시합니까? 이것은 오늘날 다섯 번째 돼지 라틴 질문과 같습니다. 그냥 "돼지 라틴어"를 검색하면 다른 학생의 질문에 대한 답을 찾을 수 있습니다. – Hyperboreus

+0

[이 답변은're.split()'과'str.isalnum()'을 사용하여 구두점을 다루는 법을 보여줍니다 (http://stackoverflow.com/a/22776429/4279). – jfs

답변

0
# For any word that begins with one or more consonants (y is considered a consonant): 
if "aeiouAEIOU".find(astring[0]) == -1: 
    # move the consonants to the end of the word and append the string 'ay'. 
    return astring[1:] + astring[0] + "ay" 
# For all other words, 
else: 
    # append the string 'way' to the end. 
    return astring + "way" 

이것은 한 마디입니다. 말로 나누는 것은 충분히 쉬워야합니다.

EDIT : brainfart.

+1

'.find()'메소드 대신에'aeiouAEIOU ':'가 아니라면'astring [0]을 사용하십시오. – jfs