2016-10-06 5 views
2

私はここで誰もが熟知していると確信しているブタのラテン質問をしています。私が得ることができない唯一の事は、入力と出力のケースを一致させることです。たとえば、ユーザーがLatinを入力すると、私のコードではatinLayが生成されます。私はそれがAtinlayを生産したい。Pythonケースの入力と出力の一致

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()=のHello World –

+0

あなたも良く、行く。 – bravosierra99

+0

おかげで、私は、ユーザーがすべての小文字を入力した場合、出力は小文字にとどまるべきであることを言及するのを忘れてしまった。 例 ラテン - > Atinlay latin - > atinlay –

関連する問題