2016-10-06 3 views
2

나는 모두가 여기에 익숙하다고 확신하는 돼지 라틴어 질문을하고 있습니다. 내가 얻을 수없는 유일한 방법은 입력과 출력의 경우를 일치시키는 것입니다. 예를 들어, 사용자가 Latin을 입력하면 코드에서 atinLay을 생성합니다. Atinlay을 생산하고 싶습니다.파이썬 케이스 일치하는 입출력

import string 

punct = string.punctuation 
punct += ' ' 
vowel = 'aeiouyAEIOUY' 
consonant = 'bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ' 

final_word = input("Please enter a single word. ") 
first_letter = final_word[:1] 

index = 0 

if any((p in punct) for p in final_word): 
    print("You did not enter a single word!") 
else: 
    while index < len(final_word) and (not final_word[index] in vowel): 
     index = index+1 
    if any((f in vowel) for f in first_letter): 
     print(final_word + 'yay') 
    elif index < len(final_word): 
     print(final_word[index:]+final_word[:index]+'ay') 

답변

1

str.title()이 필요합니다. 당신이 당신의 piglatin 변환을 수행 한 후에는과 같이, 원하는 출력을 생성 title() 내장 기능을 사용할 수 있습니다

>>> "atinLay".title() 
'Atinlay' 

는 문자열을 소문자 인 경우, 당신은 str.islower()을 사용할 수 있습니다 확인하려면. 문서를 들여다보십시오.

+0

감사합니다. 사용자가 모두 소문자로 입력하면 대문자 출력을 원하지 않는다는 것을 잊었습니다. –

+0

@ChristopherFlach 간단합니다. str.islower()를 사용하면됩니다. 붙박이. –

0

단순히 내장 된 문자열 기능을 사용하십시오.

s = "Hello".lower() 
s == "hello" 
s = "hello".upper() 
s == "HELLO" 
s = "elloHay".title() 
s == "Ellohay" 
+4

또는 "안녕하세요 world'.title() =이 안녕하세요 –

+0

당신이 가서 더 나은. – bravosierra99

+0

감사합니다, 나는 사용자가 소문자를 입력하면, 출력 소문자를 유지해야한다는 얘기를 깜빡 했네요. 예 라틴어 -> Atinlay latin -> atinlay –